X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FFeaturesPlugin%2FFeaturesPlugin_Boolean.h;h=df9065b25fcc609de4bf909427f3af470e279f79;hb=8030eb14e6863867336c9d09653db64c1c5a4db8;hp=2f99dbdf42314c5312b7c5f34e6771c0501a919a;hpb=d2a18e80b8c5895237fcb24da6d134173e42a230;p=modules%2Fshaper.git diff --git a/src/FeaturesPlugin/FeaturesPlugin_Boolean.h b/src/FeaturesPlugin/FeaturesPlugin_Boolean.h index 2f99dbdf4..df9065b25 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_FUSE, BOOL_COMMON }; - /// Returns the kind of a feature FEATURESPLUGIN_EXPORT virtual const std::string& getKind() { @@ -62,14 +84,13 @@ 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& theBaseObject, + const ListOfShape& theTools, + const GeomAlgoAPI_Boolean& theAlgo); }; #endif