X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;ds=inline;f=src%2FFeaturesPlugin%2FFeaturesPlugin_Placement.h;h=7a7c07aea5d74e26505b8168be23e3d6a3f0b4bc;hb=2532fb2df83ee1ddd9ff3e8b381d3788eaa15b69;hp=cc9e30f3d0d0941c3b770f34138c988f6edd7719;hpb=5746238455553297ce5333502e6f27e6e5d9348b;p=modules%2Fshaper.git diff --git a/src/FeaturesPlugin/FeaturesPlugin_Placement.h b/src/FeaturesPlugin/FeaturesPlugin_Placement.h index cc9e30f3d..7a7c07aea 100644 --- a/src/FeaturesPlugin/FeaturesPlugin_Placement.h +++ b/src/FeaturesPlugin/FeaturesPlugin_Placement.h @@ -1,6 +1,21 @@ -// File: FeaturesPlugin_Placement.h -// Created: 2 Dec 2014 -// Author: Artem ZHIDKOV +// Copyright (C) 2014-2017 CEA/DEN, EDF R&D +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// #ifndef FeaturesPlugin_Placement_H_ #define FeaturesPlugin_Placement_H_ @@ -8,10 +23,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 +45,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,9 +96,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 theSlaveObject); + std::shared_ptr theBaseShape); }; #endif