X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSketchSolver%2FSketchSolver_ConstraintMirror.h;h=9986fc2a07436a57bdd637f808fbb13eea1c271d;hb=4f565b2204d3fba046aa8c851abada2a5a17bf6c;hp=092e4dff658f1020b63f1c003ce75f8bae83176e;hpb=ef017929d9fd0f90a8bc7513148e25ce833971ac;p=modules%2Fshaper.git diff --git a/src/SketchSolver/SketchSolver_ConstraintMirror.h b/src/SketchSolver/SketchSolver_ConstraintMirror.h index 092e4dff6..9986fc2a0 100644 --- a/src/SketchSolver/SketchSolver_ConstraintMirror.h +++ b/src/SketchSolver/SketchSolver_ConstraintMirror.h @@ -17,48 +17,39 @@ class SketchSolver_ConstraintMirror : public SketchSolver_Constraint { public: + /// Constructor based on SketchPlugin constraint SketchSolver_ConstraintMirror(ConstraintPtr theConstraint) : SketchSolver_Constraint(theConstraint), myNumberOfObjects(0) {} - virtual int getType() const - { return SLVS_C_SYMMETRIC_LINE; } - /// \brief Update constraint - virtual void update(ConstraintPtr theConstraint = ConstraintPtr()); - - /// \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()); + virtual void update(); 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 + /// \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& theAttributes) + virtual void getAttributes(double& theValue, std::vector& theAttributes) { /* do nothing here */ } /// \brief Generate list of entities of mirror constraint /// \param[out] theMirrorLine entity corresponding to mirror line /// \param[out] theBaseEntities list of entities to mirror /// \param[out] theMirrorEntities list of mirrored entities - void getAttributes(Slvs_Entity& theMirrorLine, - std::vector& theBaseEntities, - std::vector& theMirrorEntities); + void getAttributes(EntityWrapperPtr& theMirrorLine, + std::vector& theBaseEntities, + std::vector& theMirrorEntities); -private: - /// \brief Change parameters of entities to be symmetric relative a line, - /// given by array of parameters (coordinates of first and last points) - void makeMirrorEntity(const Slvs_Entity& theBase, - const Slvs_Entity& theMirror, - const double theMirrorLine[]) const; + /// \brief This method is used in derived objects to check consistence of constraint. + /// E.g. the distance between line and point may be signed. + virtual void adjustConstraint(); private: - size_t myNumberOfObjects; ///< number of previously mirrored objects + size_t myNumberOfObjects; ///< number of previously mirrored objects }; #endif