0030692: Data Exchange - introduce base framework RWMesh for importing mesh data...
[occt.git] / src / V3d / V3d_TypeOfOrientation.hxx
1 // Created on: 1992-11-13
2 // Created by: GG
3 // Copyright (c) 1992-1999 Matra Datavision
4 // Copyright (c) 1999-2014 OPEN CASCADE SAS
5 //
6 // This file is part of Open CASCADE Technology software library.
7 //
8 // This library is free software; you can redistribute it and/or modify it under
9 // the terms of the GNU Lesser General Public License version 2.1 as published
10 // by the Free Software Foundation, with special exception defined in the file
11 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
12 // distribution for complete text of the license and disclaimer of any warranty.
13 //
14 // Alternatively, this file may be used under the terms of Open CASCADE
15 // commercial license or contractual agreement.
16
17 #ifndef _V3d_TypeOfOrientation_HeaderFile
18 #define _V3d_TypeOfOrientation_HeaderFile
19
20 //! Determines the type of orientation as a combination of standard DX/DY/DZ directions.
21 //! This enumeration defines a model orientation looking towards the user's eye, which is an opposition to Camera main direction.
22 //! For example, V3d_Xneg defines +X Camera main direction.
23 //!
24 //! This enumeration defines only main Camera direction, so that the Camera up direction should be defined elsewhere for unambiguous Camera definition.
25 //! Open CASCADE does not force application using specific coordinate system, although Draw Harness and samples define +Z-up +Y-forward coordinate system for camera view manipulation.
26 //! Therefore, this enumeration also defines V3d_TypeOfOrientation_Zup_* aliases defining front/back/left/top camera orientations for +Z-up convention
27 //! as well as V3d_TypeOfOrientation_Yup_* aliases for another commonly used in other systems +Y-up convention.
28 //! Applications using other coordinate system can define their own enumeration, when found suitable.
29 enum V3d_TypeOfOrientation
30 {
31   V3d_Xpos, //!< (+Y+Z) view
32   V3d_Ypos, //!< (-X+Z) view
33   V3d_Zpos, //!< (+X+Y) view
34   V3d_Xneg, //!< (-Y+Z) view
35   V3d_Yneg, //!< (+X+Z) view
36   V3d_Zneg, //!< (+X-Y) view
37
38   V3d_XposYpos,
39   V3d_XposZpos,
40   V3d_YposZpos,
41   V3d_XnegYneg,
42   V3d_XnegYpos,
43   V3d_XnegZneg,
44   V3d_XnegZpos,
45   V3d_YnegZneg,
46   V3d_YnegZpos,
47   V3d_XposYneg,
48   V3d_XposZneg,
49   V3d_YposZneg,
50   V3d_XposYposZpos,
51   V3d_XposYnegZpos,
52   V3d_XposYposZneg,
53   V3d_XnegYposZpos,
54   V3d_XposYnegZneg,
55   V3d_XnegYposZneg,
56   V3d_XnegYnegZpos,
57   V3d_XnegYnegZneg,
58
59   // +Z-up +Y-forward convention
60   V3d_TypeOfOrientation_Zup_AxoLeft  = V3d_XnegYnegZpos,  //!< +Z-up +Y-forward Left +Front+Top
61   V3d_TypeOfOrientation_Zup_AxoRight = V3d_XposYnegZpos,  //!< +Z-up +Y-forward Right+Front+Top
62   V3d_TypeOfOrientation_Zup_Front    = V3d_Yneg,          //!< +Z-up +Y-forward Front  (+X+Z) view
63   V3d_TypeOfOrientation_Zup_Back     = V3d_Ypos,          //!< +Z-up +Y-forward Back   (-X+Z) view
64   V3d_TypeOfOrientation_Zup_Top      = V3d_Zpos,          //!< +Z-up +Y-forward Top    (+X+Y) view
65   V3d_TypeOfOrientation_Zup_Bottom   = V3d_Zneg,          //!< +Z-up +Y-forward Bottom (+X-Y) view
66   V3d_TypeOfOrientation_Zup_Left     = V3d_Xneg,          //!< +Z-up +Y-forward Left   (-Y+Z) view
67   V3d_TypeOfOrientation_Zup_Right    = V3d_Xpos,          //!< +Z-up +Y-forward Right  (+Y+Z) view
68
69   // +Y-up -Z-forward convention
70   V3d_TypeOfOrientation_Yup_AxoLeft  = V3d_XnegYposZpos,  //!< +Y-up -Z-forward Left +Front+Top
71   V3d_TypeOfOrientation_Yup_AxoRight = V3d_XposYposZpos,  //!< +Y-up -Z-forward Right+Front+Top
72   V3d_TypeOfOrientation_Yup_Front    = V3d_Zpos,          //!< +Y-up -Z-forward Front  (+X+Y) view
73   V3d_TypeOfOrientation_Yup_Back     = V3d_Zneg,          //!< +Y-up -Z-forward Back   (-X+Y) view
74   V3d_TypeOfOrientation_Yup_Top      = V3d_Ypos,          //!< +Y-up -Z-forward Top    (+X-Z) view
75   V3d_TypeOfOrientation_Yup_Bottom   = V3d_Yneg,          //!< +Y-up -Z-forward Bottom (-X-Z) view
76   V3d_TypeOfOrientation_Yup_Left     = V3d_Xpos,          //!< +Y-up -Z-forward Left   (-Z+Y) view
77   V3d_TypeOfOrientation_Yup_Right    = V3d_Xneg,          //!< +Y-up -Z-forward Right  (+Z+Y) view
78 };
79
80 #endif // _V3d_TypeOfOrientation_HeaderFile