1
0
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:
jgv
2018-10-24 14:42:38 +03:00
parent 7507557e68
commit 86dde6d92b
6 changed files with 72 additions and 20 deletions

View File

@@ -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);

View File

@@ -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;

View File

@@ -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 {

View File

@@ -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)

View File

@@ -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;

View File

@@ -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 :