42cf5bc1 |
1 | // Created on: 1993-04-13 |
2 | // Created by: JCV |
3 | // Copyright (c) 1993-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 _gp_EulerSequence_HeaderFile |
18 | #define _gp_EulerSequence_HeaderFile |
19 | |
4f5ad416 |
20 | //! Enumerates all 24 possible variants of generalized |
21 | //! Euler angles, defining general 3d rotation by three |
22 | //! rotations around main axes of coordinate system, |
23 | //! in different possible orders. |
24 | //! |
25 | //! The name of the enumeration |
26 | //! corresponds to order of rotations, prefixed by type |
27 | //! of co-ordinate system used: |
28 | //! - Intrinsic: rotations are made around axes of rotating |
29 | //! co-ordinate system associated with the object |
30 | //! - Extrinsic: rotations are made around axes of fixed |
31 | //! (static) co-ordinate system |
32 | //! |
33 | //! Two specific values are provided for most frequently used |
34 | //! conventions: classic Euler angles (intrinsic ZXZ) and |
35 | //! yaw-pitch-roll (intrinsic ZYX). |
42cf5bc1 |
36 | |
37 | enum gp_EulerSequence |
38 | { |
4f5ad416 |
39 | //! Classic Euler angles, alias to Intrinsic_ZXZ |
40 | gp_EulerAngles, |
41 | |
42 | //! Yaw Pitch Roll (or nautical) angles, alias to Intrinsic_ZYX |
43 | gp_YawPitchRoll, |
44 | |
45 | // Tait-Bryan angles (using three different axes) |
46 | gp_Extrinsic_XYZ, |
47 | gp_Extrinsic_XZY, |
48 | gp_Extrinsic_YZX, |
49 | gp_Extrinsic_YXZ, |
50 | gp_Extrinsic_ZXY, |
51 | gp_Extrinsic_ZYX, |
52 | |
53 | gp_Intrinsic_XYZ, |
54 | gp_Intrinsic_XZY, |
55 | gp_Intrinsic_YZX, |
56 | gp_Intrinsic_YXZ, |
57 | gp_Intrinsic_ZXY, |
58 | gp_Intrinsic_ZYX, |
59 | |
60 | // Proper Euler angles (using two different axes, first and third the same) |
61 | gp_Extrinsic_XYX, |
62 | gp_Extrinsic_XZX, |
63 | gp_Extrinsic_YZY, |
64 | gp_Extrinsic_YXY, |
65 | gp_Extrinsic_ZYZ, |
66 | gp_Extrinsic_ZXZ, |
67 | |
68 | gp_Intrinsic_XYX, |
69 | gp_Intrinsic_XZX, |
70 | gp_Intrinsic_YZY, |
71 | gp_Intrinsic_YXY, |
72 | gp_Intrinsic_ZXZ, |
73 | gp_Intrinsic_ZYZ |
42cf5bc1 |
74 | }; |
75 | |
76 | #endif // _gp_EulerSequence_HeaderFile |