Itasca C++ Interface
|
Class for storing an "orientation", or a direction in 2D or 3D space. More...
#include <orientation.h>
Public Member Functions | |
BASE_EXPORT | Orientation3 () |
Default 3D orientation is +Z normal vector. | |
BASE_EXPORT | Orientation3 (const Orientation3 &o) |
Copy constructor. | |
BASE_EXPORT | Orientation3 (const DVect3 &dv3) |
Explicit constructor by normal vector, dv3 need not be a unit vector. | |
BASE_EXPORT | Orientation3 (const double &dip, const double &dd=0.0) |
Explicit constructor by dip and dip direction, in radians. | |
BASE_EXPORT const Orientation3 & | operator= (const Orientation3 &o) |
Equality operator. | |
BASE_EXPORT bool | operator== (const Orientation3 &o) const |
Comparison operator, by normal vector (unit, not user). | |
BASE_EXPORT bool | operator!= (const Orientation3 &o) const |
BASE_EXPORT const DVect3 & | getNormal () const |
Returns the unit normal of this orientation. | |
BASE_EXPORT const DVect3 & | getNormalUser () const |
Returns the normal vector specified by the user, which may not be a unit vector. | |
BASE_EXPORT DVect2 | getDipDD () const |
Returns the dip and dip direction (in radians) encoded in a DVect2. x = dip, y = dd. | |
BASE_EXPORT double | getDip () const |
Returns the dip in radians. | |
BASE_EXPORT double | getDipDirection () const |
Returns the dip direction in radians. | |
BASE_EXPORT bool | wasDefinedByNormal () const |
BASE_EXPORT double | getJointAngle () const |
Returns joint angle in radians. | |
BASE_EXPORT double | getAzimuth () const |
Returns azimuth in radians. | |
BASE_EXPORT double | getPlunge () const |
Returns plunge in radians. | |
BASE_EXPORT void | setNormal (const DVect3 &norm) |
Sets the normal vector – this value need not be a unit vector, and it is recoverable in getNormalUser(). | |
BASE_EXPORT void | setNormalX (const double &x) |
Sets the X-component of the normal user vector, the other components are held constant. | |
BASE_EXPORT void | setNormalY (const double &y) |
Sets the Y-component of the normal user vector, the other components are held constant. | |
BASE_EXPORT void | setNormalZ (const double &z) |
Sets the Z-component of the normal user vector, the other components are held constant. | |
BASE_EXPORT void | setDipDD (const double &dip, const double &dd) |
Sets the dip and dip direction, in radians. | |
BASE_EXPORT void | setDip (const double &dip) |
Sets dip in radians, the dip direction is held constant. | |
BASE_EXPORT void | setDipDirection (const double &dd) |
Sets the dip direction in radians, the dip is held constant. | |
BASE_EXPORT void | setJointAngle (const double &angle) |
BASE_EXPORT void | setAzimuthPlunge (const double &azimuth, const double &plunge) |
BASE_EXPORT bool | isIn (const DVect3 &normal, const DVect2 &tol) const |
Utility class, returns TRUE if normal is within tolerance of this orientation. | |
Static Public Member Functions | |
static BASE_EXPORT DVect3 | getNormFromDipDD (const double &dip, const double &dd) |
Converts from a dip and dip direction (in radians) to a normal vector. | |
static BASE_EXPORT DVect3 | getVectorFromAzimuthPlunge (const double &az, const double &plunge) |
Converts from azimuth and plunge (in radians) to the corresponding vector. | |
static BASE_EXPORT DVect3 | getNormFromAzimuthPlunge (const double &azimuth, const double &plunge) |
Converts from a dip and dip direction (in radians) to a normal vector. | |
static BASE_EXPORT DVect2 | getDipDDFromNorm (const DVect3 &norm) |
static BASE_EXPORT double | getJointAngleFromNorm (const DVect3 &norm) |
Converts a normal vector (need not be unit) to a joint angle in radians. | |
static BASE_EXPORT double | getAzimuthFromNorm (const DVect3 &norm) |
static BASE_EXPORT double | getPlungeFromNorm (const DVect3 &norm) |
static BASE_EXPORT bool | getLHS () |
static BASE_EXPORT void | setLHS (bool b) |
Class for storing an "orientation", or a direction in 2D or 3D space.
Class for storing an "orientation", or a direction in 2D or 3D space.
Orientations can be viewed as defining either a normal direction, or a plane in space normal to that direction.
2D orientations are specified by either a plane dip angle (clockwise from +X) or a normal vector.
3D orientations are specified by a dip angle (clockwise from XY plane) and a dip direction (steepest Z descent line projected onto XY plane, clockwise from +Y).
3D orientation objects remember if they were specified with dip/dd or normal.
The original data specified (non-normalized direction vector, dip/dd outside range) is retained, so that it can be changed/updated by the user on a component basis.
For historical (3DEC) reasons, an orientation has a global Left Handed System mode — which changes the 3D definition of dip and dip direction.
An Orientation can also return a "joint angle", which is defined as the intersection of the plane with the xy plane, measured positive counter-clockwise from x. In 2D the joint angle is the negative of the dip. Note that "joint angle" can not fully specify a normal vector, because it has no concept of a side; thus, a joint angle of 45 is equivalent to a joint angle of 225. Joint angles are always returned in the range 0 to 180.
An "Azimuth" of a 3D normal vector is the clockwise-angle from +Y projected onto the XY plane. In a LHS system, the YZ axes are swapped.
A "Plunge" of a 3D normal vector is the angle between the vector and the XY plane. In a LHS system, the YZ axes are swapped.
|
static |
Converts from a normal vector (need not be unit) to an azimuth in radians. Azimuth is the angle betweent he projection of the vector in the XY plane makes with the +y Axes, clockwise.
|
static |
Converts from a normal vector (need not be unit) to a dip and dip direction encoded in a DVect2. x = dip, y = dip direction.
|
inlinestatic |
These functions specify if a Left Handed coordinate system is being used. This changes the way that dip/dd is converted into a normal vector.
|
static |
Converts from a normal vector (need not be unit) to a plunge in radians. The plunge is the angle between the normal vector and the horizontal plane, with positive being below the plane.
void Orientation3::setAzimuthPlunge | ( | const double & | azimuth, |
const double & | plunge ) |
Sets the orientation in terms of azimuth and plunge. For definitions see getAzimuthFromNorm and getPlungeFromNorm.
void Orientation3::setJointAngle | ( | const double & | angle | ) |
Sets the joint angle, in radians. Dip is always set to 90 deg, Dip Direction is negative Joint Angle. If in LHS, then Dip Direction is set to 90 deg, Dip is negative Joint Angle.
|
inlinestatic |
These functions specify if a Left Handed coordinate system is being used. This changes the way that dip/dd is converted into a normal vector.
|
inline |
Returns true if the orientation was defined by a normal vector – setNormal(. Returns false if it was defined by dip/dd or joint angle.