class SketchSolver_ConstraintMulti : public SketchSolver_Constraint
{
public:
+ /// Constructor based on SketchPlugin constraint
SketchSolver_ConstraintMulti(ConstraintPtr theConstraint) :
SketchSolver_Constraint(theConstraint),
myNumberOfObjects(0),
- myNumberOfCopies(0)
+ myNumberOfCopies(0),
+ myAdjusted(false)
{}
virtual int getType() const
/// \brief Adds a feature to constraint and create its analogue in SolveSpace
virtual void addFeature(FeaturePtr theFeature);
+ /// \brief Update SketchPlugin attributes using the data obtained from SolveSpace entities
+ virtual void refresh()
+ {
+ myAdjusted = false;
+ SketchSolver_Constraint::refresh();
+ }
+
+ /// \brief Verifies, the coincidence between points of copied entities appears or disappears,
+ /// and removes or adds fixing of corresponding points.
+ void checkCoincidence();
+
protected:
/// \brief Converts SketchPlugin constraint to a list of SolveSpace constraints
virtual void process()
std::set<Slvs_hEntity> myPointsJustUpdated; ///< list of points touched by user
std::set<Slvs_hEntity> myInitialPoints; ///< list of points containing initial objects
+
+ bool myAdjusted; ///< the constraint is already adjusted (to not do it several times)
};
#endif