X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FFeaturesPlugin%2FFeaturesPlugin_Boolean.h;h=0a072e8229cf9a0f1a2a7849129286e05f0df949;hb=676ee79de539b14b242a561857c1505cce13d951;hp=0fdeb6baeee7901f36a0b3babea4c798687c32f2;hpb=8c99e5e8dd74d99dfbf534bd66b32b70ca134aa7;p=modules%2Fshaper.git diff --git a/src/FeaturesPlugin/FeaturesPlugin_Boolean.h b/src/FeaturesPlugin/FeaturesPlugin_Boolean.h index 0fdeb6bae..0a072e822 100644 --- a/src/FeaturesPlugin/FeaturesPlugin_Boolean.h +++ b/src/FeaturesPlugin/FeaturesPlugin_Boolean.h @@ -1,3 +1,5 @@ +// Copyright (C) 2014-20xx CEA/DEN, EDF R&D --> + // File: FeaturesPlugin_Boolean.h // Created: 02 Sept 2014 // Author: Vitaly SMETANNIKOV @@ -7,17 +9,32 @@ #include "FeaturesPlugin.h" #include -#include + #include +class GeomAlgoAPI_MakeShapeList; + +/**\class FeaturesPlugin_Boolean + * \ingroup Plugins + * \brief Feature for applying of Boolean operations on Solids. + * + * Supports three kinds of Boolean operations: Cut, Fuse and Common. + * For all of them requires two Solids: object and tool. + */ class FeaturesPlugin_Boolean : public ModelAPI_Feature { - public: +public: /// Extrusion kind inline static const std::string& ID() { - static const std::string MY_CUT_ID("Boolean"); - return MY_CUT_ID; + static const std::string MY_ID("Boolean"); + return MY_ID; + } + /// attribute name of referenced object + inline static const std::string& OBJECT_LIST_ID() + { + static const std::string MY_OBJECT_LIST_ID("main_objects"); + return MY_OBJECT_LIST_ID; } /// attribute name of referenced object inline static const std::string& OBJECT_ID() @@ -31,20 +48,25 @@ class FeaturesPlugin_Boolean : public ModelAPI_Feature static const std::string MY_TOOL_ID("tool_object"); return MY_TOOL_ID; } + /// attribute name of tool object + inline static const std::string& TOOL_LIST_ID() + { + static const std::string MY_TOOL_LIST_ID("tool_objects"); + return MY_TOOL_LIST_ID; + } /// attribute name of operation type inline static const std::string& TYPE_ID() { - static const std::string MY_TOOL_ID("bool_type"); - return MY_TOOL_ID; + static const std::string MY_TYPE_ID("bool_type"); + return MY_TYPE_ID; } enum { + BOOL_CUT, BOOL_FUSE, - BOOL_CUT, BOOL_COMMON }; - /// Returns the kind of a feature FEATURESPLUGIN_EXPORT virtual const std::string& getKind() { @@ -62,14 +84,15 @@ class FeaturesPlugin_Boolean : public ModelAPI_Feature FeaturesPlugin_Boolean(); private: - boost::shared_ptr getShape(const std::string& theAttrName); - + std::shared_ptr getShape(const std::string& theAttrName); + /// Load Naming data structure of the feature to the document - void LoadNamingDS(GeomAlgoAPI_Boolean* theFeature, - boost::shared_ptr theResultBody, - boost::shared_ptr theObject, - boost::shared_ptr theTool, - int theType); + void loadNamingDS(std::shared_ptr theResultBody, + const std::shared_ptr theBaseShape, + const ListOfShape& theTools, + const std::shared_ptr theResultShape, + GeomAlgoAPI_MakeShape& theMakeShape, + GeomAPI_DataMapOfShapeShape& theMapOfShapes); }; #endif