X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSketchSolver%2FSketchSolver_ConstraintCoincidence.h;h=47d58e0e23299282a208d848f156ce28faf4b603;hb=3d28bcbab2f3ed0e40295e64f4e836caebc19fca;hp=a5c885ade5863fccdce77842f18904c6acb5ff5a;hpb=500c585e26f16c378aed32ff7aa5f028f4a12a93;p=modules%2Fshaper.git diff --git a/src/SketchSolver/SketchSolver_ConstraintCoincidence.h b/src/SketchSolver/SketchSolver_ConstraintCoincidence.h index a5c885ade..47d58e0e2 100644 --- a/src/SketchSolver/SketchSolver_ConstraintCoincidence.h +++ b/src/SketchSolver/SketchSolver_ConstraintCoincidence.h @@ -19,11 +19,12 @@ class SketchSolver_ConstraintCoincidence : public SketchSolver_Constraint { public: SketchSolver_ConstraintCoincidence(ConstraintPtr theConstraint) : - SketchSolver_Constraint(theConstraint) + SketchSolver_Constraint(theConstraint), + myType(SLVS_C_UNKNOWN) {} virtual int getType() const - { return SLVS_C_POINTS_COINCIDENT; } + { return myType; } /// \brief Tries to remove constraint /// \return \c false, if current constraint contains another SketchPlugin constraints (like for multiple coincidence) @@ -45,6 +46,11 @@ protected: /// \brief Converts SketchPlugin constraint to a list of SolveSpace constraints virtual void process(); + /// \brief Generate list of attributes of constraint in order useful for SolveSpace 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& theAttributes); + private: /// \brief Creates new coincidence constraint Slvs_hConstraint addConstraint(Slvs_hEntity thePoint1, Slvs_hEntity thePoint2); @@ -52,8 +58,12 @@ private: /// \brief Create full SolveSpace structure according to given constraint void addConstraint(ConstraintPtr theConstraint); + /// \brief Create constraint of point concident to the line or circle + Slvs_hConstraint addPointOnEntity(Slvs_hEntity thePoint, Slvs_hEntity theEntity); + private: - std::map myExtraCoincidence; ///< multiple coincidence of points + int myType; ///< type of constraint (applicable SLVS_C_POINTS_COINCIDENT or SLVS_C_PT_ON_LINE or SLVS_C_PT_ON_CIRCLE) + std::map myExtraCoincidence; ///< multiple coincidence of points std::set myCoincidentPoints; ///< list of points under the Coincidence constraint };