X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FGeomAlgoAPI%2FGeomAlgoAPI_ShapeTools.h;h=af2a81f5c3e1580ecb5ccfb6fac7a98a6dcfb439;hb=5fb6a80c4e86e21b1181b4e6ee940d946b5c52e4;hp=7745c4011f5640a6053f3b7635eda575dcbf3866;hpb=2714903267d23cd0c81166c506fb3edd1e069d40;p=modules%2Fshaper.git diff --git a/src/GeomAlgoAPI/GeomAlgoAPI_ShapeTools.h b/src/GeomAlgoAPI/GeomAlgoAPI_ShapeTools.h index 7745c4011..af2a81f5c 100644 --- a/src/GeomAlgoAPI/GeomAlgoAPI_ShapeTools.h +++ b/src/GeomAlgoAPI/GeomAlgoAPI_ShapeTools.h @@ -36,6 +36,7 @@ class GeomAPI_Face; class GeomAPI_PlanarEdges; class GeomAPI_Pln; class GeomAPI_Pnt; +class GeomAPI_Wire; class GeomDataAPI_Point2D; class ModelAPI_Object; @@ -58,6 +59,14 @@ public: GEOMALGOAPI_EXPORT static std::shared_ptr centreOfMass(const std::shared_ptr theShape); + /// \brief Obtain radius of cylindrical face. + /// Return negative value if the face is not a cylinder + GEOMALGOAPI_EXPORT static double radius(const std::shared_ptr& theCylinder); + + /// \brief Calculate minimal distance between shapes + GEOMALGOAPI_EXPORT static double minimalDistance(const GeomShapePtr& theShape1, + const GeomShapePtr& theShape2); + /// \brief Combines faces with common edges to shells, or solids to compsolids. /// \param[in] theCompound compound of shapes. /// \param[in] theType type of combine. @@ -174,6 +183,15 @@ public: GEOMALGOAPI_EXPORT static std::shared_ptr buildDirFromAxisAndShape( const std::shared_ptr theBaseShape, const std::shared_ptr theAxis); + + /// \brief Reapproximate a wire to build a single edge + GEOMALGOAPI_EXPORT static std::shared_ptr wireToEdge( + const std::shared_ptr& theWire); + + /// \brief Get non-composite sub-shapes of the given shape. + /// \param[in] theShape shape that should be exploded + /// \return list of sub-shapes (vertices, edges, faces, solids) + GEOMALGOAPI_EXPORT static ListOfShape getLowLevelSubShapes(const GeomShapePtr& theShape); }; #endif