- //check is planar objects belong to nke
- std::shared_ptr<GeomAPI_Pln> aPln = GeomAlgoAPI_ShapeTools::findPlane(anEdges);
+ //check if all the object actually belong to one plane.
+ std::shared_ptr<GeomAPI_Pln> aPln = GeomAlgoAPI_ShapeTools::findPlane(anAllEdges);
+ if(aPln.get() && !aNonPlanarEdges.empty())
+ {
+ aPlanarEdges.insert(aPlanarEdges.end(), aNonPlanarEdges.begin(), aNonPlanarEdges.end());
+ aNonPlanarEdges.clear();
+ isAllPlanar = true;
+ }
+ }
+
+ if (!isAllPlanar && !aPlanarEdges.empty())
+ {
+ //check is planar objects belong to one plane
+ std::shared_ptr<GeomAPI_Pln> aPln = GeomAlgoAPI_ShapeTools::findPlane(aPlanarEdges);