X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSketchSolver%2FSketchSolver_Solver.h;h=7079f1598549d2660c1c15102dce44a84a18bba4;hb=9c54fb01877c455abb5b5ff22e384468f795b328;hp=aeb29ef5e44d5753a5febc9cad8baf999f8e97ea;hpb=f681e98322405cc5693012b0f939f4332547d2b1;p=modules%2Fshaper.git diff --git a/src/SketchSolver/SketchSolver_Solver.h b/src/SketchSolver/SketchSolver_Solver.h index aeb29ef5e..7079f1598 100644 --- a/src/SketchSolver/SketchSolver_Solver.h +++ b/src/SketchSolver/SketchSolver_Solver.h @@ -1,35 +1,47 @@ +// 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" // Need to be defined before including SolveSpace to avoid additional dependances on Windows platform #if defined(WIN32) && !defined(HAVE_C99_INTEGER_TYPES) typedef unsigned int UINT32; +#else +#include #endif #include #include #include - #define SLVS_RESULT_EMPTY_SET -1 +// Unknown constraint (for error reporting) +#define SLVS_C_UNKNOWN 0 +// Unknown entity +#define SLVS_E_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 @@ -46,6 +58,12 @@ public: */ void setConstraints(const std::vector& theConstraints); + /** \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); + /** \brief Solve the set of equations * \return identifier whether solution succeeded */ @@ -57,9 +75,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