X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FFeaturesPlugin%2FFeaturesPlugin_Boolean.h;h=0a072e8229cf9a0f1a2a7849129286e05f0df949;hb=2413ba5e387ebc030eb89aaad917991844ae518d;hp=e9f28ae1dd60580b4844c2a7724dd663ba48cbcd;hpb=a7f44a41bdf29e7bd978ff3b8c8bd514d1223be7;p=modules%2Fshaper.git diff --git a/src/FeaturesPlugin/FeaturesPlugin_Boolean.h b/src/FeaturesPlugin/FeaturesPlugin_Boolean.h index e9f28ae1d..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,12 +9,21 @@ #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() { @@ -20,6 +31,12 @@ class FeaturesPlugin_Boolean : public ModelAPI_Feature 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() { static const std::string MY_OBJECT_ID("main_object"); @@ -31,6 +48,12 @@ 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() { @@ -39,12 +62,11 @@ class FeaturesPlugin_Boolean : public ModelAPI_Feature } enum { - BOOL_CUT, - BOOL_FUSE, + BOOL_CUT, + BOOL_FUSE, BOOL_COMMON }; - /// Returns the kind of a feature FEATURESPLUGIN_EXPORT virtual const std::string& getKind() { @@ -63,13 +85,14 @@ class FeaturesPlugin_Boolean : public ModelAPI_Feature private: std::shared_ptr getShape(const std::string& theAttrName); - + /// Load Naming data structure of the feature to the document - void LoadNamingDS(GeomAlgoAPI_Boolean* theFeature, - std::shared_ptr theResultBody, - std::shared_ptr theObject, - std::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