- virtual int getType() const
- { return SLVS_C_POINTS_COINCIDENT; }
-
- /// \brief Tries to remove constraint
- /// \return \c false, if current constraint contains another SketchPlugin constraints (like for multiple coincidence)
- virtual bool remove(ConstraintPtr theConstraint = ConstraintPtr());
-
- /// \brief Checks the constraint is used by current object
- virtual bool hasConstraint(ConstraintPtr theConstraint) const;
-
- /// \brief Return list of SketchPlugin constraints attached to this object
- virtual std::list<ConstraintPtr> constraints() const;
-
- /// \brief Verifies the two Coincidence constraints are intersects (have shared point)
- bool isCoincide(std::shared_ptr<SketchSolver_ConstraintCoincidence> theConstraint) const;
-
- /// \brief Append all data of coincidence constaint to the current
- void attach(std::shared_ptr<SketchSolver_ConstraintCoincidence> theConstraint);
-
-private:
- /// \brief Creates new coincidence constraint
- Slvs_hConstraint addConstraint(Slvs_hEntity thePoint1, Slvs_hEntity thePoint2);
-
- /// \brief Create full SolveSpace structure according to given constraint
- void addConstraint(ConstraintPtr theConstraint);
-
-private:
- std::map<ConstraintPtr, Slvs_hConstraint> myExtraCoincidence; ///< multiple coincidence of points
+protected:
+ /// \brief Generate list of attributes of constraint in order useful for constraints
+ /// \param[out] theValue numerical characteristic of constraint (e.g. distance)
+ /// \param[out] theAttributes list of attributes to be filled
+ virtual void getAttributes(double& theValue, std::vector<EntityWrapperPtr>& theAttributes);