This is a unit quaternion representing a rotation. More...
#include "lrotation.h"
Public Member Functions | |
LRotationd (const LQuaterniond &c) | |
LRotationd (const LVecBase4d ©) | |
LRotationd (double r, double i, double j, double k) | |
LRotationd (const LVector3d &axis, double angle) | |
axis + angle (in degrees) More... | |
LRotationd (const LMatrix3d &m) | |
lmatrix3 More... | |
LRotationd (const LMatrix4d &m) | |
lmatrix4 More... | |
LRotationd (double h, double p, double r) | |
Sets the rotation from the given Euler angles. More... | |
LRotationd | operator* (double scalar) const |
LRotationd | operator* (const LRotationd &other) const |
Rotation * Rotation = Rotation. More... | |
LQuaterniond | operator* (const LQuaterniond &other) const |
Rotation * Orientation = Orientation This is another meaningless operation, attempting to apply an orientation to a rotation. More... | |
LRotationd | operator/ (double scalar) const |
![]() | |
LQuaterniond (const LVecBase4d ©) | |
LQuaterniond (double r, const LVecBase3d ©) | |
LQuaterniond (double r, double i, double j, double k) | |
bool | almost_equal (const LQuaterniond &other) const |
Returns true if two quaternions are memberwise equal within a default tolerance based on the numeric type. More... | |
bool | almost_equal (const LQuaterniond &other, double threshold) const |
Returns true if two quaternions are memberwise equal within a specified tolerance. More... | |
bool | almost_same_direction (const LQuaterniond &other, double threshold) const |
Returns true if two quaternions represent the same rotation within a specified tolerance. More... | |
double | angle_deg (const LQuaterniond &other) const |
Returns the angle between the orientation represented by this quaternion and the other one, expressed in degrees. More... | |
double | angle_rad (const LQuaterniond &other) const |
Returns the angle between the orientation represented by this quaternion and the other one, expressed in radians. More... | |
LQuaterniond | conjugate () const |
Returns the complex conjugate of this quat. More... | |
bool | conjugate_from (const LQuaterniond &other) |
Computes the conjugate of the other quat, and stores the result in this quat. More... | |
bool | conjugate_in_place () |
Sets this to be the conjugate of the current quat. More... | |
void | extract_to_matrix (LMatrix3d &m) const |
void | extract_to_matrix (LMatrix4d &m) const |
double | get_angle () const |
This, along with get_axis(), returns the rotation represented by the quaternion as an angle about an arbitrary axis. More... | |
double | get_angle_rad () const |
This, along with get_axis(), returns the rotation represented by the quaternion as an angle about an arbitrary axis. More... | |
LVector3d | get_axis () const |
This, along with get_angle(), returns the rotation represented by the quaternion as an angle about an arbitrary axis. More... | |
LVector3d | get_axis_normalized () const |
This, along with get_angle(), returns the rotation represented by the quaternion as an angle about an arbitrary axis. More... | |
LVector3d | get_forward (CoordinateSystem cs=CS_default) const |
Returns the orientation represented by this quaternion, expressed as a forward vector. More... | |
LVecBase3d | get_hpr (CoordinateSystem cs=CS_default) const |
double | get_i () const |
double | get_j () const |
double | get_k () const |
double | get_r () const |
LVector3d | get_right (CoordinateSystem cs=CS_default) const |
Returns the orientation represented by this quaternion, expressed as a right vector. More... | |
LVector3d | get_up (CoordinateSystem cs=CS_default) const |
Returns the orientation represented by this quaternion, expressed as an up vector. More... | |
bool | invert_from (const LQuaterniond &other) |
Computes the inverse of the other quat, and stores the result in this quat. More... | |
bool | invert_in_place () |
Inverts the current quat. More... | |
bool | is_almost_identity (double tolerance) const |
Returns true if this quaternion represents the identity transformation within a given tolerance. More... | |
bool | is_identity () const |
Returns true if this quaternion represents the identity transformation: no rotation. More... | |
bool | is_same_direction (const LQuaterniond &other) const |
Returns true if two quaternions represent the same rotation within a default tolerance based on the numeric type. More... | |
LQuaterniond | multiply (const LQuaterniond &rhs) const |
actual multiply call (non virtual) More... | |
bool | normalize () |
LQuaterniond | operator* (double scalar) const |
LQuaterniond | operator* (const LQuaterniond &) const |
LMatrix3d | operator* (const LMatrix3d &) |
Quat * Matrix = matrix. More... | |
LMatrix4d | operator* (const LMatrix4d &) |
Quat * Matrix = matrix. More... | |
LQuaterniond & | operator*= (const LQuaterniond &) |
LQuaterniond | operator+ (const LQuaterniond &other) const |
LQuaterniond | operator- () const |
LQuaterniond | operator- (const LQuaterniond &other) const |
LQuaterniond | operator/ (double scalar) const |
void | output (ostream &) const |
void | set_from_axis_angle (double angle_deg, const LVector3d &axis) |
angle_deg is the angle about the axis in degrees. More... | |
void | set_from_axis_angle_rad (double angle_rad, const LVector3d &axis) |
angle_rad is the angle about the axis in radians. More... | |
void | set_from_matrix (const LMatrix3d &m) |
void | set_from_matrix (const LMatrix4d &m) |
void | set_hpr (const LVecBase3d &hpr, CoordinateSystem cs=CS_default) |
void | set_i (double i) |
void | set_j (double j) |
void | set_k (double k) |
void | set_r (double r) |
LVecBase3d | xform (const LVecBase3d &v) const |
Transforms a 3-d vector by the indicated rotation. More... | |
LVecBase4d | xform (const LVecBase4d &v) const |
Transforms a 4-d vector by the indicated rotation. More... | |
![]() | |
LVecBase4d (const LVecBase4d ©) | |
LVecBase4d (const UnalignedLVecBase4d ©) | |
LVecBase4d (double fill_value) | |
LVecBase4d (double x, double y, double z, double w) | |
LVecBase4d (const LVecBase3d ©, double w) | |
LVecBase4d (const LPoint3d &point) | |
Constructs an LVecBase4 from an LPoint3. More... | |
LVecBase4d (const LVector3d &vector) | |
Constructs an LVecBase4 from an LVector3. More... | |
LVecBase4d (const EVector4 &v) | |
size_t | add_hash (size_t hash) const |
Adds the vector into the running hash. More... | |
size_t | add_hash (size_t hash, double threshold) const |
Adds the vector into the running hash. More... | |
void | add_to_cell (int i, double value) |
void | add_w (double value) |
void | add_x (double value) |
void | add_y (double value) |
void | add_z (double value) |
bool | almost_equal (const LVecBase4d &other, double threshold) const |
Returns true if two vectors are memberwise equal within a specified tolerance. More... | |
bool | almost_equal (const LVecBase4d &other) const |
Returns true if two vectors are memberwise equal within a default tolerance based on the numeric type. More... | |
iterator | begin () |
Returns an iterator that may be used to traverse the elements of the matrix, STL-style. More... | |
const_iterator | begin () const |
Returns an iterator that may be used to traverse the elements of the matrix, STL-style. More... | |
int | compare_to (const LVecBase4d &other) const |
This flavor of compare_to uses a default threshold value based on the numeric type. More... | |
int | compare_to (const LVecBase4d &other, double threshold) const |
Sorts vectors lexicographically, componentwise. More... | |
void | componentwise_mult (const LVecBase4d &other) |
double | dot (const LVecBase4d &other) const |
iterator | end () |
Returns an iterator that may be used to traverse the elements of the matrix, STL-style. More... | |
const_iterator | end () const |
Returns an iterator that may be used to traverse the elements of the matrix, STL-style. More... | |
void | extract_data (float *) |
void | fill (double fill_value) |
Sets each element of the vector to the indicated fill_value. More... | |
LVecBase4d | fmax (const LVecBase4d &other) const |
LVecBase4d | fmin (const LVecBase4d &other) const |
void | generate_hash (ChecksumHashGenerator &hashgen) const |
Adds the vector to the indicated hash generator. More... | |
void | generate_hash (ChecksumHashGenerator &hashgen, double threshold) const |
Adds the vector to the indicated hash generator. More... | |
double | get_cell (int i) const |
const double * | get_data () const |
Returns the address of the first of the four data elements in the vector. More... | |
size_t | get_hash () const |
Returns a suitable hash for phash_map. More... | |
size_t | get_hash (double threshold) const |
Returns a suitable hash for phash_map. More... | |
int | get_num_components () const |
Returns the number of elements in the vector, four. More... | |
double | get_w () const |
double | get_x () const |
double | get_y () const |
double | get_z () const |
bool | is_nan () const |
Returns true if any component of the vector is not-a-number, false otherwise. More... | |
double | length () const |
Returns the length of the vector, by the Pythagorean theorem. More... | |
double | length_squared () const |
Returns the square of the vector's length, cheap and easy. More... | |
bool | normalize () |
Normalizes the vector in place. More... | |
bool | operator!= (const LVecBase4d &other) const |
LVecBase4d | operator* (double scalar) const |
void | operator*= (double scalar) |
LVecBase4d | operator+ (const LVecBase4d &other) const |
void | operator+= (const LVecBase4d &other) |
LVecBase4d | operator- () const |
LVecBase4d | operator- (const LVecBase4d &other) const |
void | operator-= (const LVecBase4d &other) |
LVecBase4d | operator/ (double scalar) const |
void | operator/= (double scalar) |
bool | operator< (const LVecBase4d &other) const |
This performs a lexicographical comparison. More... | |
LVecBase4d & | operator= (const LVecBase4d ©) |
LVecBase4d & | operator= (const UnalignedLVecBase4d ©) |
LVecBase4d & | operator= (double fill_value) |
bool | operator== (const LVecBase4d &other) const |
double | operator[] (int i) const |
double & | operator[] (int i) |
void | output (ostream &out) const |
LVecBase4d | project (const LVecBase4d &onto) const |
Returns a new vector representing the projection of this vector onto another one. More... | |
void | read_datagram (DatagramIterator &source) |
Reads the vector from the Datagram using get_stdfloat(). More... | |
void | read_datagram_fixed (DatagramIterator &source) |
Reads the vector from the Datagram using get_float32() or get_float64(). More... | |
void | set (double x, double y, double z, double w) |
void | set_cell (int i, double value) |
void | set_w (double value) |
void | set_x (double value) |
void | set_y (double value) |
void | set_z (double value) |
void | write_datagram (Datagram &destination) const |
Writes the vector to the Datagram using add_stdfloat(). More... | |
void | write_datagram_fixed (Datagram &destination) const |
Writes the vector to the Datagram using add_float32() or add_float64(), depending on the type of floats in the vector, regardless of the setting of Datagram::set_stdfloat_double(). More... | |
Static Public Member Functions | |
static TypeHandle | get_class_type () |
static void | init_type () |
![]() | |
static TypeHandle | get_class_type () |
static const LQuaterniond & | ident_quat () |
Returns an identity quaternion. More... | |
static void | init_type () |
static LQuaterniond | pure_imaginary (const LVector3d &v) |
![]() | |
static TypeHandle | get_class_type () |
static void | init_type () |
static int | size () |
Returns 4: the number of components of a LVecBase4. More... | |
static const LVecBase4d & | unit_w () |
Returns a unit W vector. More... | |
static const LVecBase4d & | unit_x () |
Returns a unit X vector. More... | |
static const LVecBase4d & | unit_y () |
Returns a unit Y vector. More... | |
static const LVecBase4d & | unit_z () |
Returns a unit Z vector. More... | |
static const LVecBase4d & | zero () |
Returns a zero-length vector. More... | |
Additional Inherited Members | |
![]() | |
enum | { num_components = 4, is_int = 0 } |
typedef const double * | const_iterator |
typedef LSimpleMatrix< double, 1, 4 > | EVector4 |
typedef const double * | iterator |
typedef double | numeric_type |
![]() | |
EVector4 | _v |
This is a unit quaternion representing a rotation.
Definition at line 334 of file lrotation.h.
|
inline |
axis + angle (in degrees)
Definition at line 442 of file lrotation.h.
|
inline |
lmatrix3
Definition at line 422 of file lrotation.h.
|
inline |
lmatrix4
Definition at line 432 of file lrotation.h.
|
inline |
Sets the rotation from the given Euler angles.
Definition at line 459 of file lrotation.h.
|
inline |
Rotation * Rotation = Rotation.
Definition at line 489 of file lrotation.h.
|
inline |
Rotation * Orientation = Orientation This is another meaningless operation, attempting to apply an orientation to a rotation.
Definition at line 501 of file lrotation.h.