Panda3D
|
This is a 4-by-4 transform matrix. More...
#include "lmatrix.h"
Classes | |
class | CRow |
class | Row |
Public Types | |
typedef const double * | const_iterator |
typedef const double * | iterator |
Public Member Functions | |
LMatrix4d (const LMatrix4d &other) | |
LMatrix4d (const UnalignedLMatrix4d &other) | |
LMatrix4d (double e00, double e01, double e02, double e03, double e10, double e11, double e12, double e13, double e20, double e21, double e22, double e23, double e30, double e31, double e32, double e33) | |
LMatrix4d (const LMatrix3d &upper3) | |
LMatrix4d (const LMatrix3d &upper3, const LVecBase3d &trans) | |
LMatrix4d (const EMatrix4 &m) | |
void | accumulate (const LMatrix4d &other, double weight) |
Computes (*this) += other * weight. | |
size_t | add_hash (size_t hash) const |
Adds the vector into the running hash. | |
size_t | add_hash (size_t hash, double threshold) const |
Adds the vector into the running hash. | |
bool | almost_equal (const LMatrix4d &other, double threshold) const |
Returns true if two matrices are memberwise equal within a specified tolerance. | |
bool | almost_equal (const LMatrix4d &other) const |
Returns true if two matrices are memberwise equal within a default tolerance based on the numeric type. | |
iterator | begin () |
Returns an iterator that may be used to traverse the elements of the matrix, STL-style. | |
const_iterator | begin () const |
Returns an iterator that may be used to traverse the elements of the matrix, STL-style. | |
int | compare_to (const LMatrix4d &other) const |
This flavor of compare_to uses a default threshold value based on the numeric type. | |
int | compare_to (const LMatrix4d &other, double threshold) const |
Sorts matrices lexicographically, componentwise. | |
iterator | end () |
Returns an iterator that may be used to traverse the elements of the matrix, STL-style. | |
const_iterator | end () const |
Returns an iterator that may be used to traverse the elements of the matrix, STL-style. | |
void | fill (double fill_value) |
Sets each element of the matrix to the indicated fill_value. | |
void | generate_hash (ChecksumHashGenerator &hashgen) const |
Adds the vector to the indicated hash generator. | |
void | generate_hash (ChecksumHashGenerator &hashgen, double scale) const |
Adds the vector to the indicated hash generator. | |
double | get_cell (int row, int col) const |
Returns a particular element of the matrix. | |
LVecBase4d | get_col (int col) const |
Retrieves the indicated column of the matrix as a 4-component vector. | |
LVecBase3d | get_col3 (int col) const |
Retrieves the indicated column of the matrix as a 3-component vector, ignoring the last row. | |
const double * | get_data () const |
Returns the address of the first of the nine data elements in the matrix. | |
size_t | get_hash () const |
Returns a suitable hash for phash_map. | |
size_t | get_hash (double threshold) const |
Returns a suitable hash for phash_map. | |
int | get_num_components () const |
Returns the number of elements in the matrix, 16. | |
LVecBase4d | get_row (int row) const |
Retrieves the indicated row of the matrix as a 4-component vector. | |
void | get_row (LVecBase4d &result_vec, int row) const |
Stores the indicated row of the matrix as a 4-component vector. | |
LVecBase3d | get_row3 (int row) const |
Retrieves the row column of the matrix as a 3-component vector, ignoring the last column. | |
void | get_row3 (LVecBase3d &result_vec, int row) const |
Stores the row column of the matrix as a 3-component vector, ignoring the last column. | |
LMatrix3d | get_upper_3 () const |
Retrieves the upper 3x3 submatrix. | |
bool | invert_affine_from (const LMatrix4d &other) |
Performs an invert of the indicated matrix, storing the result in this matrix. | |
bool | invert_from (const LMatrix4d &other) |
Computes the inverse of the other matrix, and stores the result in this matrix. | |
bool | invert_in_place () |
Inverts the current matrix. | |
bool | is_nan () const |
Returns true if any component of the matrix is not-a-number, false otherwise. | |
typedef | LINMATH_MATRIX (double, 4, 4) EMatrix4 |
MAKE_SEQ (get_rows, size, get_row) | |
MAKE_SEQ (get_cols, size, get_col) | |
MAKE_SEQ (get_row3s, size, get_row3) | |
void | multiply (const LMatrix4d &other1, const LMatrix4d &other2) |
bool | operator!= (const LMatrix4d &other) const |
double & | operator() (int row, int col) |
double | operator() (int row, int col) const |
LMatrix4d | operator* (const LMatrix4d &other) const |
LMatrix4d | operator* (double scalar) const |
LMatrix4d & | operator*= (const LMatrix4d &other) |
LMatrix4d & | operator*= (double scalar) |
LMatrix4d & | operator+= (const LMatrix4d &other) |
Performs a memberwise addition between two matrices. | |
LMatrix4d & | operator-= (const LMatrix4d &other) |
Performs a memberwise addition between two matrices. | |
LMatrix4d | operator/ (double scalar) const |
LMatrix4d & | operator/= (double scalar) |
bool | operator< (const LMatrix4d &other) const |
This performs a lexicographical comparison. | |
LMatrix4d & | operator= (const LMatrix4d &other) |
LMatrix4d & | operator= (const UnalignedLMatrix4d &other) |
LMatrix4d & | operator= (double fill_value) |
bool | operator== (const LMatrix4d &other) const |
CRow | operator[] (int i) const |
Row | operator[] (int i) |
void | output (ostream &out) const |
void | read_datagram (DatagramIterator &source) |
Reads the matrix from the Datagram using get_stdfloat(). | |
void | read_datagram_fixed (DatagramIterator &scan) |
Reads the matrix from the Datagram using get_float32() or get_float64(). | |
void | set (double e00, double e01, double e02, double e03, double e10, double e11, double e12, double e13, double e20, double e21, double e22, double e23, double e30, double e31, double e32, double e33) |
void | set_cell (int row, int col, double value) |
Changes a particular element of the matrix. | |
void | set_col (int col, const LVecBase4d &v) |
Replaces the indicated column of the matrix. | |
void | set_col (int col, const LVecBase3d &v) |
Replaces the indicated column of the matrix with the indicated 3-component vector, ignoring the last row. | |
void | set_rotate_mat (double angle, const LVecBase3d &axis, CoordinateSystem cs=CS_default) |
Sets mat to a matrix that rotates by the given angle in degrees counterclockwise about the indicated vector. | |
void | set_rotate_mat_normaxis (double angle, const LVecBase3d &axis, CoordinateSystem cs=CS_default) |
Fills mat with a matrix that rotates by the given angle in degrees counterclockwise about the indicated vector. | |
void | set_row (int row, const LVecBase4d &v) |
Replaces the indicated row of the matrix. | |
void | set_row (int row, const LVecBase3d &v) |
Replaces the indicated row of the matrix with the indicated 3-component vector, ignoring the last column. | |
void | set_scale_mat (const LVecBase3d &scale) |
Fills mat with a matrix that applies the indicated scale in each of the three axes. | |
void | set_scale_shear_mat (const LVecBase3d &scale, const LVecBase3d &shear, CoordinateSystem cs=CS_default) |
Fills mat with a matrix that applies the indicated scale and shear. | |
void | set_shear_mat (const LVecBase3d &shear, CoordinateSystem cs=CS_default) |
Fills mat with a matrix that applies the indicated shear in each of the three planes. | |
void | set_translate_mat (const LVecBase3d &trans) |
Fills mat with a matrix that applies the indicated translation. | |
void | set_upper_3 (const LMatrix3d &upper3) |
Sets the upper 3x3 submatrix. | |
void | transpose_from (const LMatrix4d &other) |
void | transpose_in_place () |
void | write (ostream &out, int indent_level=0) const |
void | write_datagram (Datagram &destination) const |
Writes the matrix to the Datagram using add_stdfloat(). | |
void | write_datagram_fixed (Datagram &destination) const |
Writes the matrix to the Datagram using add_float32() or add_float64(), depending on the type of floats in the matrix, regardless of the setting of Datagram::set_stdfloat_double(). | |
LVecBase4d | xform (const LVecBase4d &v) const |
4-component vector or point times matrix. | |
void | xform_in_place (LVecBase4d &v) const |
4-component vector or point times matrix. | |
LVecBase3d | xform_point (const LVecBase3d &v) const |
The matrix transforms a 3-component point (including translation component) and returns the result. | |
void | xform_point_in_place (LVecBase3d &v) const |
The matrix transforms a 3-component point (including translation component). | |
LVecBase3d | xform_vec (const LVecBase3d &v) const |
The matrix transforms a 3-component vector (without translation component) and returns the result. | |
LVecBase3d | xform_vec_general (const LVecBase3d &v) const |
The matrix transforms a 3-component vector (without translation component) and returns the result, as a fully general operation. | |
void | xform_vec_general_in_place (LVecBase3d &v) const |
The matrix transforms a 3-component vector (without translation component), as a fully general operation. | |
void | xform_vec_in_place (LVecBase3d &v) const |
The matrix transforms a 3-component vector (without translation component). | |
Static Public Member Functions | |
static const LMatrix4d & | convert_mat (CoordinateSystem from, CoordinateSystem to) |
Returns a matrix that transforms from the indicated coordinate system to the indicated coordinate system. | |
static TypeHandle | get_class_type () |
static const LMatrix4d & | ident_mat () |
Returns an identity matrix. | |
static void | init_type () |
static const LMatrix4d & | ones_mat () |
Returns an matrix filled with ones. | |
static LMatrix4d | rotate_mat (double angle, const LVecBase3d &axis, CoordinateSystem cs=CS_default) |
Returns a matrix that rotates by the given angle in degrees counterclockwise about the indicated vector. | |
static LMatrix4d | rotate_mat_normaxis (double angle, const LVecBase3d &axis, CoordinateSystem cs=CS_default) |
Returns a matrix that rotates by the given angle in degrees counterclockwise about the indicated vector. | |
static LMatrix4d | scale_mat (const LVecBase3d &scale) |
Returns a matrix that applies the indicated scale in each of the three axes. | |
static LMatrix4d | scale_mat (double sx, double sy, double sz) |
Returns a matrix that applies the indicated scale in each of the three axes. | |
static LMatrix4d | scale_mat (double scale) |
Returns a matrix that applies the indicated uniform scale. | |
static LMatrix4d | scale_shear_mat (const LVecBase3d &scale, const LVecBase3d &shear, CoordinateSystem cs=CS_default) |
Returns a matrix that applies the indicated scale and shear. | |
static LMatrix4d | scale_shear_mat (double sx, double sy, double sz, double shxy, double shxz, double shyz, CoordinateSystem cs=CS_default) |
Returns a matrix that applies the indicated scale and shear. | |
static LMatrix4d | shear_mat (const LVecBase3d &shear, CoordinateSystem cs=CS_default) |
Returns a matrix that applies the indicated shear in each of the three planes. | |
static LMatrix4d | shear_mat (double shxy, double shxz, double shyz, CoordinateSystem cs=CS_default) |
Returns a matrix that applies the indicated shear in each of the three planes. | |
static int | size () |
Returns 4: the number of rows of a LMatrix4. | |
static LMatrix4d | translate_mat (const LVecBase3d &trans) |
Returns a matrix that applies the indicated translation. | |
static LMatrix4d | translate_mat (double tx, double ty, double tz) |
Returns a matrix that applies the indicated translation. | |
static const LMatrix4d & | y_to_z_up_mat () |
Returns a matrix that transforms from the Y-up coordinate system to the Z-up coordinate system. | |
static const LMatrix4d & | z_to_y_up_mat () |
Returns a matrix that transforms from the Y-up coordinate system to the Z-up coordinate system. | |
static const LMatrix4d & | zeros_mat () |
Returns an matrix filled with zeros. | |
Public Attributes | |
EMatrix4 | _m |
void LMatrix4d::accumulate | ( | const LMatrix4d & | other, |
double | weight | ||
) | [inline] |
size_t LMatrix4d::add_hash | ( | size_t | hash | ) | const [inline] |
size_t LMatrix4d::add_hash | ( | size_t | hash, |
double | threshold | ||
) | const [inline] |
bool LMatrix4d::almost_equal | ( | const LMatrix4d & | other, |
double | threshold | ||
) | const |
Returns true if two matrices are memberwise equal within a specified tolerance.
Definition at line 2042 of file lmatrix.cxx.
Referenced by EggJointData::add_back_pointer(), EggXfmSAnim::add_data(), FltToEggLevelState::get_synthetic_group(), SoftNodeDesc::get_transform(), EggTexture::is_equivalent_to(), EggXfmSAnim::set_value(), and EggTransform::transform_is_identity().
bool LMatrix4d::almost_equal | ( | const LMatrix4d & | other | ) | const [inline] |
LMatrix4d::iterator LMatrix4d::begin | ( | ) | [inline] |
LMatrix4d::const_iterator LMatrix4d::begin | ( | ) | const [inline] |
int LMatrix4d::compare_to | ( | const LMatrix4d & | other | ) | const [inline] |
This flavor of compare_to uses a default threshold value based on the numeric type.
Definition at line 5645 of file lmatrix.h.
Referenced by EggTexture::sorts_less_than().
int LMatrix4d::compare_to | ( | const LMatrix4d & | other, |
double | threshold | ||
) | const |
Sorts matrices lexicographically, componentwise.
Returns a number less than 0 if this matrix sorts before the other one, greater than zero if it sorts after, 0 if they are equivalent (within the indicated tolerance).
Definition at line 1889 of file lmatrix.cxx.
const LMatrix4d & LMatrix4d::convert_mat | ( | CoordinateSystem | from, |
CoordinateSystem | to | ||
) | [static] |
Returns a matrix that transforms from the indicated coordinate system to the indicated coordinate system.
Definition at line 1821 of file lmatrix.cxx.
Referenced by EggData::set_coordinate_system().
LMatrix4d::iterator LMatrix4d::end | ( | ) | [inline] |
LMatrix4d::const_iterator LMatrix4d::end | ( | ) | const [inline] |
void LMatrix4d::fill | ( | double | fill_value | ) | [inline] |
void LMatrix4d::generate_hash | ( | ChecksumHashGenerator & | hashgen | ) | const [inline] |
void LMatrix4d::generate_hash | ( | ChecksumHashGenerator & | hashgen, |
double | scale | ||
) | const |
Adds the vector to the indicated hash generator.
Definition at line 2133 of file lmatrix.cxx.
double LMatrix4d::get_cell | ( | int | row, |
int | col | ||
) | const [inline] |
LVecBase4d LMatrix4d::get_col | ( | int | col | ) | const [inline] |
LVecBase3d LMatrix4d::get_col3 | ( | int | col | ) | const [inline] |
const double * LMatrix4d::get_data | ( | ) | const [inline] |
Returns the address of the first of the nine data elements in the matrix.
The remaining elements occupy the next eight positions in row-major order.
Definition at line 5546 of file lmatrix.h.
Referenced by XFileDataObject::set().
size_t LMatrix4d::get_hash | ( | ) | const [inline] |
size_t LMatrix4d::get_hash | ( | double | threshold | ) | const [inline] |
int LMatrix4d::get_num_components | ( | ) | const [inline] |
LVecBase4d LMatrix4d::get_row | ( | int | row | ) | const [inline] |
void LMatrix4d::get_row | ( | LVecBase4d & | result_vec, |
int | row | ||
) | const [inline] |
LVecBase3d LMatrix4d::get_row3 | ( | int | row | ) | const [inline] |
Retrieves the row column of the matrix as a 3-component vector, ignoring the last column.
Definition at line 5402 of file lmatrix.h.
Referenced by EggVertexPool::transform().
void LMatrix4d::get_row3 | ( | LVecBase3d & | result_vec, |
int | row | ||
) | const [inline] |
LMatrix3d LMatrix4d::get_upper_3 | ( | ) | const [inline] |
const LMatrix4d & LMatrix4d::ident_mat | ( | ) | [inline, static] |
Returns an identity matrix.
This function definition must appear first, since some inline functions below take advantage of it.
Definition at line 4993 of file lmatrix.h.
Referenced by FltBead::clear_transform(), EggXfmSAnim::compose_with_order(), VRMLToEggConverter::convert_file(), EggMatrixTablePointer::extend_to(), EggTransform::get_component_mat4(), EggJointNodePointer::get_frame(), EggMatrixTablePointer::get_frame(), EggJointData::get_frame(), EggJointData::get_net_frame(), EggJointData::get_net_frame_inv(), EggNode::get_node_frame(), EggNode::get_node_frame_inv(), EggNode::get_node_to_vertex(), EggJointData::get_rest_frame(), FltToEggLevelState::get_synthetic_group(), FltBead::get_transform(), SoftNodeDesc::get_transform(), EggNode::get_vertex_frame(), EggNode::get_vertex_frame_inv(), EggNode::get_vertex_to_node(), EggTransform::internal_clear_transform(), EggMatrixTablePointer::make_new_joint(), EggJointData::score_reparent_to(), and EggTransform::transform_is_identity().
bool LMatrix4d::invert_affine_from | ( | const LMatrix4d & | other | ) | [inline] |
Performs an invert of the indicated matrix, storing the result in this matrix.
The calculation is only correct of the other matrix represents an affine transform.
The other matrix must be a different object than this matrix. However, if you need to invert a matrix in place, see invert_in_place.
The return value is true if the matrix was successfully inverted, false if there was a singularity.
bool LMatrix4d::invert_from | ( | const LMatrix4d & | other | ) | [inline] |
Computes the inverse of the other matrix, and stores the result in this matrix.
This is a fully general operation and makes no assumptions about the type of transform represented by the matrix.
The other matrix must be a different object than this matrix. However, if you need to invert a matrix in place, see invert_in_place.
The return value is true if the matrix was successfully inverted, false if the was a singularity.
Definition at line 6194 of file lmatrix.h.
Referenced by EggGroup::adjust_under(), and DXFFile::compute_ocs().
bool LMatrix4d::invert_in_place | ( | ) | [inline] |
Inverts the current matrix.
Returns true if the inverse is successful, false if the matrix was singular.
Definition at line 6302 of file lmatrix.h.
Referenced by EggTopstrip::adjust_transform(), and EggJointData::get_net_frame_inv().
bool LMatrix4d::is_nan | ( | ) | const [inline] |
const LMatrix4d & LMatrix4d::ones_mat | ( | ) | [inline, static] |
bool LMatrix4d::operator< | ( | const LMatrix4d & | other | ) | const [inline] |
This performs a lexicographical comparison.
It's of questionable mathematical meaning, but sometimes has a practical purpose for sorting unique vectors, especially in an STL container. Also see compare_to().
void LMatrix4d::read_datagram | ( | DatagramIterator & | source | ) |
Reads the matrix from the Datagram using get_stdfloat().
Definition at line 2322 of file lmatrix.cxx.
void LMatrix4d::read_datagram_fixed | ( | DatagramIterator & | scan | ) |
Reads the matrix from the Datagram using get_float32() or get_float64().
Definition at line 2287 of file lmatrix.cxx.
LMatrix4d LMatrix4d::rotate_mat | ( | double | angle, |
const LVecBase3d & | axis, | ||
CoordinateSystem | cs = CS_default |
||
) | [inline, static] |
Returns a matrix that rotates by the given angle in degrees counterclockwise about the indicated vector.
Definition at line 6439 of file lmatrix.h.
Referenced by EggTransform::add_rotate3d(), EggBase::ns_dispatch_rotate_axis(), and EggBase::ns_dispatch_rotate_xyz().
LMatrix4d LMatrix4d::rotate_mat_normaxis | ( | double | angle, |
const LVecBase3d & | axis, | ||
CoordinateSystem | cs = CS_default |
||
) | [inline, static] |
Returns a matrix that rotates by the given angle in degrees counterclockwise about the indicated vector.
Assumes axis has been prenormalized.
Definition at line 6454 of file lmatrix.h.
Referenced by EggTransform::add_rotate2d(), EggTransform::add_rotx(), EggTransform::add_roty(), EggTransform::add_rotz(), and EggXfmSAnim::compose_with_order().
LMatrix4d LMatrix4d::scale_mat | ( | const LVecBase3d & | scale | ) | [inline, static] |
Returns a matrix that applies the indicated scale in each of the three axes.
Definition at line 6470 of file lmatrix.h.
Referenced by EggTransform::add_scale2d(), EggTransform::add_scale3d(), EggTransform::add_uniform_scale(), EggToSomething::apply_units_scale(), SomethingToEgg::apply_units_scale(), ImageTransformColors::dispatch_range(), ImageTransformColors::dispatch_scale(), EggBase::dispatch_scale(), XFileAnimationSet::FrameEntry::get_mat(), and PerlinNoise3::set_scale().
LMatrix4d LMatrix4d::scale_mat | ( | double | sx, |
double | sy, | ||
double | sz | ||
) | [inline, static] |
LMatrix4d LMatrix4d::scale_mat | ( | double | scale | ) | [inline, static] |
LMatrix4d LMatrix4d::scale_shear_mat | ( | const LVecBase3d & | scale, |
const LVecBase3d & | shear, | ||
CoordinateSystem | cs = CS_default |
||
) | [inline, static] |
Returns a matrix that applies the indicated scale and shear.
Definition at line 6540 of file lmatrix.h.
Referenced by EggXfmSAnim::compose_with_order().
LMatrix4d LMatrix4d::scale_shear_mat | ( | double | sx, |
double | sy, | ||
double | sz, | ||
double | shxy, | ||
double | shxz, | ||
double | shyz, | ||
CoordinateSystem | cs = CS_default |
||
) | [inline, static] |
void LMatrix4d::set_cell | ( | int | row, |
int | col, | ||
double | value | ||
) | [inline] |
void LMatrix4d::set_col | ( | int | col, |
const LVecBase4d & | v | ||
) | [inline] |
void LMatrix4d::set_col | ( | int | col, |
const LVecBase3d & | v | ||
) | [inline] |
void LMatrix4d::set_rotate_mat | ( | double | angle, |
const LVecBase3d & | axis, | ||
CoordinateSystem | cs = CS_default |
||
) |
Sets mat to a matrix that rotates by the given angle in degrees counterclockwise about the indicated vector.
Definition at line 1911 of file lmatrix.cxx.
void LMatrix4d::set_rotate_mat_normaxis | ( | double | angle, |
const LVecBase3d & | axis, | ||
CoordinateSystem | cs = CS_default |
||
) |
Fills mat with a matrix that rotates by the given angle in degrees counterclockwise about the indicated vector.
Assumes axis has been prenormalized.
Definition at line 1982 of file lmatrix.cxx.
void LMatrix4d::set_row | ( | int | row, |
const LVecBase4d & | v | ||
) | [inline] |
Replaces the indicated row of the matrix.
Definition at line 5277 of file lmatrix.h.
Referenced by XFileAnimationSet::FrameEntry::get_mat(), EggTable::r_transform(), EggXfmAnimData::r_transform(), EggXfmSAnim::r_transform(), EggGroup::r_transform(), and EggVertexPool::transform().
void LMatrix4d::set_row | ( | int | row, |
const LVecBase3d & | v | ||
) | [inline] |
void LMatrix4d::set_scale_mat | ( | const LVecBase3d & | scale | ) | [inline] |
void LMatrix4d::set_scale_shear_mat | ( | const LVecBase3d & | scale, |
const LVecBase3d & | shear, | ||
CoordinateSystem | cs = CS_default |
||
) | [inline] |
void LMatrix4d::set_shear_mat | ( | const LVecBase3d & | shear, |
CoordinateSystem | cs = CS_default |
||
) | [inline] |
void LMatrix4d::set_translate_mat | ( | const LVecBase3d & | trans | ) | [inline] |
void LMatrix4d::set_upper_3 | ( | const LMatrix3d & | upper3 | ) | [inline] |
LMatrix4d LMatrix4d::shear_mat | ( | const LVecBase3d & | shear, |
CoordinateSystem | cs = CS_default |
||
) | [inline, static] |
LMatrix4d LMatrix4d::shear_mat | ( | double | shxy, |
double | shxz, | ||
double | shyz, | ||
CoordinateSystem | cs = CS_default |
||
) | [inline, static] |
int LMatrix4d::size | ( | ) | [inline, static] |
LMatrix4d LMatrix4d::translate_mat | ( | const LVecBase3d & | trans | ) | [inline, static] |
Returns a matrix that applies the indicated translation.
Definition at line 6411 of file lmatrix.h.
Referenced by EggTransform::add_translate2d(), EggTransform::add_translate3d(), EggXfmSAnim::compose_with_order(), ImageTransformColors::dispatch_add(), ImageTransformColors::dispatch_range(), EggBase::dispatch_translate(), and CLwoLayer::make_egg().
LMatrix4d LMatrix4d::translate_mat | ( | double | tx, |
double | ty, | ||
double | tz | ||
) | [inline, static] |
void LMatrix4d::write_datagram | ( | Datagram & | destination | ) | const |
Writes the matrix to the Datagram using add_stdfloat().
This is appropriate when you want to write the matrix using the standard width setting, especially when you are writing a bam file.
Definition at line 2308 of file lmatrix.cxx.
void LMatrix4d::write_datagram_fixed | ( | Datagram & | destination | ) | const |
Writes the matrix to the Datagram using add_float32() or add_float64(), depending on the type of floats in the matrix, regardless of the setting of Datagram::set_stdfloat_double().
This is appropriate when you want to write a fixed-width value to the datagram, especially when you are not writing a bam file.
Definition at line 2268 of file lmatrix.cxx.
LVecBase4d LMatrix4d::xform | ( | const LVecBase4d & | v | ) | const [inline] |
void LMatrix4d::xform_in_place | ( | LVecBase4d & | v | ) | const [inline] |
LVecBase3d LMatrix4d::xform_point | ( | const LVecBase3d & | v | ) | const [inline] |
The matrix transforms a 3-component point (including translation component) and returns the result.
This assumes the matrix is an affine transform.
Definition at line 5745 of file lmatrix.h.
Referenced by PerlinNoise3::noise(), and ImageTransformColors::process_image().
void LMatrix4d::xform_point_in_place | ( | LVecBase3d & | v | ) | const [inline] |
LVecBase3d LMatrix4d::xform_vec | ( | const LVecBase3d & | v | ) | const [inline] |
LVecBase3d LMatrix4d::xform_vec_general | ( | const LVecBase3d & | v | ) | const [inline] |
void LMatrix4d::xform_vec_general_in_place | ( | LVecBase3d & | v | ) | const [inline] |
void LMatrix4d::xform_vec_in_place | ( | LVecBase3d & | v | ) | const [inline] |
const LMatrix4d & LMatrix4d::y_to_z_up_mat | ( | ) | [inline, static] |
const LMatrix4d & LMatrix4d::z_to_y_up_mat | ( | ) | [inline, static] |
const LMatrix4d & LMatrix4d::zeros_mat | ( | ) | [inline, static] |