SHAPER  9.12.0
SolveSpaceSolver_ConstraintType.h
1 // Copyright (C) 2014-2023 CEA, EDF
2 //
3 // This library is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU Lesser General Public
5 // License as published by the Free Software Foundation; either
6 // version 2.1 of the License, or (at your option) any later version.
7 //
8 // This library is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 // Lesser General Public License for more details.
12 //
13 // You should have received a copy of the GNU Lesser General Public
14 // License along with this library; if not, write to the Free Software
15 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16 //
17 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 //
19 
20 #ifndef SolveSpaceSolver_ConstraintType_H_
21 #define SolveSpaceSolver_ConstraintType_H_
22 
23 #include <SketchSolver_IConstraintWrapper.h>
24 #include <SolveSpaceSolver_Solver.h>
25 
26 namespace ConstraintType
27 {
29  static int toSolveSpace(SketchSolver_ConstraintType theType)
30  {
31  switch (theType) {
32  case CONSTRAINT_PT_PT_COINCIDENT: return SLVS_C_POINTS_COINCIDENT;
33  case CONSTRAINT_PT_ON_LINE: return SLVS_C_PT_ON_LINE;
34  case CONSTRAINT_PT_ON_CIRCLE: return SLVS_C_PT_ON_CIRCLE;
35  case CONSTRAINT_MIDDLE_POINT: return SLVS_C_AT_MIDPOINT;
36  case CONSTRAINT_PT_PT_DISTANCE: return SLVS_C_PT_PT_DISTANCE;
37  case CONSTRAINT_PT_LINE_DISTANCE: return SLVS_C_PT_LINE_DISTANCE;
38  case CONSTRAINT_ANGLE: return SLVS_C_ANGLE;
39  case CONSTRAINT_RADIUS: return SLVS_C_DIAMETER;
40  case CONSTRAINT_FIXED: return SLVS_C_WHERE_DRAGGED;
41  case CONSTRAINT_HORIZONTAL: return SLVS_C_HORIZONTAL;
42  case CONSTRAINT_VERTICAL: return SLVS_C_VERTICAL;
43  case CONSTRAINT_PARALLEL: return SLVS_C_PARALLEL;
44  case CONSTRAINT_PERPENDICULAR: return SLVS_C_PERPENDICULAR;
45  case CONSTRAINT_SYMMETRIC: return SLVS_C_SYMMETRIC_LINE;
46  case CONSTRAINT_EQUAL_LINES: return SLVS_C_EQUAL_LENGTH_LINES;
47  case CONSTRAINT_EQUAL_LINE_ARC: return SLVS_C_EQUAL_LINE_ARC_LEN;
48  case CONSTRAINT_EQUAL_RADIUS: return SLVS_C_EQUAL_RADIUS;
49  case CONSTRAINT_TANGENT_ARC_LINE: return SLVS_C_ARC_LINE_TANGENT;
50  case CONSTRAINT_TANGENT_ARC_ARC: return SLVS_C_CURVE_CURVE_TANGENT;
51  case CONSTRAINT_MULTI_ROTATION: return SLVS_C_MULTI_ROTATION;
52  case CONSTRAINT_MULTI_TRANSLATION: return SLVS_C_MULTI_TRANSLATION;
53  default: break;
54  }
55  return SLVS_C_UNKNOWN;
56  }
57 
59  static SketchSolver_ConstraintType fromSolveSpace(int theType)
60  {
61  switch (theType) {
62  case SLVS_C_POINTS_COINCIDENT: return CONSTRAINT_PT_PT_COINCIDENT;
63  case SLVS_C_PT_ON_LINE: return CONSTRAINT_PT_ON_LINE;
64  case SLVS_C_PT_ON_CIRCLE: return CONSTRAINT_PT_ON_CIRCLE;
65  case SLVS_C_AT_MIDPOINT: return CONSTRAINT_MIDDLE_POINT;
66  case SLVS_C_PT_PT_DISTANCE: return CONSTRAINT_PT_PT_DISTANCE;
67  case SLVS_C_PT_LINE_DISTANCE: return CONSTRAINT_PT_LINE_DISTANCE;
68  case SLVS_C_EQUAL_LENGTH_LINES: return CONSTRAINT_EQUAL_LINES;
69  case SLVS_C_EQUAL_LINE_ARC_LEN: return CONSTRAINT_EQUAL_LINE_ARC;
70  case SLVS_C_SYMMETRIC_LINE: return CONSTRAINT_SYMMETRIC;
71  case SLVS_C_HORIZONTAL: return CONSTRAINT_HORIZONTAL;
72  case SLVS_C_VERTICAL: return CONSTRAINT_VERTICAL;
73  case SLVS_C_DIAMETER: return CONSTRAINT_RADIUS;
74  case SLVS_C_ANGLE: return CONSTRAINT_ANGLE;
75  case SLVS_C_PARALLEL: return CONSTRAINT_PARALLEL;
76  case SLVS_C_PERPENDICULAR: return CONSTRAINT_PERPENDICULAR;
77  case SLVS_C_ARC_LINE_TANGENT: return CONSTRAINT_TANGENT_ARC_LINE;
78  case SLVS_C_EQUAL_RADIUS: return CONSTRAINT_EQUAL_RADIUS;
79  case SLVS_C_WHERE_DRAGGED: return CONSTRAINT_FIXED;
80  case SLVS_C_CURVE_CURVE_TANGENT: return CONSTRAINT_TANGENT_ARC_ARC;
81  case SLVS_C_MULTI_ROTATION: return CONSTRAINT_MULTI_ROTATION;
82  case SLVS_C_MULTI_TRANSLATION: return CONSTRAINT_MULTI_TRANSLATION;
83  default: break;
84  }
85  return CONSTRAINT_UNKNOWN;
86  }
87 }
88 
89 
90 #endif