SHAPER 9.16.0
FeaturesPlugin_Scale.h
1// Copyright (C) 2014-2026 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
120private:
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_BY_DIMENSIONS()
Attribute name for creation method "ByFactor".
Definition: FeaturesPlugin_Scale.h:56
static const std::string & CENTER_POINT_ID()
Attribute name of center point.
Definition: FeaturesPlugin_Scale.h:70
static const std::string & SCALE_FACTOR_ID()
Attribute name of scale factor.
Definition: FeaturesPlugin_Scale.h:77
static const std::string & ID()
Scale kind.
Definition: FeaturesPlugin_Scale.h:35
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_X_ID()
Attribute name of scale factor in X.
Definition: FeaturesPlugin_Scale.h:84
FeaturesPlugin_Scale()
Use plugin manager for features creation.
Definition: FeaturesPlugin_Scale.cpp:41
static const std::string & SCALE_FACTOR_Z_ID()
Attribute name of scale factor in Z.
Definition: FeaturesPlugin_Scale.h:98
static const std::string & OBJECTS_LIST_ID()
Attribute name of referenced objects.
Definition: FeaturesPlugin_Scale.h:63
virtual FEATURESPLUGIN_EXPORT const std::string & getKind()
Definition: FeaturesPlugin_Scale.h:105
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 & CREATION_METHOD_BY_FACTOR()
Attribute name for creation method "ByFactor".
Definition: FeaturesPlugin_Scale.h:49
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 & CREATION_METHOD()
Attribute name for creation method.
Definition: FeaturesPlugin_Scale.h:42
Feature function that represents the particular functionality of this operation.
Definition: ModelAPI_Feature.h:41