SHAPER  9.12.0
FeaturesPlugin_Scale.h
1 // Copyright (C) 2014-2023 CEA, EDF
2 //
3 // This library is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU Lesser General Public
5 // License as published by the Free Software Foundation; either
6 // version 2.1 of the License, or (at your option) any later version.
7 //
8 // This library is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 // Lesser General Public License for more details.
12 //
13 // You should have received a copy of the GNU Lesser General Public
14 // License along with this library; if not, write to the Free Software
15 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16 //
17 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 //
19 
20 #ifndef FEATURESPLUGIN_SCALE_H_
21 #define FEATURESPLUGIN_SCALE_H_
22 
23 #include <FeaturesPlugin.h>
24 
25 #include <ModelAPI_Feature.h>
26 
32 {
33  public:
35  inline static const std::string& ID()
36  {
37  static const std::string MY_SCALE_ID("Scale");
38  return MY_SCALE_ID;
39  }
40 
42  inline static const std::string& CREATION_METHOD()
43  {
44  static const std::string MY_CREATION_METHOD_ID("CreationMethod");
45  return MY_CREATION_METHOD_ID;
46  }
47 
49  inline static const std::string& CREATION_METHOD_BY_FACTOR()
50  {
51  static const std::string MY_CREATION_METHOD_ID("ByFactor");
52  return MY_CREATION_METHOD_ID;
53  }
54 
56  inline static const std::string& CREATION_METHOD_BY_DIMENSIONS()
57  {
58  static const std::string MY_CREATION_METHOD_ID("ByDimensions");
59  return MY_CREATION_METHOD_ID;
60  }
61 
63  inline static const std::string& OBJECTS_LIST_ID()
64  {
65  static const std::string MY_OBJECTS_LIST_ID("main_objects");
66  return MY_OBJECTS_LIST_ID;
67  }
68 
70  inline static const std::string& CENTER_POINT_ID()
71  {
72  static const std::string MY_CENTER_POINT_ID("center_point");
73  return MY_CENTER_POINT_ID;
74  }
75 
77  inline static const std::string& SCALE_FACTOR_ID()
78  {
79  static const std::string MY_SCALE_FACTOR_ID("scale_factor");
80  return MY_SCALE_FACTOR_ID;
81  }
82 
84  inline static const std::string& SCALE_FACTOR_X_ID()
85  {
86  static const std::string MY_SCALE_FACTOR_X_ID("scale_factor_x");
87  return MY_SCALE_FACTOR_X_ID;
88  }
89 
91  inline static const std::string& SCALE_FACTOR_Y_ID()
92  {
93  static const std::string MY_SCALE_FACTOR_Y_ID("scale_factor_y");
94  return MY_SCALE_FACTOR_Y_ID;
95  }
96 
98  inline static const std::string& SCALE_FACTOR_Z_ID()
99  {
100  static const std::string MY_SCALE_FACTOR_Z_ID("scale_factor_z");
101  return MY_SCALE_FACTOR_Z_ID;
102  }
103 
105  FEATURESPLUGIN_EXPORT virtual const std::string& getKind()
106  {
107  static std::string MY_KIND = FeaturesPlugin_Scale::ID();
108  return MY_KIND;
109  }
110 
112  FEATURESPLUGIN_EXPORT virtual void execute();
113 
115  FEATURESPLUGIN_EXPORT virtual void initAttributes();
116 
119 
120 private:
122  void performScaleByFactor();
123 
125  void performScaleByDimensions();
126 };
127 
128 #endif // FEATURESPLUGIN_SCALE_H_
Feature for changing the scale of an object.
Definition: FeaturesPlugin_Scale.h:32
static const std::string & CREATION_METHOD()
Attribute name for creation method.
Definition: FeaturesPlugin_Scale.h:42
static const std::string & CREATION_METHOD_BY_DIMENSIONS()
Attribute name for creation method "ByFactor".
Definition: FeaturesPlugin_Scale.h:56
virtual FEATURESPLUGIN_EXPORT const std::string & getKind()
Definition: FeaturesPlugin_Scale.h:105
FeaturesPlugin_Scale()
Use plugin manager for features creation.
Definition: FeaturesPlugin_Scale.cpp:41
static const std::string & CENTER_POINT_ID()
Attribute name of center point.
Definition: FeaturesPlugin_Scale.h:70
static const std::string & SCALE_FACTOR_Z_ID()
Attribute name of scale factor in Z.
Definition: FeaturesPlugin_Scale.h:98
virtual FEATURESPLUGIN_EXPORT void execute()
Performs the algorithm and stores results it in the data structure.
Definition: FeaturesPlugin_Scale.cpp:75
static const std::string & ID()
Scale kind.
Definition: FeaturesPlugin_Scale.h:35
static const std::string & OBJECTS_LIST_ID()
Attribute name of referenced objects.
Definition: FeaturesPlugin_Scale.h:63
static const std::string & CREATION_METHOD_BY_FACTOR()
Attribute name for creation method "ByFactor".
Definition: FeaturesPlugin_Scale.h:49
static const std::string & SCALE_FACTOR_X_ID()
Attribute name of scale factor in X.
Definition: FeaturesPlugin_Scale.h:84
virtual FEATURESPLUGIN_EXPORT void initAttributes()
Request for initialization of data model of the feature: adding all attributes.
Definition: FeaturesPlugin_Scale.cpp:46
static const std::string & SCALE_FACTOR_Y_ID()
Attribute name of scale factor in Y.
Definition: FeaturesPlugin_Scale.h:91
static const std::string & SCALE_FACTOR_ID()
Attribute name of scale factor.
Definition: FeaturesPlugin_Scale.h:77
Feature function that represents the particular functionality of this operation.
Definition: ModelAPI_Feature.h:39