- public:
- /* \brief Creates cut boolean operation
- * \param[in] theShape face or wire to be extruded
- * \param[in] theTool toole shape for boolean
- * \return a solid as result of operation
- */
- static boost::shared_ptr<GeomAPI_Shape> makeCut(boost::shared_ptr<GeomAPI_Shape> theShape,
- boost::shared_ptr<GeomAPI_Shape> theTool);
+public:
+ /// Type of booelan operation
+ enum OperationType {
+ BOOL_CUT, ///< Cut objects
+ BOOL_FUSE, ///< Fuse objects
+ BOOL_COMMON ///< Take common part of objects
+ };
+
+public:
+
+ /// Constructor.
+ GEOMALGOAPI_EXPORT GeomAlgoAPI_Boolean(const GeomShapePtr theObject,
+ const GeomShapePtr theTool,
+ const OperationType theOperationType);
+
+ /// Constructor.
+ GEOMALGOAPI_EXPORT GeomAlgoAPI_Boolean(const GeomShapePtr theObject,
+ const ListOfShape& theTools,
+ const OperationType theOperationType);
+
+
+ /// Constructor.
+ GEOMALGOAPI_EXPORT GeomAlgoAPI_Boolean(const ListOfShape& theObjects,
+ const ListOfShape& theTools,
+ const OperationType theOperationType);
+
+ /// Redefinition of the generic method for the Fuse problem: OCCT 30481
+ GEOMALGOAPI_EXPORT virtual void modified(const GeomShapePtr theOldShape,
+ ListOfShape& theNewShapes);