OpenLexocad  28.0
Enums.h
Go to the documentation of this file.
1 #pragma once
2 
3 #ifndef END_OF_LOOP
4 #define END_OF_LOOP -2
5 #endif
6 
7 #ifndef END_OF_FACE
8 #define END_OF_FACE -1
9 #endif
10 
11 #undef DOOR
12 #define UNUSED(expr) \
13  do \
14  { \
15  (void)(expr); \
16  } while (0)
17 
18 namespace Base
19 {
20 class String;
21 }
22 
23 namespace Base
24 {
26 // //
27 // --------------------- BEGIN API --------------------- //
28 // //
29 // ATTENTION: DO NOT CHANGE ANY SIGNATURES IN THE API ! //
30 // //
32 
33 
34 enum class FormworkType
35 {
36  PANEL,
39 };
40 
41 enum class FillingType
42 {
43  NOFILLING,
44  WINDOW,
45  DOOR,
47  BASICDOOR
48 };
49 
50 enum class OpeningType // !!!!!! NEW ENTRIES MUST BE AT THE END, BECAUSE OF SAVING AS INT !!!!!!!
51 {
52  WALL,
53  RECTANGLE = 0,
54  TRAPEZOID,
55  ARCHED,
56  OCTAGON,
57  TRIANGLE,
58  CIRCLE_WIN,
60  SEMICIRCLE,
62  DOOR,
63  GARAGEDOOR,
64  FLOOR, // for Openings
65  ROOF, // for Openings
66  GENERAL, // for Openings
67  TYPE_FOR_COPY, // fast solution
68  ARCHDOOR,
69  ARCHTOP,
70  PENTAGON,
74 };
75 
76 enum class PurposeGroup // because Doors are divided to user groups according e.g. directories with textures
77 {
78  DOOR,
79  GARAGE,
81  ARCHDOOR,
84 };
85 
87 {
96  SLIDING_TO_LEFT = 8,
97  SLIDING_TO_RIGHT = 9,
99  FOLDING_TO_LEFT = 11,
100  FOLDING_TO_RIGHT = 12,
101  DOUBLE_DOOR_FOLDING = 13,
102  REVOLVING = 14,
103  ROLLINGUP = 15,
104  SWING_FIXED_LEFT = 16,
105  SWING_FIXED_RIGHT = 17,
106  USERDEFINED = 18,
107  NOTDEFINED = 19,
108  // INVERT_SINGLE_SWING_RIGHT = 20, // Deprecated, use 'placeDoorOnReferenceSide' property in Doors.
109  // INVERT_SINGLE_SWING_LEFT = 21, // Deprecated, use 'placeDoorOnReferenceSide' property in Doors.
110  // INVERT_SWING_FIXED_RIGHT = 22, // Deprecated, use 'placeDoorOnReferenceSide' property in Doors.
111  // INVERT_SWING_FIXED_LEFT = 23, // Deprecated, use 'placeDoorOnReferenceSide' property in Doors.
112  TRIPLE_DOOR_SWING_RIGHT = 24, // Lexocad only
113  TRIPLE_DOOR_SWING_LEFT = 25, // Lexocad only
114  TRIPLE_DOOR_TRIPLE_SWING_RIGHT = 26, // Lexocad only
115  TRIPLE_DOOR_TRIPLE_SWING_LEFT = 27 // Lexocad only
116 };
117 
118 enum class Divider
119 {
120  NONE,
121  VERTICAL,
122  CROSS,
123  HORIZONTAL,
125 };
126 
127 // used for CmdBooleanSplitShapeWithPlane
128 enum class SplitStatus
129 {
130  PLANE,
131  HORIZONTAL,
132  VERTICAL_X,
133  VERTICAL_Y,
135  TWO_SURFACES,
136  MESH_SPLIT,
137  PLANE_3P,
141  LINE_ON_MESH,
146  BOOLEAN_CUT,
148  CUT_IN_TWO, // just to pass in constructor, to avoid bool
149  CUT_TERRAIN,
150 };
151 
153 // //
154 // ---------------------- END API ---------------------- //
155 // //
157 
158 
159 } // namespace Base
Base::FormworkType
FormworkType
Definition: Enums.h:35
Base::OpeningType::TYPE_FOR_COPY
@ TYPE_FOR_COPY
Base::SplitStatus::CUT_BY_CONTOUR
@ CUT_BY_CONTOUR
Base::OpeningType::QUARTERCIRCLE
@ QUARTERCIRCLE
Base::FillingType::WINDOW
@ WINDOW
Base::PurposeGroup::GARAGE
@ GARAGE
Base::OpeningType::DOOR
@ DOOR
Base::Divider::VERTICAL
@ VERTICAL
Base::SplitStatus::PROJECT_VERTICAL_LINE
@ PROJECT_VERTICAL_LINE
Base::DoorTypeOperationEnum::TRIPLE_DOOR_TRIPLE_SWING_LEFT
@ TRIPLE_DOOR_TRIPLE_SWING_LEFT
Base::SplitStatus::CUT_IN_TWO
@ CUT_IN_TWO
Base::Divider::TWOVERTICAL
@ TWOVERTICAL
Base::DoorTypeOperationEnum::FOLDING_TO_RIGHT
@ FOLDING_TO_RIGHT
Base::OpeningType::TRIANGLE
@ TRIANGLE
Base::OpeningType::NOTDEFINED
@ NOTDEFINED
Base::OpeningType::ROOF
@ ROOF
Base::DoorTypeOperationEnum::REVOLVING
@ REVOLVING
Base::FormworkType::INNERCORNER
@ INNERCORNER
Base::DoorTypeOperationEnum::ROLLINGUP
@ ROLLINGUP
Base::Divider
Divider
Definition: Enums.h:119
Base::PurposeGroup::NOTDEFINED
@ NOTDEFINED
Base::DoorTypeOperationEnum::TRIPLE_DOOR_SWING_LEFT
@ TRIPLE_DOOR_SWING_LEFT
Base::OpeningType::GENERAL
@ GENERAL
Base::SplitStatus::MESH_SPLIT
@ MESH_SPLIT
Base::FormworkType::OUTERCORNER
@ OUTERCORNER
Base::SplitStatus
SplitStatus
Definition: Enums.h:129
Base::PurposeGroup::ARCHDOOR
@ ARCHDOOR
Base::FillingType
FillingType
Definition: Enums.h:42
Base::SplitStatus::LINE_ON_MESH
@ LINE_ON_MESH
Base::DoorTypeOperationEnum::SLIDING_TO_LEFT
@ SLIDING_TO_LEFT
Base::OpeningType::PENTAGON
@ PENTAGON
Base::FillingType::BASICWINDOW
@ BASICWINDOW
Base::SplitStatus::VERTICAL_FACE_FOR_TERRAIN
@ VERTICAL_FACE_FOR_TERRAIN
Base::SplitStatus::HORIZONTAL
@ HORIZONTAL
Base::OpeningType::ARCHDOOR
@ ARCHDOOR
Base::DoorTypeOperationEnum::SINGLE_SWING_RIGHT
@ SINGLE_SWING_RIGHT
Base::DoorTypeOperationEnum::DOUBLE_DOOR_SINGLE_SWING
@ DOUBLE_DOOR_SINGLE_SWING
Base::DoorTypeOperationEnum::DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT
@ DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT
Base::DoorTypeOperationEnum::DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT
@ DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT
Base::DoorTypeOperationEnum::SWING_FIXED_LEFT
@ SWING_FIXED_LEFT
Base::DoorTypeOperationEnum
DoorTypeOperationEnum
Definition: Enums.h:87
Base::FillingType::DOOR
@ DOOR
Base::DoorTypeOperationEnum::TRIPLE_DOOR_SWING_RIGHT
@ TRIPLE_DOOR_SWING_RIGHT
Base::Divider::CROSS
@ CROSS
Base::SplitStatus::CUT_BIM_ACC_LINE
@ CUT_BIM_ACC_LINE
Base::Divider::HORIZONTAL
@ HORIZONTAL
Base::SplitStatus::VERTICAL_X
@ VERTICAL_X
Base::OpeningType::FLOOR
@ FLOOR
Base::OpeningType
OpeningType
Definition: Enums.h:51
Base::FillingType::NOFILLING
@ NOFILLING
Base::OpeningType::FRENCHWINDOW
@ FRENCHWINDOW
Base::OpeningType::GARAGEDOOR
@ GARAGEDOOR
Base::SplitStatus::BOOLEAN_CUT
@ BOOLEAN_CUT
Base::OpeningType::OCTAGON
@ OCTAGON
Base::SplitStatus::VERTICAL_LINE
@ VERTICAL_LINE
Base::OpeningType::ELLIPSE_WIN
@ ELLIPSE_WIN
Base::PurposeGroup::TRANSOMDOOR
@ TRANSOMDOOR
Base::OpeningType::ARCHTOP
@ ARCHTOP
Base::OpeningType::CIRCLE_WIN
@ CIRCLE_WIN
Base::SplitStatus::VIEWER_PERPENDICULAR_2P
@ VIEWER_PERPENDICULAR_2P
Base::DoorTypeOperationEnum::TRIPLE_DOOR_TRIPLE_SWING_RIGHT
@ TRIPLE_DOOR_TRIPLE_SWING_RIGHT
Base::DoorTypeOperationEnum::DOUBLE_DOOR_FOLDING
@ DOUBLE_DOOR_FOLDING
Base::DoorTypeOperationEnum::DOUBLE_SWING_LEFT
@ DOUBLE_SWING_LEFT
Base::DoorTypeOperationEnum::DOUBLE_SWING_RIGHT
@ DOUBLE_SWING_RIGHT
Base::DoorTypeOperationEnum::SLIDING_TO_RIGHT
@ SLIDING_TO_RIGHT
Base::SplitStatus::CUT_AND_FILL_MESH
@ CUT_AND_FILL_MESH
Base::DoorTypeOperationEnum::SINGLE_SWING_LEFT
@ SINGLE_SWING_LEFT
Base::SplitStatus::PLANE
@ PLANE
Base::DoorTypeOperationEnum::DOUBLE_DOOR_DOUBLE_SWING
@ DOUBLE_DOOR_DOUBLE_SWING
Base::OpeningType::WALL
@ WALL
Base::SplitStatus::TWO_SURFACES
@ TWO_SURFACES
Base::Divider::NONE
@ NONE
Base::SplitStatus::VERTICAL_Y
@ VERTICAL_Y
Base::DoorTypeOperationEnum::NOTDEFINED
@ NOTDEFINED
Base::FormworkType::PANEL
@ PANEL
Base::SplitStatus::CUT_BY_RECTANGLE
@ CUT_BY_RECTANGLE
Base::FillingType::BASICDOOR
@ BASICDOOR
Base::DoorTypeOperationEnum::SWING_FIXED_RIGHT
@ SWING_FIXED_RIGHT
Base::DoorTypeOperationEnum::DOUBLE_DOOR_SLIDING
@ DOUBLE_DOOR_SLIDING
Base::SplitStatus::PARAMETRIC_CUT
@ PARAMETRIC_CUT
Base::DoorTypeOperationEnum::USERDEFINED
@ USERDEFINED
Base::DoorTypeOperationEnum::FOLDING_TO_LEFT
@ FOLDING_TO_LEFT
Base::OpeningType::TRANSOMDOOR
@ TRANSOMDOOR
Base::SplitStatus::PLANE_3P
@ PLANE_3P
Base::OpeningType::ARCHED
@ ARCHED
Base::PurposeGroup
PurposeGroup
Definition: Enums.h:77
Base::OpeningType::TRAPEZOID
@ TRAPEZOID
Base::OpeningType::RECTANGLE
@ RECTANGLE
Base::PurposeGroup::FRENCHWINDOW
@ FRENCHWINDOW
Base
Definition: AbstractXMLReader.h:5
Base::OpeningType::SEMICIRCLE
@ SEMICIRCLE
Base::PurposeGroup::DOOR
@ DOOR
Base::SplitStatus::CUT_TERRAIN
@ CUT_TERRAIN