]> SALOME platform Git repositories - modules/shaper.git/blob - src/SketchSolver/SolveSpaceSolver/SolveSpaceSolver_ConstraintType.h
Salome HOME
Add copyright header according to request of CEA from 06.06.2017
[modules/shaper.git] / src / SketchSolver / SolveSpaceSolver / SolveSpaceSolver_ConstraintType.h
1 // Copyright (C) 2014-2017  CEA/DEN, EDF R&D
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
18 // email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com>
19 //
20
21 #ifndef SolveSpaceSolver_ConstraintType_H_
22 #define SolveSpaceSolver_ConstraintType_H_
23
24 #include <SketchSolver_IConstraintWrapper.h>
25 #include <SolveSpaceSolver_Solver.h>
26
27 namespace ConstraintType
28 {
29   /// \brief Convert constraint type from SketchSolver to SolveSpace
30   static int toSolveSpace(SketchSolver_ConstraintType theType)
31   {
32     switch (theType) {
33     case CONSTRAINT_PT_PT_COINCIDENT:   return SLVS_C_POINTS_COINCIDENT;
34     case CONSTRAINT_PT_ON_LINE:         return SLVS_C_PT_ON_LINE;
35     case CONSTRAINT_PT_ON_CIRCLE:       return SLVS_C_PT_ON_CIRCLE;
36     case CONSTRAINT_MIDDLE_POINT:       return SLVS_C_AT_MIDPOINT;
37     case CONSTRAINT_PT_PT_DISTANCE:     return SLVS_C_PT_PT_DISTANCE;
38     case CONSTRAINT_PT_LINE_DISTANCE:   return SLVS_C_PT_LINE_DISTANCE;
39     case CONSTRAINT_ANGLE:              return SLVS_C_ANGLE;
40     case CONSTRAINT_RADIUS:             return SLVS_C_DIAMETER;
41     case CONSTRAINT_FIXED:              return SLVS_C_WHERE_DRAGGED;
42     case CONSTRAINT_HORIZONTAL:         return SLVS_C_HORIZONTAL;
43     case CONSTRAINT_VERTICAL:           return SLVS_C_VERTICAL;
44     case CONSTRAINT_PARALLEL:           return SLVS_C_PARALLEL;
45     case CONSTRAINT_PERPENDICULAR:      return SLVS_C_PERPENDICULAR;
46     case CONSTRAINT_SYMMETRIC:          return SLVS_C_SYMMETRIC_LINE;
47     case CONSTRAINT_EQUAL_LINES:        return SLVS_C_EQUAL_LENGTH_LINES;
48     case CONSTRAINT_EQUAL_LINE_ARC:     return SLVS_C_EQUAL_LINE_ARC_LEN;
49     case CONSTRAINT_EQUAL_RADIUS:       return SLVS_C_EQUAL_RADIUS;
50     case CONSTRAINT_TANGENT_ARC_LINE:   return SLVS_C_ARC_LINE_TANGENT;
51     case CONSTRAINT_TANGENT_ARC_ARC:    return SLVS_C_CURVE_CURVE_TANGENT;
52     case CONSTRAINT_MULTI_ROTATION:     return SLVS_C_MULTI_ROTATION;
53     case CONSTRAINT_MULTI_TRANSLATION:  return SLVS_C_MULTI_TRANSLATION;
54     default: break;
55     }
56     return SLVS_C_UNKNOWN;
57   }
58
59   /// \brief Convert constraint type from SolveSpace to SketchSolver
60   static SketchSolver_ConstraintType fromSolveSpace(int theType)
61   {
62     switch (theType) {
63     case SLVS_C_POINTS_COINCIDENT:    return CONSTRAINT_PT_PT_COINCIDENT;
64     case SLVS_C_PT_ON_LINE:           return CONSTRAINT_PT_ON_LINE;
65     case SLVS_C_PT_ON_CIRCLE:         return CONSTRAINT_PT_ON_CIRCLE;
66     case SLVS_C_AT_MIDPOINT:          return CONSTRAINT_MIDDLE_POINT;
67     case SLVS_C_PT_PT_DISTANCE:       return CONSTRAINT_PT_PT_DISTANCE;
68     case SLVS_C_PT_LINE_DISTANCE:     return CONSTRAINT_PT_LINE_DISTANCE;
69     case SLVS_C_EQUAL_LENGTH_LINES:   return CONSTRAINT_EQUAL_LINES;
70     case SLVS_C_EQUAL_LINE_ARC_LEN:   return CONSTRAINT_EQUAL_LINE_ARC;
71     case SLVS_C_SYMMETRIC_LINE:       return CONSTRAINT_SYMMETRIC;
72     case SLVS_C_HORIZONTAL:           return CONSTRAINT_HORIZONTAL;
73     case SLVS_C_VERTICAL:             return CONSTRAINT_VERTICAL;
74     case SLVS_C_DIAMETER:             return CONSTRAINT_RADIUS;
75     case SLVS_C_ANGLE:                return CONSTRAINT_ANGLE;
76     case SLVS_C_PARALLEL:             return CONSTRAINT_PARALLEL;
77     case SLVS_C_PERPENDICULAR:        return CONSTRAINT_PERPENDICULAR;
78     case SLVS_C_ARC_LINE_TANGENT:     return CONSTRAINT_TANGENT_ARC_LINE;
79     case SLVS_C_EQUAL_RADIUS:         return CONSTRAINT_EQUAL_RADIUS;
80     case SLVS_C_WHERE_DRAGGED:        return CONSTRAINT_FIXED;
81     case SLVS_C_CURVE_CURVE_TANGENT:  return CONSTRAINT_TANGENT_ARC_ARC;
82     case SLVS_C_MULTI_ROTATION:       return CONSTRAINT_MULTI_ROTATION;
83     case SLVS_C_MULTI_TRANSLATION:    return CONSTRAINT_MULTI_TRANSLATION;
84     default: break;
85     }
86     return CONSTRAINT_UNKNOWN;
87   }
88 }
89
90
91 #endif