1 // Created on: 1992-11-13
3 // Copyright (c) 1992-1999 Matra Datavision
4 // Copyright (c) 1999-2014 OPEN CASCADE SAS
6 // This file is part of Open CASCADE Technology software library.
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.
14 // Alternatively, this file may be used under the terms of Open CASCADE
15 // commercial license or contractual agreement.
17 #ifndef _V3d_TypeOfOrientation_HeaderFile
18 #define _V3d_TypeOfOrientation_HeaderFile
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.
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
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
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
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
80 #endif // _V3d_TypeOfOrientation_HeaderFile