TopoDS_Compound aNewEdges;
BB.MakeCompound(aNewEdges);
- ChFi3d_ListIteratorOfListOfQualifiedEdge itl(myFaceNewEdges.FindFromKey(i));
+ //ChFi3d_ListIteratorOfListOfQualifiedEdge itl(myFaceNewEdges.FindFromKey(i));
+ TColStd_ListIteratorOfListOfInteger itl(myFaceNewEdges.FindFromKey(i));
for (; itl.More(); itl.Next())
{
- Standard_Integer anIndex = itl.Value().Index;
+ Standard_Integer aSignedIndex = itl.Value();
+ Standard_Integer anIndex = Abs(aSignedIndex);
TopoDS_Shape aNewEdge = myNewEdges(anIndex);
- aNewEdge.Orientation(itl.Value().Orientation);
+ TopAbs_Orientation anOr = (aSignedIndex > 0)?
+ TopAbs_FORWARD : TopAbs_REVERSED;
+ aNewEdge.Orientation(anOr);
BB.Add(aNewEdges, aNewEdge);
}
//BRepAlgoAPI_Fuse aFuse(aWires, aNewEdges);
ChFiDS_Map myVEMap;
Handle(TopOpeBRepDS_HDataStructure) myDS;
//TopTools_IndexedDataMapOfShapeListOfShape myFaceNewEdges;
- //NCollection_IndexedDataMap<Standard_Integer, TColStd_ListOfInteger> myFaceNewEdges;
- NCollection_IndexedDataMap<Standard_Integer, ChFi3d_ListOfQualifiedEdge> myFaceNewEdges;
+ NCollection_IndexedDataMap<Standard_Integer, TColStd_ListOfInteger> myFaceNewEdges;
+ //NCollection_IndexedDataMap<Standard_Integer, ChFi3d_ListOfQualifiedEdge> myFaceNewEdges;
TopTools_IndexedMapOfShape myNewFaces;
TopTools_IndexedMapOfShape myNewEdges;
Handle(TopOpeBRepBuild_HBuilder) myCoup;
TopLoc_Location aLoc;
BB.UpdateFace(aNewFace, Surf, aLoc, Precision::Confusion());
Standard_Integer IndNewFace = myNewFaces.Add(aNewFace);
+ //ChFi3d_ListOfQualifiedEdge aList;
+ TColStd_ListOfInteger aList;
+ myFaceNewEdges.Add(IndNewFace, aList);
+ Data->ChangeIndexOfFace(IndNewFace);
/////
#ifdef DRAW
IndF1 = myNewFaces.FindIndex(BS1->ChangeSurface().Face());
if (!myFaceNewEdges.Contains(IndF1))
{
- ChFi3d_ListOfQualifiedEdge aList;
+ //ChFi3d_ListOfQualifiedEdge aList;
+ TColStd_ListOfInteger aList;
myFaceNewEdges.Add(IndF1, aList);
}
Standard_Integer IndE1 = myNewEdges.FindIndex(Boundary1);
Data->ChangeIndexOfE1(IndE1);
TopAbs_Orientation Et = (Reversed)? TopAbs_REVERSED : TopAbs_FORWARD;
- QualifiedEdge aQE1(IndE1, Et);
- myFaceNewEdges.ChangeFromKey(IndF1).Append(aQE1);
+ //QualifiedEdge aQE1(IndE1, Et);
+ if (Et == TopAbs_REVERSED)
+ IndE1 *= -1;
+ myFaceNewEdges.ChangeFromKey(IndF1).Append(IndE1);
+ myFaceNewEdges.ChangeFromKey(IndNewFace).Append(-IndE1);
/////
// SurfData is filled in what concerns S2,
IndF2 = myNewFaces.FindIndex(BS2->ChangeSurface().Face());
if (!myFaceNewEdges.Contains(IndF2))
{
- ChFi3d_ListOfQualifiedEdge aList;
- myFaceNewEdges.Add(IndF2, aList);
+ //ChFi3d_ListOfQualifiedEdge aList;
+ TColStd_ListOfInteger aList;
+ myFaceNewEdges.Add(IndF2, aList);
}
Standard_Integer IndE2 = myNewEdges.FindIndex(Boundary2);
Data->ChangeIndexOfE2(IndE2);
- QualifiedEdge aQE2(IndE2, TopAbs::Reverse(Et));
- myFaceNewEdges.ChangeFromKey(IndF2).Append(aQE2);
+ //QualifiedEdge aQE2(IndE2, TopAbs::Reverse(Et));
+ TopAbs_Orientation RevEt = TopAbs::Reverse(Et);
+ if (RevEt == TopAbs_REVERSED)
+ IndE2 *= -1;
+ myFaceNewEdges.ChangeFromKey(IndF2).Append(IndE2);
+ myFaceNewEdges.ChangeFromKey(IndNewFace).Append(-IndE2);
/////
}
else {
}
Handle(ChFiDS_SurfData)& Fd = SeqFil.ChangeValue(num);
+ //jgv
+ Standard_Integer IndexOfNewFace = Fd->IndexOfFace();
+ /////
ChFiDS_CommonPoint& CV1 = Fd->ChangeVertex(isfirst,1);
ChFiDS_CommonPoint& CV2 = Fd->ChangeVertex(isfirst,2);
//To evaluate the new points.
IndFv = myNewFaces.FindIndex(Fv);
if (!myFaceNewEdges.Contains(IndFv))
{
- ChFi3d_ListOfQualifiedEdge aList;
+ //ChFi3d_ListOfQualifiedEdge aList;
+ TColStd_ListOfInteger aList;
myFaceNewEdges.Add(IndFv, aList);
}
Standard_Integer IndE = myNewEdges.FindIndex(aNewEdge);
- QualifiedEdge aQE(IndE, Et);
- myFaceNewEdges.ChangeFromKey(IndFv).Append(aQE);
+ //QualifiedEdge aQE(IndE, Et);
+ if (Et == TopAbs_REVERSED)
+ IndE *= -1;
+ myFaceNewEdges.ChangeFromKey(IndFv).Append(IndE);
+ myFaceNewEdges.ChangeFromKey(IndexOfNewFace).Append(-IndE);
#ifdef OCCT_DEBUG
ChFi3d_ResultChron(ch ,t_inter); //result perf condition if (inter)
IndFop = myNewFaces.FindIndex(Fop);
if (!myFaceNewEdges.Contains(IndFop))
{
- ChFi3d_ListOfQualifiedEdge aList;
+ //ChFi3d_ListOfQualifiedEdge aList;
+ TColStd_ListOfInteger aList;
myFaceNewEdges.Add(IndFop, aList);
}
for (itl.Initialize(aNewZobList); itl.More(); itl.Next())
{
Standard_Integer IndZobE = myNewEdges.FindIndex(itl.Value());
- QualifiedEdge aQzobE(IndZobE, Et);
- myFaceNewEdges.ChangeFromKey(IndFv).Append(aQzobE);
- QualifiedEdge aQzopEonFop(IndZobE, TopAbs::Reverse(Et));
- myFaceNewEdges.ChangeFromKey(IndFop).Append(aQzopEonFop);
+ //QualifiedEdge aQzobE(IndZobE, Et);
+ if (Et == TopAbs_REVERSED)
+ IndZobE *= -1;
+ myFaceNewEdges.ChangeFromKey(IndFv).Append(IndZobE);
+ //QualifiedEdge aQzopEonFop(IndZobE, TopAbs::Reverse(Et));
+ myFaceNewEdges.ChangeFromKey(IndFop).Append(-IndZobE);
}
Handle(TopOpeBRepDS_SurfaceCurveInterference)
void ChangeIndexOfS2 (const Standard_Integer Index);
+ void ChangeIndexOfFace (const Standard_Integer Index);
+
void ChangeIndexOfE1 (const Standard_Integer Index);
void ChangeIndexOfE2 (const Standard_Integer Index);
Standard_EXPORT ChFiDS_FaceInterference& ChangeInterference (const Standard_Integer OnS);
+ Standard_EXPORT Standard_Integer IndexOfFace () const;
+
Standard_EXPORT Standard_Integer Index (const Standard_Integer OfS) const;
Standard_EXPORT Standard_Integer IndexOfEdge(const Standard_Integer OfS) const;
Standard_Integer indexOfC2;
Standard_Integer indexOfE1;
Standard_Integer indexOfE2;
+ Standard_Integer indexOfFace;
Standard_Integer indexOfConge;
Standard_Boolean isoncurv1;
isoncurv2 = (theIndex != 0);
}
+//=======================================================================
+//function : IndexOfFace
+//purpose :
+//=======================================================================
+
+inline Standard_Integer ChFiDS_SurfData::IndexOfFace()const
+{
+ return indexOfFace;
+}
+
//=======================================================================
//function : Surf
//purpose :
indexOfS2 = Index;
}
+//=======================================================================
+//function : ChangeIndexOfFace
+//purpose :
+//=======================================================================
+
+inline void ChFiDS_SurfData::ChangeIndexOfFace(const Standard_Integer Index)
+{
+ indexOfFace = Index;
+}
+
//=======================================================================
//function : ChangeIndexOfE1
//purpose :