*/
class SketchPlugin_Arc : public SketchPlugin_SketchEntity, public GeomAPI_IPresentable
{
- /// to avoid cyclic dependencies in automatic updates: they mean that
+ /// to avoid cyclic dependencies in automatic updates: they mean that
/// update is performed right now and automatic updates are not needed
bool myStartUpdate, myEndUpdate;
/// to avoid (if possible) additional modification of changed coordinate (issue #855)
return MY_SKETCH_ARC_ID;
}
+ inline static const std::string& ARC_TYPE()
+ {
+ static const std::string TYPE("ArcType");
+ return TYPE;
+ }
+
+ inline static const std::string& ARC_TYPE_TANGENT()
+ {
+ static const std::string TYPE("Tangent");
+ return TYPE;
+ }
+
+ static const std::string& ARC_TYPE_CENTER_START_END()
+ {
+ static const std::string TYPE("CenterStartEnd");
+ return TYPE;
+ }
+ static const std::string& ARC_TYPE_THREE_POINTS()
+ {
+ static const std::string TYPE("ThreePoints");
+ return TYPE;
+ }
+
+ static const std::string& TANGENT_POINT_ID()
+ {
+ static const std::string TANGENT_PNT("ArcTangentPoint");
+ return TANGENT_PNT;
+ }
+
/// Central 2D point of the circle which contains the arc
inline static const std::string& CENTER_ID()
{
static const std::string MY_CENTER_ID = "ArcCenter";
return MY_CENTER_ID;
}
+
+ inline static const std::string& CENTER_REF_ID()
+ {
+ static const std::string MY_CENTER_REF_ID = "ArcCenterRef";
+ return MY_CENTER_REF_ID;
+ }
+
/// Start 2D point of the arc
inline static const std::string& START_ID()
{
return MY_INVERSED_ID;
}
+ /// Passed point of the arc.
+ static const std::string& PASSED_POINT_ID()
+ {
+ static const std::string PASSED_PNT("ArcPassedPoint");
+ return PASSED_PNT;
+ }
+
+ /// Arc radius.
+ static const std::string& RADIUS_ID()
+ {
+ static const std::string RADIUS("ArcRadius");
+ return RADIUS;
+ }
+
+ /// Arc angle.
+ static const std::string& ANGLE_ID()
+ {
+ static const std::string ANGLE("ArcAngle");
+ return ANGLE;
+ }
+
/// Returns the kind of a feature
SKETCHPLUGIN_EXPORT virtual const std::string& getKind()
{
/// Creates an arc-shape
SKETCHPLUGIN_EXPORT virtual void execute();
- /// Request for initialization of data model of the feature: adding all attributes
- SKETCHPLUGIN_EXPORT virtual void initAttributes();
-
/// Called on change of any argument-attribute of this object
/// \param theID identifier of changed attribute
SKETCHPLUGIN_EXPORT virtual void attributeChanged(const std::string& theID);
/// Use plugin manager for features creation
SketchPlugin_Arc();
+protected:
+ /// \brief Initializes attributes of derived class.
+ virtual void initDerivedClassAttributes();
+
private:
/// Returns true if all obligatory attributes are initialized
bool isFeatureValid();
+
+ /// Compose constraints to build tangency arc
+ void tangencyArcConstraints();
+
};
#endif