mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-09 13:22:24 +03:00
Next version
This commit is contained in:
@@ -606,12 +606,16 @@ void ChFi3d_Builder::Compute()
|
||||
|
||||
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);
|
||||
|
@@ -323,8 +323,8 @@ protected:
|
||||
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;
|
||||
|
@@ -722,6 +722,10 @@ Standard_Boolean ChFi3d_Builder::StoreData(Handle(ChFiDS_SurfData)& Data,
|
||||
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
|
||||
@@ -818,14 +822,18 @@ Standard_Boolean ChFi3d_Builder::StoreData(Handle(ChFiDS_SurfData)& Data,
|
||||
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,
|
||||
@@ -894,13 +902,18 @@ Standard_Boolean ChFi3d_Builder::StoreData(Handle(ChFiDS_SurfData)& Data,
|
||||
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 {
|
||||
|
@@ -599,6 +599,9 @@ void ChFi3d_Builder::PerformOneCorner(const Standard_Integer Index,
|
||||
}
|
||||
|
||||
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.
|
||||
@@ -981,12 +984,16 @@ void ChFi3d_Builder::PerformOneCorner(const Standard_Integer Index,
|
||||
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)
|
||||
@@ -1359,16 +1366,19 @@ void ChFi3d_Builder::PerformOneCorner(const Standard_Integer Index,
|
||||
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)
|
||||
|
@@ -81,6 +81,8 @@ public:
|
||||
|
||||
void ChangeIndexOfS2 (const Standard_Integer Index);
|
||||
|
||||
void ChangeIndexOfFace (const Standard_Integer Index);
|
||||
|
||||
void ChangeIndexOfE1 (const Standard_Integer Index);
|
||||
|
||||
void ChangeIndexOfE2 (const Standard_Integer Index);
|
||||
@@ -109,6 +111,8 @@ public:
|
||||
|
||||
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;
|
||||
@@ -195,6 +199,7 @@ private:
|
||||
Standard_Integer indexOfC2;
|
||||
Standard_Integer indexOfE1;
|
||||
Standard_Integer indexOfE2;
|
||||
Standard_Integer indexOfFace;
|
||||
Standard_Integer indexOfConge;
|
||||
|
||||
Standard_Boolean isoncurv1;
|
||||
|
@@ -98,6 +98,16 @@ inline void ChFiDS_SurfData::SetIndexOfC2 (const Standard_Integer theIndex)
|
||||
isoncurv2 = (theIndex != 0);
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : IndexOfFace
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
inline Standard_Integer ChFiDS_SurfData::IndexOfFace()const
|
||||
{
|
||||
return indexOfFace;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : Surf
|
||||
//purpose :
|
||||
@@ -201,6 +211,16 @@ inline void ChFiDS_SurfData::ChangeIndexOfS2(const Standard_Integer Index)
|
||||
indexOfS2 = Index;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : ChangeIndexOfFace
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
inline void ChFiDS_SurfData::ChangeIndexOfFace(const Standard_Integer Index)
|
||||
{
|
||||
indexOfFace = Index;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : ChangeIndexOfE1
|
||||
//purpose :
|
||||
|
Reference in New Issue
Block a user