X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FFeaturesPlugin%2FFeaturesPlugin_Placement.h;h=498a771b22b3e339277fc6fd1458308cf7303175;hb=85b662214060cf733b44ac7822e3e4db49e2da4b;hp=a98793e02b8d97e35d6dfaafc9b80e8fd6eca41d;hpb=4c3c61e1535d9fbf5e189796e35d6c238cbac98c;p=modules%2Fshaper.git diff --git a/src/FeaturesPlugin/FeaturesPlugin_Placement.h b/src/FeaturesPlugin/FeaturesPlugin_Placement.h index a98793e02..498a771b2 100644 --- a/src/FeaturesPlugin/FeaturesPlugin_Placement.h +++ b/src/FeaturesPlugin/FeaturesPlugin_Placement.h @@ -1,3 +1,5 @@ +// Copyright (C) 2014-20xx CEA/DEN, EDF R&D --> + // File: FeaturesPlugin_Placement.h // Created: 2 Dec 2014 // Author: Artem ZHIDKOV @@ -8,10 +10,19 @@ #include "FeaturesPlugin.h" #include #include +#include class ModelAPI_ResultBody; class GeomAPI_Shape; +/**\class FeaturesPlugin_Placement + * \ingroup Plugins + * \brief Feature for applying of placement operation: relative movement of Solid. + * + * Locates the selected placement_attractable_object (face, edge, vertex) of the solid into + * the selected placement_base_object. Faces must be planar, edges must be linear. + * Orientation of the placed solid depends on the underlied planes of both faces. + */ class FeaturesPlugin_Placement : public ModelAPI_Feature { public: @@ -21,17 +32,38 @@ class FeaturesPlugin_Placement : public ModelAPI_Feature static const std::string MY_PLACEMENT_ID("Placement"); return MY_PLACEMENT_ID; } - /// attribute name of referenced face - inline static const std::string& BASE_FACE_ID() + + /// attribute name of references sketch entities list, it should contain a sketch result or + /// a pair a sketch result to sketch face + inline static const std::string& OBJECTS_LIST_ID() + { + static const std::string MY_OBJECTS_LIST_ID("placement_objects_list"); + return MY_OBJECTS_LIST_ID; + } + + /// attribute name of referenced object + inline static const std::string& START_SHAPE_ID() { - static const std::string MY_BASE_FACE_ID("placement_base_face"); - return MY_BASE_FACE_ID; + static const std::string MY_START_SHAPE_ID("placement_start_shape"); + return MY_START_SHAPE_ID; } /// attribute name of attractable face - inline static const std::string& ATTRACT_FACE_ID() + inline static const std::string& END_SHAPE_ID() + { + static const std::string MY_END_SHAPE_ID("placement_end_shape"); + return MY_END_SHAPE_ID; + } + /// attribute name of flag of reverse direction + inline static const std::string& REVERSE_ID() + { + static const std::string MY_REVERSE_ID("placement_reverse_direction"); + return MY_REVERSE_ID; + } + /// attribute name of flag of centering position + inline static const std::string& CENTERING_ID() { - static const std::string MY_ATTRACT_FACE_ID("placement_attractable_face"); - return MY_ATTRACT_FACE_ID; + static const std::string MY_CENTERING_ID("placement_centering"); + return MY_CENTERING_ID; } /// Returns the kind of a feature @@ -51,10 +83,9 @@ class FeaturesPlugin_Placement : public ModelAPI_Feature FeaturesPlugin_Placement(); private: /// Load Naming data structure of the feature to the document - void LoadNamingDS(GeomAlgoAPI_Placement& theFeature, + void LoadNamingDS(GeomAlgoAPI_Transform& theTransformAlgo, std::shared_ptr theResultBody, - std::shared_ptr theBasis, - std::shared_ptr theContext); + std::shared_ptr theSlaveObject); }; #endif