Storage for rotation parameters. More...
#include <RotateParameters.h>
Public Types | |
| enum | Axis { Vertical = 0x01, North = 0x02, East = 0x04 } |
Public Member Functions | |
| double | angleAroundEast () const |
| double | angleAroundNorth () const |
| double | angleAroundVertical () const |
| Axes | axes () const |
| Matrix3x3 | matrix () const |
| RotateParameters () | |
| RotateParameters (const RotateParameters &o) | |
| void | setAngleAroundEast (double a) |
| void | setAngleAroundNorth (double a) |
| void | setAngleAroundVertical (double a) |
| void | setAxes (Axes a) |
Storage for rotation parameters.
Up to 3 rotations can be chained in this order:
Angles are all in degree counted in a counterclockwise direction about the axis (right hand rule).
Default constructor: no rotation.
References TRACE.
: AbstractParameters() { TRACE; _axes=0; _angleAroundVertical=0.0; _angleAroundNorth=0.0; _angleAroundEast=0.0; }
| double GeopsyCore::RotateParameters::angleAroundEast | ( | ) | const [inline] |
Referenced by GeopsyCore::SignalProcess::rotateComponents().
{return _angleAroundEast;}
| double GeopsyCore::RotateParameters::angleAroundNorth | ( | ) | const [inline] |
Referenced by GeopsyCore::SignalProcess::rotateComponents().
{return _angleAroundNorth;}
| double GeopsyCore::RotateParameters::angleAroundVertical | ( | ) | const [inline] |
Referenced by GeopsyCore::SignalProcess::rotateComponents().
{return _angleAroundVertical;}
| Axes GeopsyCore::RotateParameters::axes | ( | ) | const [inline] |
Referenced by GeopsyCore::SignalProcess::rotateComponents().
{return _axes;}
Returns the rotation matrix.
References East, QGpCoreTools::Matrix< T >::identity(), North, QGpCoreTools::Matrix3x3::rotation(), QGpCoreTools::Angle::setDegrees(), TRACE, Vertical, QGpCoreTools::XAxis, QGpCoreTools::YAxis, and QGpCoreTools::ZAxis.
Referenced by GeopsyCore::SignalProcess::rotateComponentsCore().
{
TRACE;
Matrix3x3 rot;
rot.identity();
Matrix3x3 elrot;
Angle a;
if(_axes & Vertical) {
a.setDegrees(_angleAroundVertical);
elrot.rotation(ZAxis, a);
rot*=elrot;
}
if(_axes & North) {
a.setDegrees(_angleAroundNorth);
elrot.rotation(YAxis, a);
rot*=elrot;
}
if(_axes & East) {
a.setDegrees(_angleAroundEast);
elrot.rotation(XAxis, a);
rot*=elrot;
}
return rot;
}
| void GeopsyCore::RotateParameters::setAngleAroundEast | ( | double | a | ) | [inline] |
Referenced by RotateComponents::parameters().
{_angleAroundEast=a;}
| void GeopsyCore::RotateParameters::setAngleAroundNorth | ( | double | a | ) | [inline] |
Referenced by RotateComponents::parameters().
{_angleAroundNorth=a;}
| void GeopsyCore::RotateParameters::setAngleAroundVertical | ( | double | a | ) | [inline] |
Referenced by RotateComponents::parameters().
{_angleAroundVertical=a;}
| void GeopsyCore::RotateParameters::setAxes | ( | Axes | a | ) | [inline] |
Referenced by RotateComponents::parameters().
{_axes=a;}