Salome HOME
It removes commented not used code.
[modules/shaper.git] / src / SketchSolver / SketchSolver_Solver.h
index 412b0e1809cce674757c5a6c54b987c2aa2c1b8e..52ac18f98d44e05ba3e4f83a54ac8ee7b1ca64f5 100644 (file)
@@ -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,67 @@ typedef unsigned int UINT32;
 
 #include <vector>
 
-
 #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
+// Group ID to store external objects
+#define SLVS_G_OUTOFGROUP 1
+
+/**
+ * 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<Slvs_Param>& 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<Slvs_Entity>& 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<Slvs_Constraint>& 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<Slvs_hParam>& theDragged);
+  void setDraggedParameters(const Slvs_hParam* theDragged);
+
+  /** \brief Set or unset the flag which allows to find all failed constraints
+   */
+  void calculateFailedConstraints(bool theSic)
+  { myEquationsSystem.calculateFaileds = theSic ? 1 : 0; }
 
   /** \brief Solve the set of equations
    *  \return identifier whether solution succeeded
@@ -70,9 +93,9 @@ public:
    */
   bool getResult(std::vector<Slvs_Param>& 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