+ Find();
+ if(myErrorStatus || myWarningStatus) {
+ return;
+ }
+ //
+}
+//=======================================================================
+//function : FindVertices
+//purpose :
+//=======================================================================
+void GEOMAlgo_FinderShapeOn::FindVertices()
+{
+ Standard_Integer i, aNb, iErr;
+ TopAbs_State aSt;
+ TopAbs_Orientation aOr;
+ gp_Pnt aP;
+ TopTools_IndexedMapOfShape aM;
+ //
+ TopExp::MapShapes(myArg1, TopAbs_FACE, aM);
+ const TopoDS_Face& aF=TopoDS::Face(aM(1));
+ aOr=aF.Orientation();
+ //
+ aM.Clear();
+ TopExp::MapShapes(myShape, myShapeType, aM);
+ aNb=aM.Extent();
+ if (!aNb) {
+ myWarningStatus=10; // No found subshapes of type myShapeType
+ return;
+ }
+ //
+ for (i=1; i<=aNb; ++i) {
+ const TopoDS_Shape& aS=aM(i);
+ const TopoDS_Vertex& aV=TopoDS::Vertex(aS);
+ aP=BRep_Tool::Pnt(aV);
+ iErr=GEOMAlgo_SurfaceTools::GetState(aP, mySurface, myTolerance, aSt);
+ if (aOr==TopAbs_REVERSED) {
+ aSt=GEOMAlgo_SurfaceTools::ReverseState(aSt);
+ }
+ myMSS.Add(aS, aSt);
+ }