20 #ifndef SketchPlugin_MacroArc_H_
21 #define SketchPlugin_MacroArc_H_
23 #include <ModelAPI_IReentrant.h>
25 #include "SketchPlugin.h"
26 #include "SketchPlugin_SketchEntity.h"
28 #include <GeomAPI_IPresentable.h>
46 inline static const std::string&
ID()
48 static const std::string
ID(
"SketchMacroArc");
52 inline static const std::string& ARC_TYPE()
54 static const std::string
ID(
"arc_type");
58 static const std::string& ARC_TYPE_BY_CENTER_AND_POINTS()
60 static const std::string
ID(
"by_center_and_points");
63 static const std::string& ARC_TYPE_BY_THREE_POINTS()
65 static const std::string
ID(
"by_three_points");
69 inline static const std::string& ARC_TYPE_BY_TANGENT_EDGE()
71 static const std::string
ID(
"by_tangent_edge");
75 inline static const std::string& ARC_TYPE_BY_TRANSVERSAL_LINE()
77 static const std::string
ID(
"by_transversal_line");
84 static const std::string
ID =
"center_point";
88 inline static const std::string& CENTER_POINT_REF_ID()
90 static const std::string
ID =
"center_point_ref";
97 static const std::string
ID =
"start_point_1";
104 static const std::string
ID =
"start_point_2";
108 inline static const std::string& START_POINT_REF_ID()
110 static const std::string
ID =
"start_point_ref";
117 static const std::string
ID =
"end_point_1";
124 static const std::string
ID =
"end_point_2";
131 static const std::string
ID =
"end_point_3";
138 static const std::string
ID =
"end_point_4";
142 inline static const std::string& END_POINT_REF_ID()
144 static const std::string
ID =
"end_point_ref";
151 static const std::string
ID(
"passed_point");
155 static const std::string& PASSED_POINT_REF_ID()
157 static const std::string
ID(
"passed_point_ref");
161 static const std::string& TANGENT_POINT_ID()
163 static const std::string
ID(
"tangent_point");
167 static const std::string& TRANSVERSAL_POINT_ID()
169 static const std::string
ID(
"transversal_point");
176 static const std::string
ID(
"reversed");
183 static const std::string
ID(
"radius");
190 static const std::string
ID(
"angle");
197 static const std::string
ID(
"edit_arc_type");
202 SKETCHPLUGIN_EXPORT
virtual const std::string&
getKind()
213 SKETCHPLUGIN_EXPORT
virtual void attributeChanged(
const std::string& theID);
216 virtual AISObjectPtr
getAISObject(AISObjectPtr thePrevious);
219 SKETCHPLUGIN_EXPORT
virtual void execute();
222 SKETCHPLUGIN_EXPORT
virtual bool isMacro()
const {
return true;};
228 virtual std::string
processEvent(
const std::shared_ptr<Events_Message>& theMessage);
239 void fillByCenterAndTwoPassed();
241 void fillByThreePassedPoints();
244 void fillByEdge(
bool theTransversal);
246 FeaturePtr createArcFeature();
248 void recalculateReversedFlagByEnd(
const GeomAPI_Circ2d& theCurrentCircular);
249 void recalculateReversedFlagByPassed(
const GeomAPI_Circ2d& theCurrentCircular);
252 std::shared_ptr<GeomAPI_Pnt2d> myCenter;
253 std::shared_ptr<GeomAPI_Pnt2d> myStart;
254 std::shared_ptr<GeomAPI_Pnt2d> myEnd;
257 double myParamBefore;
Circle in 2D.
Definition: GeomAPI_Circ2d.h:37
A class which defines an interface of object which is able to create its own presentation.
Definition: GeomAPI_IPresentable.h:29
2D point defined by two coordinates
Definition: GeomAPI_Pnt2d.h:36
Interface of a class which can process specific messages.
Definition: ModelAPI_IReentrant.h:35
Feature for creation of the new arc of circle in PartSet.
Definition: SketchPlugin_MacroArc.h:43
static const std::string & END_POINT_2_ID()
End 2D point of the arc.
Definition: SketchPlugin_MacroArc.h:122
virtual bool isPreviewNeeded() const
Returns true if preview update during the edition needed.
Definition: SketchPlugin_MacroArc.h:224
static const std::string & END_POINT_3_ID()
End 2D point of the arc.
Definition: SketchPlugin_MacroArc.h:129
SketchPlugin_MacroArc()
Use plugin manager for features creation.
Definition: SketchPlugin_MacroArc.cpp:136
static const std::string & START_POINT_2_ID()
Start 2D point of the arc.
Definition: SketchPlugin_MacroArc.h:102
virtual const std::string & getKind()
Returns the kind of a feature.
Definition: SketchPlugin_MacroArc.h:202
static const std::string & ID()
Arc feature kind.
Definition: SketchPlugin_MacroArc.h:46
static const std::string & EDIT_ARC_TYPE_ID()
Arc angle.
Definition: SketchPlugin_MacroArc.h:195
virtual void execute()
Creates an arc-shape.
Definition: SketchPlugin_MacroArc.cpp:309
GeomShapePtr getArcShape(bool isBound=true)
Returns shape of arc.
Definition: SketchPlugin_MacroArc.cpp:251
virtual bool isMacro() const
Reimplemented from ModelAPI_Feature::isMacro().
Definition: SketchPlugin_MacroArc.h:222
static const std::string & CENTER_POINT_ID()
Central 2D point of the circle which contains the arc.
Definition: SketchPlugin_MacroArc.h:82
static const std::string & START_POINT_1_ID()
Start 2D point of the arc.
Definition: SketchPlugin_MacroArc.h:95
static const std::string & PASSED_POINT_ID()
Passed point of the arc.
Definition: SketchPlugin_MacroArc.h:149
static const std::string & REVERSED_ID()
Reversed flag.
Definition: SketchPlugin_MacroArc.h:174
virtual AISObjectPtr getAISObject(AISObjectPtr thePrevious)
Returns the AIS preview.
Definition: SketchPlugin_MacroArc.cpp:282
static const std::string & ANGLE_ID()
Arc angle.
Definition: SketchPlugin_MacroArc.h:188
static const std::string & END_POINT_1_ID()
End 2D point of the arc.
Definition: SketchPlugin_MacroArc.h:115
virtual std::string processEvent(const std::shared_ptr< Events_Message > &theMessage)
Apply information of the message to current object.
Definition: SketchPlugin_MacroArc.cpp:395
virtual void attributeChanged(const std::string &theID)
Called on change of any argument-attribute of this object.
Definition: SketchPlugin_MacroArc.cpp:184
static const std::string & RADIUS_ID()
Arc radius.
Definition: SketchPlugin_MacroArc.h:181
virtual void initAttributes()
Request for initialization of data model of the feature: adding all attributes.
Definition: SketchPlugin_MacroArc.cpp:142
static const std::string & END_POINT_4_ID()
End 2D point of the arc.
Definition: SketchPlugin_MacroArc.h:136
Sketch Entity for creation of the new feature in PartSet.
Definition: SketchPlugin_SketchEntity.h:45