X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSketchSolver%2FSketchSolver_Solver.h;h=46e83afd0bf8f6b9eaffdbab6f8bccde08cde368;hb=98e21a8e5e9de9c658c11c19fac5c4c7060396c5;hp=944a58e69354102e1d694b7c6efbb314ea175a5f;hpb=00e166f80c6501ef008ea4c9a1fd57b8c69f0202;p=modules%2Fshaper.git diff --git a/src/SketchSolver/SketchSolver_Solver.h b/src/SketchSolver/SketchSolver_Solver.h index 944a58e69..46e83afd0 100644 --- a/src/SketchSolver/SketchSolver_Solver.h +++ b/src/SketchSolver/SketchSolver_Solver.h @@ -1,9 +1,11 @@ +// Copyright (C) 2014-20xx CEA/DEN, EDF R&D + // File: SketchSolver_Solver.h // Created: 07 May 2014 // Author: Artem ZHIDKOV -#ifndef SketchSolver_Solver_Headerfile -#define SketchSolver_Solver_Headerfile +#ifndef SketchSolver_Solver_H_ +#define SketchSolver_Solver_H_ #include "SketchSolver.h" @@ -18,35 +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(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 setConstraints(const std::vector& theConstraints); + void setDraggedParameters(const Slvs_hParam* theDragged); /** \brief Solve the set of equations * \return identifier whether solution succeeded @@ -59,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