- static void makeFacesWithHoles(const std::shared_ptr<GeomAPI_Pnt> theOrigin,
- const std::shared_ptr<GeomAPI_Dir> theDirection,
- const ListOfShape& theWires,
- ListOfShape& theFaces);
+ GEOMALGOAPI_EXPORT static void makeFacesWithHoles(const std::shared_ptr<GeomAPI_Pnt> theOrigin,
+ const std::shared_ptr<GeomAPI_Dir> theDirection,
+ const ListOfShape& theWires,
+ ListOfShape& theFaces);
+
+ /// \brief Return a plane for list of shapes if they are all planar.
+ /// \param[in] theShapes shapes to find plane.
+ /// \return plane where all shapes lie or empty ptr if they not planar.
+ GEOMALGOAPI_EXPORT static std::shared_ptr<GeomAPI_Pln> findPlane(const ListOfShape& theShapes);
+
+ /// \brief Checks that vertex/edge is inside face or vertext inside wire.
+ /// \param[in] theSubShape shape that should be inside.
+ /// \param[in] theBaseShape base shape.
+ /// \return true if edge inside the face.
+ GEOMALGOAPI_EXPORT static bool isSubShapeInsideShape(const std::shared_ptr<GeomAPI_Shape> theSubShape,
+ const std::shared_ptr<GeomAPI_Shape> theBaseShape);
+
+ /// \return true if theShape is valid.
+ GEOMALGOAPI_EXPORT static bool isShapeValid(const std::shared_ptr<GeomAPI_Shape> theShape);
+
+ /// \return outer wire for face. If theShape has different type returns empty pointer.
+ GEOMALGOAPI_EXPORT static std::shared_ptr<GeomAPI_Shape> getFaceOuterWire(const std::shared_ptr<GeomAPI_Shape> theFace);
+
+ /// \return true if edge is parallel to face.
+ GEOMALGOAPI_EXPORT static bool isParallel(const std::shared_ptr<GeomAPI_Edge> theEdge,
+ const std::shared_ptr<GeomAPI_Face> theFace);
+ /// \brief Performs the split of the shape by points.
+ /// \param[in] theBaseShape shape that should be splitted.
+ /// \param[in] thePoints container of points to split
+ /// \param[out] theShapes container of shapes after split
+ GEOMALGOAPI_EXPORT static void splitShape(const std::shared_ptr<GeomAPI_Shape>& theBaseShape,
+ const std::set<std::shared_ptr<GeomAPI_Pnt> >& thePoints,
+ std::set<std::shared_ptr<GeomAPI_Shape> >& theShapes);