/// \brief Returns the type of constraint
virtual int getType() const = 0;
- /// \brief The constraint is made temoparary
+ /// \brief The constraint is made temporary
void makeTemporary() const;
/// \brief Checks the constraint is used by current object
/// \brief Return identifier of SolveSpace entity relating to the attribute
Slvs_hEntity getId(AttributePtr theAttribute) const;
+ /// \brief Adds a feature to constraint and create its analogue in SolveSpace
+ virtual void addFeature(FeaturePtr theFeature);
+
/// \brief Shows error message
const std::string& error() const
{ return myErrorMsg; }
/// \param[out] theAttributes list of attributes to be filled
virtual void getAttributes(double& theValue, std::vector<Slvs_hEntity>& theAttributes);
- /// \brief This method is used in derived objects to check consistence of constraint.
+ /// \brief Verify the attributes of constraint are changed (and constraint need to rebuild)
+ /// \param[in] theConstraint constraint, which attributes should be checked (if NULL, the myBaseConstraint is used)
+ /// \return \c true if some attributes are changed
+ virtual bool checkAttributesChanged(ConstraintPtr theConstraint);
+
+ /// \brief This method is used in derived objects to check consistency of constraint.
/// E.g. the distance between line and point may be signed.
virtual void adjustConstraint()
{}