Clean up
[ShipHydroSIG.git] / src / vofDynamicMesh / lnInclude / TaitBryanCoordinateRotation.H
blob5edb1af9cb2e6d0cb15a69f77732ac8dfadc60d0
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright held by original author
6      \\/     M anipulation  |
7 -------------------------------------------------------------------------------
8 License
9     This file is part of OpenFOAM.
11     OpenFOAM is free software; you can redistribute it and/or modify it
12     under the terms of the GNU General Public License as published by the
13     Free Software Foundation; either version 2 of the License, or (at your
14     option) any later version.
16     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
19     for more details.
21     You should have received a copy of the GNU General Public License
22     along with OpenFOAM; if not, write to the Free Software Foundation,
23     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
25 Class
26     Foam::TaitBryanCoordinateRotation
28 Description
29     A coordinateRotation defined in the z-y'-x''  convention.
31     The 3 rotations are defined in the TaitBryan convention
32     (around Z, around Y' and around X') (Yaw, Pitch, Roll).
33     Note that it is the reverse transformation
34     (local->global) that is defined here.
36     - the rotation angles are in degrees, unless otherwise explictly specified:
38     @verbatim
39         coordinateRotation
40         {
41             type        TaitBryanRotation
42             degrees     false;
43             rotation    (0 0 3.141592654);
44         }
45     @endverbatim
47 \*---------------------------------------------------------------------------*/
49 #ifndef TaitBryanCoordinateRotation_H
50 #define TaitBryanCoordinateRotation_H
52 #include "coordinateRotation.H"
54 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
56 namespace Foam
59 /*---------------------------------------------------------------------------*\
60                 Class TaitBryanCoordinateRotation Declaration
61 \*---------------------------------------------------------------------------*/
63 class TaitBryanCoordinateRotation
65     public coordinateRotation
67     // Private member functions
69         //- Calculate transformation tensor
70         void calcTransform
71         (
72             const scalar phiAngle,
73             const scalar thetaAngle,
74             const scalar psiAngle,
75             const bool inDegrees = true
76         );
79 public:
81     //- Runtime type information
82     TypeName("TaitBryanRotation");
85     // Constructors
87         //- Construct null
88         TaitBryanCoordinateRotation();
90         //- Construct from rotation vector
91         TaitBryanCoordinateRotation
92         (
93             const vector& phiThetaPsi,
94             const bool inDegrees = true
95         );
97         //- Construct from components of rotation vector
98         TaitBryanCoordinateRotation
99         (
100             const scalar phiAngle,
101             const scalar thetaAngle,
102             const scalar psiAngle,
103             const bool inDegrees = true
104         );
106         //- Construct from dictionary
107         TaitBryanCoordinateRotation(const dictionary&);
112 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
114 } // End namespace Foam
116 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
118 #endif
120 // ************************************************************************* //