X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSketchSolver%2FSketchSolver_Solver.h;h=46e83afd0bf8f6b9eaffdbab6f8bccde08cde368;hb=fdf05fdbacbddf319df9770cddafaaa09e8cd1a4;hp=412b0e1809cce674757c5a6c54b987c2aa2c1b8e;hpb=4cbd08290dc7a540e3fa93913d484e8336df90d9;p=modules%2Fshaper.git diff --git a/src/SketchSolver/SketchSolver_Solver.h b/src/SketchSolver/SketchSolver_Solver.h index 412b0e180..46e83afd0 100644 --- a/src/SketchSolver/SketchSolver_Solver.h +++ b/src/SketchSolver/SketchSolver_Solver.h @@ -1,3 +1,5 @@ +// Copyright (C) 2014-20xx CEA/DEN, EDF R&D + // File: SketchSolver_Solver.h // Created: 07 May 2014 // Author: Artem ZHIDKOV @@ -18,46 +20,60 @@ typedef unsigned int UINT32; #include - #define SLVS_RESULT_EMPTY_SET -1 // Unknown constraint (for error reporting) #define SLVS_C_UNKNOWN 0 +// Fillet constraint identifier +#define SLVS_C_FILLET 100100 +// Multi-rotation constraint identifier +#define SLVS_C_MULTI_ROTATION 100101 +// Multi-translation constraint identifier +#define SLVS_C_MULTI_TRANSLATION 100102 // Unknown entity #define SLVS_E_UNKNOWN 0 +// Unknown group +#define SLVS_G_UNKNOWN 0 - +/** + * The main class that performs the high-level operations for connection to the SolveSpace. + */ class SketchSolver_Solver { -public: + public: SketchSolver_Solver(); ~SketchSolver_Solver(); /** \brief Initialize the ID of the group */ inline void setGroupID(Slvs_hGroup theGroupID) - { myGroupID = theGroupID; } + { + myGroupID = theGroupID; + } /** \brief Change array of parameters - * \param[in] theParameters vector of parameters + * \param[in] theParameters pointer to the array of parameters + * \param[in] theSize size of this array */ - void setParameters(const std::vector& theParameters); + void setParameters(Slvs_Param* theParameters, int theSize); /** \brief Change array of entities - * \param[in] theEntities vector of entities + * \param[in] theEntities pointer to the array of entities + * \param[in] theSize size of this array */ - void setEntities(const std::vector& theEntities); + void setEntities(Slvs_Entity* theEntities, int theSize); /** \brief Change array of constraints - * \param[in] theConstraints vector of constraints + * \param[in] theConstraints pointer to the array of constraints + * \param[in] theSize size of this array */ - void setConstraints(const std::vector& theConstraints); + void setConstraints(Slvs_Constraint* theConstraints, int theSize); /** \brief Store the parameters of the point which was moved by user. * The solver will watch this items to be constant * \param[in] theDragged list of parameters (not more than 4) which should not be changed during solving */ - void setDraggedParameters(const std::vector& theDragged); + void setDraggedParameters(const Slvs_hParam* theDragged); /** \brief Solve the set of equations * \return identifier whether solution succeeded @@ -70,9 +86,9 @@ public: */ bool getResult(std::vector& theParameters); -private: + private: Slvs_hGroup myGroupID; ///< identifier of the group to be solved - Slvs_System myEquationsSystem; ///< set of equations for solving in SolveSpace + Slvs_System myEquationsSystem; ///< set of equations for solving in SolveSpace }; #endif