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;
20 #define SLVS_RESULT_EMPTY_SET -1
23 class SketchSolver_Solver
26 SketchSolver_Solver();
27 ~SketchSolver_Solver();
29 /** \brief Initialize the ID of the group
31 inline void setGroupID(Slvs_hGroup theGroupID)
32 { myGroupID = theGroupID; }
34 /** \brief Change array of parameters
35 * \param[in] theParameters vector of parameters
37 void setParameters(const std::vector<Slvs_Param>& theParameters);
39 /** \brief Change array of entities
40 * \param[in] theEntities vector of entities
42 void setEntities(const std::vector<Slvs_Entity>& theEntities);
44 /** \brief Change array of constraints
45 * \param[in] theConstraints vector of constraints
47 void setConstraints(const std::vector<Slvs_Constraint>& theConstraints);
49 /** \brief Solve the set of equations
50 * \return identifier whether solution succeeded
54 /** \brief Updates the list of parameters by calculated values
55 * \param[in,out] theParameters parameters to be updated
56 * \return \c true if parameters are updated correctly
58 bool getResult(std::vector<Slvs_Param>& theParameters);
61 Slvs_hGroup myGroupID; ///< identifier of the group to be solved
62 Slvs_System myEquationsSystem; ///< set of equations for solving in SolveSpace