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& 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()
{
/// 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();
+
+ /// Update attributes like passed point, radius and angle of the arc
+ void updateDependentAttributes();
+
+ /// Compose constraints to build tangency arc
+ void tangencyArcConstraints();
+
+ /// Project end point of arc to the circle
+ void projectEndPoint();
};
#endif