ResetElement(me : in out; E : Shape from TopoDS) is deferred;
---Purpose: prepare classification involving element <E>.
- CompareElement(me : in out; E : Shape from TopoDS) is deferred;
- ---Purpose: Add element <E> in the set of elements used in classification.
-
+ CompareElement(me : in out; E : Shape from TopoDS)
+ returns Boolean from Standard
+ is deferred;
+ ---Purpose: Add element <E> in the set of elements used in classification.
+ -- Returns FALSE if the element <E> has been already added to the set of elements,
+ -- otherwise returns TRUE.
+
State(me : in out) returns State from TopAbs is deferred;
---Purpose: Returns state of classification of 2D point, defined by
-- ResetElement, with the current set of elements, defined by Compare.
TopOpeBRepBuild_BlockIterator Bit2 = L2->BlockIterator();
for (Bit2.Initialize(); Bit2.More(); Bit2.Next()) {
const TopoDS_Shape& s2 = MYBB->Element(Bit2);
- CompareElement(s2);
+ if (!CompareElement(s2))
+ break;
}
state = State();
}
---Purpose: prepare classification involving face <F>
-- define 3D point (later used in Compare()) on first vertex of face <F>.
- CompareElement(me : in out; F : Shape);
+ CompareElement(me : in out; F : Shape)
+ returns Boolean from Standard;
---Purpose: Add the face <F> in the set of faces used in 3D point
- -- classification.
-
+ -- classification. Returns FALSE if the face <F> has been already
+ -- added to the set of faces, otherwise returns TRUE.
+
+
State(me : in out) returns State from TopAbs;
---Purpose: Returns state of classification of 3D point, defined by
-- ResetElement, with the current set of faces, defined by Compare.
//purpose :
//=======================================================================
-void TopOpeBRepBuild_ShellFaceClassifier::CompareElement(const TopoDS_Shape& F)
+Standard_Boolean TopOpeBRepBuild_ShellFaceClassifier::CompareElement(const TopoDS_Shape& F)
{
#ifdef DEB
// const TopAbs_ShapeEnum t = F.ShapeType();
#endif
-
+ Standard_Boolean bRet = Standard_True;
+ //
if (myFirstCompare) {
Standard_Boolean found = myFaceShellMap.IsBound(F);
if ( !found ) {
// dont F fait partie.
TopoDS_Shape sbid = myFaceShellMap.Find(F);
myShell = TopoDS::Shell(sbid);
+ bRet = !bRet;
}
myFirstCompare = Standard_False;
}
// dont F fait partie
myBuilder.Add(myShell,F);
}
-
+ return bRet;
}
#ifdef DEB
---Purpose: prepare classification involving edge <E>
-- define 2D point (later used in Compare()) on first vertex of edge <E>.
- CompareElement(me : in out; E : Shape from TopoDS);
+ CompareElement(me : in out; E : Shape from TopoDS)
+ returns Boolean from Standard;
---Purpose: Add the edge <E> in the set of edges used in 2D point
-- classification.
//purpose :
//=======================================================================
-void TopOpeBRepBuild_WireEdgeClassifier::CompareElement(const TopoDS_Shape& EE)
+Standard_Boolean TopOpeBRepBuild_WireEdgeClassifier::CompareElement(const TopoDS_Shape& EE)
{
+ Standard_Boolean bRet = Standard_True;
const TopoDS_Edge& E = TopoDS::Edge(EE);
const TopoDS_Face& F = myBCEdge.Face();
#ifdef DEB
// TopAbs_State state = myFPC.State();
#endif
+ return bRet;
}