1 // File: SketchSolver_Solver.h
2 // Created: 07 May 2014
3 // Author: Artem ZHIDKOV
5 #ifndef SketchSolver_Solver_Headerfile
6 #define SketchSolver_Solver_Headerfile
8 #include "SketchSolver.h"
10 // Need to be defined before including SolveSpace to avoid additional dependances on Windows platform
11 #if defined(WIN32) && !defined(HAVE_C99_INTEGER_TYPES)
12 typedef unsigned int UINT32;
22 #define SLVS_RESULT_EMPTY_SET -1
25 class SketchSolver_Solver
28 SketchSolver_Solver();
29 ~SketchSolver_Solver();
31 /** \brief Initialize the ID of the group
33 inline void setGroupID(Slvs_hGroup theGroupID)
34 { myGroupID = theGroupID; }
36 /** \brief Change array of parameters
37 * \param[in] theParameters vector of parameters
39 void setParameters(const std::vector<Slvs_Param>& theParameters);
41 /** \brief Change array of entities
42 * \param[in] theEntities vector of entities
44 void setEntities(const std::vector<Slvs_Entity>& theEntities);
46 /** \brief Change array of constraints
47 * \param[in] theConstraints vector of constraints
49 void setConstraints(const std::vector<Slvs_Constraint>& theConstraints);
51 /** \brief Solve the set of equations
52 * \return identifier whether solution succeeded
56 /** \brief Updates the list of parameters by calculated values
57 * \param[in,out] theParameters parameters to be updated
58 * \return \c true if parameters are updated correctly
60 bool getResult(std::vector<Slvs_Param>& theParameters);
63 Slvs_hGroup myGroupID; ///< identifier of the group to be solved
64 Slvs_System myEquationsSystem; ///< set of equations for solving in SolveSpace