20 #ifndef FeaturesPlugin_Measurement_H_
21 #define FeaturesPlugin_Measurement_H_
23 #include "FeaturesPlugin.h"
24 #include <ModelAPI_Feature.h>
26 #include <GeomAPI_IPresentable.h>
27 #include <GeomAPI_IScreenParams.h>
44 inline static const std::string&
ID()
46 static const std::string MY_ID(
"Measurement");
59 static const std::string MY_MEASURE_KIND_ID(
"MeasureKind");
60 return MY_MEASURE_KIND_ID;
66 static const std::string MY_MEASURE_ID(
"Length");
73 static const std::string MY_MEASURE_ID(
"Distance");
80 static const std::string MY_MEASURE_ID(
"Proximity");
87 static const std::string MY_MEASURE_ID(
"Radius");
94 static const std::string MY_MEASURE_ID(
"Angle");
101 static const std::string MY_MEASURE_ID(
"AngleBy3Points");
102 return MY_MEASURE_ID;
109 static const std::string MY_EDGE_FOR_LENGTH_ID(
"edge_for_length");
110 return MY_EDGE_FOR_LENGTH_ID;
116 static const std::string MY_DISTANCE_FROM_OBJECT_ID(
"distance_from");
117 return MY_DISTANCE_FROM_OBJECT_ID;
123 static const std::string MY_DISTANCE_TO_OBJECT_ID(
"distance_to");
124 return MY_DISTANCE_TO_OBJECT_ID;
128 inline static const std::string& CIRCULAR_OBJECT_ID()
130 static const std::string MY_CIRCULAR_OBJECT_ID(
"circular");
131 return MY_CIRCULAR_OBJECT_ID;
137 static const std::string MY_ANGLE_FROM_EDGE_ID(
"angle_from");
138 return MY_ANGLE_FROM_EDGE_ID;
144 static const std::string MY_ANGLE_TO_EDGE_ID(
"angle_to");
145 return MY_ANGLE_TO_EDGE_ID;
151 static const std::string MY_ANGLE_POINT1_ID(
"angle_point_1");
152 return MY_ANGLE_POINT1_ID;
158 static const std::string MY_ANGLE_POINT2_ID(
"angle_point_2");
159 return MY_ANGLE_POINT2_ID;
165 static const std::string MY_ANGLE_POINT3_ID(
"angle_point_3");
166 return MY_ANGLE_POINT3_ID;
172 static const std::string MY_RESULT_ID(
"result");
179 static const std::string MY_RESULT_VALUES_ID(
"result_values");
180 return MY_RESULT_VALUES_ID;
184 FEATURESPLUGIN_EXPORT
virtual void execute();
191 FEATURESPLUGIN_EXPORT
virtual void attributeChanged(
const std::string& theID);
199 FEATURESPLUGIN_EXPORT
virtual AISObjectPtr
getAISObject(AISObjectPtr thePrevious);
204 myScreenPlane = theScreenPlane;
210 mySceenScale = theScale;
218 void computeLength();
220 void computeDistance();
222 void computeProximity();
224 void computeRadius();
228 void computeAngleByPoints();
232 AISObjectPtr lengthDimension(AISObjectPtr thePrevious);
236 AISObjectPtr distanceDimension(AISObjectPtr thePrevious);
240 AISObjectPtr radiusDimension(AISObjectPtr thePrevious);
244 AISObjectPtr angleDimension(AISObjectPtr thePrevious);
248 AISObjectPtr angleByPointsDimension(AISObjectPtr thePrevious);
251 void setupDimension(AISObjectPtr theDim);
253 GeomPlanePtr myScreenPlane;
Feature for calculation metrics.
Definition: FeaturesPlugin_Measurement.h:41
static const std::string & DISTANCE_FROM_OBJECT_ID()
Attribute name of first shape selected for distance calculation.
Definition: FeaturesPlugin_Measurement.h:114
virtual void setScreenPlane(GeomPlanePtr theScreenPlane)
Set current screen plane.
Definition: FeaturesPlugin_Measurement.h:203
static const std::string & EDGE_FOR_LENGTH_ID()
Attribute name of edge selected for length calculation.
Definition: FeaturesPlugin_Measurement.h:107
static const std::string & MEASURE_KIND()
Attribute name for measurement method.
Definition: FeaturesPlugin_Measurement.h:57
static const std::string & MEASURE_LENGTH()
Attribute name for length measure.
Definition: FeaturesPlugin_Measurement.h:64
static const std::string & ANGLE_POINT3_ID()
Attribute name of third point selected for angle calculation.
Definition: FeaturesPlugin_Measurement.h:163
virtual void initAttributes()
Request for initialization of data model of the feature: adding all attributes.
Definition: FeaturesPlugin_Measurement.cpp:60
virtual AISObjectPtr getAISObject(AISObjectPtr thePrevious)
Returns the AIS preview.
Definition: FeaturesPlugin_Measurement.cpp:373
static const std::string & ANGLE_POINT2_ID()
Attribute name of second point (apex) selected for angle calculation.
Definition: FeaturesPlugin_Measurement.h:156
virtual bool isMacro() const
Reimplemented from ModelAPI_Feature::isMacro(). Returns true.
Definition: FeaturesPlugin_Measurement.h:194
static const std::string & ANGLE_FROM_EDGE_ID()
Attribute name of first edge selected for angle calculation.
Definition: FeaturesPlugin_Measurement.h:135
virtual const std::string & getKind()
Definition: FeaturesPlugin_Measurement.h:51
static const std::string & ANGLE_POINT1_ID()
Attribute name of first point selected for angle calculation.
Definition: FeaturesPlugin_Measurement.h:149
virtual void execute()
Performs the algorithm and stores results it in the data structure.
Definition: FeaturesPlugin_Measurement.cpp:84
static const std::string & RESULT_VALUES_ID()
Attribute name for values of result.
Definition: FeaturesPlugin_Measurement.h:177
static const std::string & ID()
Feature kind.
Definition: FeaturesPlugin_Measurement.h:44
static const std::string & MEASURE_ANGLE_POINTS()
Attribute name for angle measurement by 3 points.
Definition: FeaturesPlugin_Measurement.h:99
static const std::string & RESULT_ID()
Attribute name for result.
Definition: FeaturesPlugin_Measurement.h:170
static const std::string & MEASURE_RADIUS()
Attribute name for radius measure.
Definition: FeaturesPlugin_Measurement.h:85
static const std::string & MEASURE_ANGLE()
Attribute name for angle measure.
Definition: FeaturesPlugin_Measurement.h:92
static const std::string & DISTANCE_TO_OBJECT_ID()
Attribute name of second shape selected for distance calculation.
Definition: FeaturesPlugin_Measurement.h:121
FeaturesPlugin_Measurement()
Use plugin manager for features creation.
Definition: FeaturesPlugin_Measurement.cpp:56
virtual void setViewScale(double theScale)
Set current view scale.
Definition: FeaturesPlugin_Measurement.h:209
static const std::string & ANGLE_TO_EDGE_ID()
Attribute name of second shape selected for angle calculation.
Definition: FeaturesPlugin_Measurement.h:142
static const std::string & MEASURE_DISTANCE()
Attribute name for distance measure.
Definition: FeaturesPlugin_Measurement.h:71
static const std::string & MEASURE_PROXIMITY()
Attribute name for distance measure.
Definition: FeaturesPlugin_Measurement.h:78
virtual void attributeChanged(const std::string &theID)
Called on change of any argument-attribute of this object.
Definition: FeaturesPlugin_Measurement.cpp:88
A class which defines an interface of object which is able to create its own presentation.
Definition: GeomAPI_IPresentable.h:29
A class which defines an interface of object which has to be provided with current screen parameters.
Definition: GeomAPI_IScreenParams.h:30
Feature function that represents the particular functionality of this operation.
Definition: ModelAPI_Feature.h:41