Panda3D
Classes | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes

LMatrix3f Class Reference

This is a 3-by-3 transform matrix. More...

#include "lmatrix.h"

List of all members.

Classes

class  CRow
class  Row

Public Types

typedef const float * const_iterator
typedef const float * iterator

Public Member Functions

 LMatrix3f (const LMatrix3f &other)
 LMatrix3f (float e00, float e01, float e02, float e10, float e11, float e12, float e20, float e21, float e22)
 LMatrix3f (const EMatrix3 &m)
size_t add_hash (size_t hash) const
 Adds the vector into the running hash.
size_t add_hash (size_t hash, float threshold) const
 Adds the vector into the running hash.
bool almost_equal (const LMatrix3f &other, float threshold) const
 Returns true if two matrices are memberwise equal within a specified tolerance.
bool almost_equal (const LMatrix3f &other) const
 Returns true if two matrices are memberwise equal within a default tolerance based on the numeric type.
const_iterator begin () const
 Returns an iterator that may be used to traverse the elements of the matrix, STL-style.
iterator begin ()
 Returns an iterator that may be used to traverse the elements of the matrix, STL-style.
int compare_to (const LMatrix3f &other, float threshold) const
 Sorts matrices lexicographically, componentwise.
int compare_to (const LMatrix3f &other) const
 This flavor of compare_to uses a default threshold value based on the numeric type.
float determinant () const
 Returns the determinant of the matrix.
const_iterator end () const
 Returns an iterator that may be used to traverse the elements of the matrix, STL-style.
iterator end ()
 Returns an iterator that may be used to traverse the elements of the matrix, STL-style.
void fill (float 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, float threshold) const
 Adds the vector to the indicated hash generator.
float get_cell (int row, int col) const
 Returns a particular element of the matrix.
LVecBase3f get_col (int col) const
 Returns the indicated column of the matrix as a three-component vector.
LVecBase2f get_col2 (int col) const
 Returns the indicated column of the matrix as a two-component vector, ignoring the last row.
const float * 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 (float threshold) const
 Returns a suitable hash for phash_map.
int get_num_components () const
 Returns the number of elements in the matrix, nine.
void get_row (LVecBase3f &result_vec, int row) const
 Stores the indicated row of the matrix as a three-component vector.
LVecBase3f get_row (int row) const
 Returns the indicated row of the matrix as a three-component vector.
LVecBase2f get_row2 (int row) const
 Returns the indicated row of the matrix as a two-component vector, ignoring the last column.
bool invert_from (const LMatrix3f &other)
 Computes the inverse of the other matrix, and stores the result in this matrix.
bool invert_in_place ()
 Inverts the current matrix.
bool invert_transpose_from (const LMatrix3f &other)
 Simultaneously computes the inverse of the indicated matrix, and then the transpose of that inverse.
bool invert_transpose_from (const LMatrix4f &other)
 Simultaneously computes the inverse of the indicated matrix, and then the transpose of that inverse.
bool is_nan () const
 Returns true if any component of the matrix is not-a-number, false otherwise.
 MAKE_SEQ (get_col2s, size, get_col2)
 MAKE_SEQ (get_row2s, size, get_row2)
 MAKE_SEQ (get_rows, size, get_row)
 MAKE_SEQ (get_cols, size, get_col)
void multiply (const LMatrix3f &other1, const LMatrix3f &other2)
bool operator!= (const LMatrix3f &other) const
float & operator() (int row, int col)
float operator() (int row, int col) const
LMatrix3f operator* (const LMatrix3f &other) const
LMatrix3f operator* (float scalar) const
LMatrix3foperator*= (const LMatrix3f &other)
LMatrix3foperator*= (float scalar)
 Performs a memberwise scale.
LMatrix3foperator+= (const LMatrix3f &other)
 Performs a memberwise addition between two matrices.
LMatrix3foperator-= (const LMatrix3f &other)
 Performs a memberwise subtraction between two matrices.
LMatrix3f operator/ (float scalar) const
LMatrix3foperator/= (float scalar)
 Performs a memberwise scale.
bool operator< (const LMatrix3f &other) const
 This performs a lexicographical comparison.
LMatrix3foperator= (float fill_value)
LMatrix3foperator= (const LMatrix3f &other)
bool operator== (const LMatrix3f &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 (float e00, float e01, float e02, float e10, float e11, float e12, float e20, float e21, float e22)
void set_cell (int row, int col, float value)
 Changes a particular element of the matrix.
void set_col (int col, const LVecBase3f &v)
 Replaces the indicated column of the matrix from a three-component vector.
void set_col (int col, const LVecBase2f &v)
 Replaces the indicated column of the matrix from a two-component vector, ignoring the last row.
void set_rotate_mat (float angle)
 Fills mat with a matrix that rotates by the given angle in degrees counterclockwise.
void set_rotate_mat (float angle, const LVecBase3f &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_rotate_mat_normaxis (float angle, const LVecBase3f &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 LVecBase2f &v)
 Replaces the indicated row of the matrix from a two-component vector, ignoring the last column.
void set_row (int row, const LVecBase3f &v)
 Replaces the indicated row of the matrix from a three-component vector.
void set_scale_mat (const LVecBase2f &scale)
 Fills mat with a matrix that applies the indicated scale in each of the two axes.
void set_scale_mat (const LVecBase3f &scale)
 Fills mat with a matrix that applies the indicated scale in each of the three axes.
void set_scale_shear_mat (const LVecBase3f &scale, const LVecBase3f &shear, CoordinateSystem cs=CS_default)
 Fills mat with a matrix that applies the indicated scale and shear.
void set_shear_mat (const LVecBase3f &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 LVecBase2f &trans)
 Fills mat with a matrix that applies the indicated translation.
void transpose_from (const LMatrix3f &other)
void transpose_in_place ()
typedef UNALIGNED_LINMATH_MATRIX (float, 3, 3) EMatrix3
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().
LVecBase3f xform (const LVecBase3f &v) const
 3-component vector or point times matrix.
void xform_in_place (LVecBase3f &v) const
 3-component vector or point times matrix.
LVecBase2f xform_point (const LVecBase2f &v) const
 The matrix transforms a 2-component point (including translation component) and returns the result.
void xform_point_in_place (LVecBase2f &v) const
 The matrix transforms a 2-component point (including translation component).
LVecBase3f xform_vec (const LVecBase3f &v) const
 The matrix transforms a 3-component vector and returns the result.
LVecBase2f xform_vec (const LVecBase2f &v) const
 The matrix transforms a 2-component vector (without translation component) and returns the result.
LVecBase3f xform_vec_general (const LVecBase3f &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 (LVecBase3f &v) const
 The matrix transforms a 3-component vector (without translation component), as a fully general operation.
void xform_vec_in_place (LVecBase3f &v) const
 The matrix transforms a 3-component vector.
void xform_vec_in_place (LVecBase2f &v) const
 The matrix transforms a 2-component vector (without translation component).

Static Public Member Functions

static const LMatrix3fconvert_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 LMatrix3fident_mat ()
 Returns an identity matrix.
static void init_type ()
static LMatrix3f rotate_mat (float angle, const LVecBase3f &axis, CoordinateSystem cs=CS_default)
 Returns a matrix that rotates by the given angle in degrees counterclockwise about the indicated vector.
static LMatrix3f rotate_mat (float angle)
 Returns a matrix that rotates by the given angle in degrees counterclockwise.
static LMatrix3f rotate_mat_normaxis (float angle, const LVecBase3f &axis, CoordinateSystem cs=CS_default)
 Returns a matrix that rotates by the given angle in degrees counterclockwise about the indicated vector.
static LMatrix3f scale_mat (const LVecBase3f &scale)
 Returns a matrix that applies the indicated scale in each of the three axes.
static LMatrix3f scale_mat (float sx, float sy, float sz)
 Returns a matrix that applies the indicated scale in each of the three axes.
static LMatrix3f scale_mat (const LVecBase2f &scale)
 Returns a matrix that applies the indicated scale in each of the two axes.
static LMatrix3f scale_mat (float sx, float sy)
 Returns a matrix that applies the indicated scale in each of the two axes.
static LMatrix3f scale_shear_mat (const LVecBase3f &scale, const LVecBase3f &shear, CoordinateSystem cs=CS_default)
 Returns a matrix that applies the indicated scale and shear.
static LMatrix3f scale_shear_mat (float sx, float sy, float sz, float shxy, float shxz, float shyz, CoordinateSystem cs=CS_default)
 Returns a matrix that applies the indicated scale and shear.
static LMatrix3f shear_mat (float shxy, float shxz, float shyz, CoordinateSystem cs=CS_default)
 Returns a matrix that applies the indicated shear in each of the three planes.
static LMatrix3f shear_mat (const LVecBase3f &shear, CoordinateSystem cs=CS_default)
 Returns a matrix that applies the indicated shear in each of the three planes.
static int size ()
 Returns 3: the number of rows of a LMatrix3.
static LMatrix3f translate_mat (const LVecBase2f &trans)
 Returns a matrix that applies the indicated translation.
static LMatrix3f translate_mat (float tx, float ty)
 Returns a matrix that applies the indicated translation.

Public Attributes

EMatrix3 _m

Detailed Description

This is a 3-by-3 transform matrix.

It typically will represent either a rotation-and-scale (no translation) matrix in 3-d, or a full affine matrix (rotation, scale, translation) in 2-d, e.g. for a texture matrix.

Definition at line 104 of file lmatrix.h.


Member Function Documentation

size_t LMatrix3f::add_hash ( size_t  hash) const [inline]

Adds the vector into the running hash.

Definition at line 3206 of file lmatrix.h.

size_t LMatrix3f::add_hash ( size_t  hash,
float  threshold 
) const [inline]

Adds the vector into the running hash.

Definition at line 3216 of file lmatrix.h.

bool LMatrix3f::almost_equal ( const LMatrix3f other,
float  threshold 
) const

Returns true if two matrices are memberwise equal within a specified tolerance.

Definition at line 413 of file lmatrix.cxx.

Referenced by FFTCompressor::write_hprs().

bool LMatrix3f::almost_equal ( const LMatrix3f other) const [inline]

Returns true if two matrices are memberwise equal within a default tolerance based on the numeric type.

Definition at line 4113 of file lmatrix.h.

LMatrix3f::iterator LMatrix3f::begin ( ) [inline]

Returns an iterator that may be used to traverse the elements of the matrix, STL-style.

Definition at line 3098 of file lmatrix.h.

LMatrix3f::const_iterator LMatrix3f::begin ( ) const [inline]

Returns an iterator that may be used to traverse the elements of the matrix, STL-style.

Definition at line 3120 of file lmatrix.h.

int LMatrix3f::compare_to ( const LMatrix3f other) const [inline]

This flavor of compare_to uses a default threshold value based on the numeric type.

Definition at line 3176 of file lmatrix.h.

int LMatrix3f::compare_to ( const LMatrix3f other,
float  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 281 of file lmatrix.cxx.

const LMatrix3f & LMatrix3f::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 194 of file lmatrix.cxx.

float LMatrix3f::determinant ( ) const [inline]

Returns the determinant of the matrix.

Definition at line 3658 of file lmatrix.h.

LMatrix3f::iterator LMatrix3f::end ( ) [inline]

Returns an iterator that may be used to traverse the elements of the matrix, STL-style.

Definition at line 3109 of file lmatrix.h.

LMatrix3f::const_iterator LMatrix3f::end ( ) const [inline]

Returns an iterator that may be used to traverse the elements of the matrix, STL-style.

Definition at line 3131 of file lmatrix.h.

void LMatrix3f::fill ( float  fill_value)

Sets each element of the matrix to the indicated fill_value.

This is of questionable value, but is sometimes useful when initializing to zero.

Definition at line 260 of file lmatrix.cxx.

void LMatrix3f::generate_hash ( ChecksumHashGenerator hashgen) const [inline]

Adds the vector to the indicated hash generator.

Definition at line 4123 of file lmatrix.h.

void LMatrix3f::generate_hash ( ChecksumHashGenerator hashgen,
float  threshold 
) const

Adds the vector to the indicated hash generator.

Definition at line 479 of file lmatrix.cxx.

float LMatrix3f::get_cell ( int  row,
int  col 
) const [inline]

Returns a particular element of the matrix.

Definition at line 3053 of file lmatrix.h.

LVecBase3f LMatrix3f::get_col ( int  col) const [inline]

Returns the indicated column of the matrix as a three-component vector.

Definition at line 2948 of file lmatrix.h.

LVecBase2f LMatrix3f::get_col2 ( int  col) const [inline]

Returns the indicated column of the matrix as a two-component vector, ignoring the last row.

Definition at line 2974 of file lmatrix.h.

const float * LMatrix3f::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 3077 of file lmatrix.h.

Referenced by PhysxManager::mat3_to_nxMat33().

size_t LMatrix3f::get_hash ( ) const [inline]

Returns a suitable hash for phash_map.

Definition at line 3186 of file lmatrix.h.

size_t LMatrix3f::get_hash ( float  threshold) const [inline]

Returns a suitable hash for phash_map.

Definition at line 3196 of file lmatrix.h.

int LMatrix3f::get_num_components ( ) const [inline]

Returns the number of elements in the matrix, nine.

Definition at line 3087 of file lmatrix.h.

void LMatrix3f::get_row ( LVecBase3f result_vec,
int  row 
) const [inline]

Stores the indicated row of the matrix as a three-component vector.

Definition at line 2931 of file lmatrix.h.

LVecBase3f LMatrix3f::get_row ( int  row) const [inline]

Returns the indicated row of the matrix as a three-component vector.

Definition at line 2916 of file lmatrix.h.

LVecBase2f LMatrix3f::get_row2 ( int  row) const [inline]

Returns the indicated row of the matrix as a two-component vector, ignoring the last column.

Definition at line 2963 of file lmatrix.h.

const LMatrix3f & LMatrix3f::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 2755 of file lmatrix.h.

Referenced by PhysxActor::get_c_mass_global_orientation(), PhysxActor::get_c_mass_local_orientation(), PhysxActor::get_global_inertia_tensor(), PhysxActor::get_global_inertia_tensor_inverse(), and TransformState::get_mat3().

bool LMatrix3f::invert_from ( const LMatrix3f 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 there was a singularity.

Definition at line 3685 of file lmatrix.h.

bool LMatrix3f::invert_in_place ( ) [inline]

Inverts the current matrix.

Returns true if the inverse is successful, false if the matrix was singular.

Definition at line 3744 of file lmatrix.h.

bool LMatrix3f::invert_transpose_from ( const LMatrix3f other) [inline]

Simultaneously computes the inverse of the indicated matrix, and then the transpose of that inverse.

Definition at line 3757 of file lmatrix.h.

bool LMatrix3f::invert_transpose_from ( const LMatrix4f other) [inline]

Simultaneously computes the inverse of the indicated matrix, and then the transpose of that inverse.

Definition at line 3812 of file lmatrix.h.

bool LMatrix3f::is_nan ( ) const [inline]
LMatrix3f & LMatrix3f::operator*= ( float  scalar) [inline]

Performs a memberwise scale.

Definition at line 3564 of file lmatrix.h.

LMatrix3f & LMatrix3f::operator+= ( const LMatrix3f other) [inline]

Performs a memberwise addition between two matrices.

Definition at line 3504 of file lmatrix.h.

LMatrix3f & LMatrix3f::operator-= ( const LMatrix3f other) [inline]

Performs a memberwise subtraction between two matrices.

Definition at line 3527 of file lmatrix.h.

LMatrix3f & LMatrix3f::operator/= ( float  scalar) [inline]

Performs a memberwise scale.

Definition at line 3587 of file lmatrix.h.

bool LMatrix3f::operator< ( const LMatrix3f 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().

Definition at line 3145 of file lmatrix.h.

void LMatrix3f::read_datagram ( DatagramIterator source)

Reads the matrix from the Datagram using get_stdfloat().

Definition at line 554 of file lmatrix.cxx.

void LMatrix3f::read_datagram_fixed ( DatagramIterator scan)

Reads the matrix from the Datagram using get_float32() or get_float64().

See write_datagram_fixed().

Definition at line 519 of file lmatrix.cxx.

LMatrix3f LMatrix3f::rotate_mat ( float  angle) [inline, static]

Returns a matrix that rotates by the given angle in degrees counterclockwise.

Definition at line 3937 of file lmatrix.h.

Referenced by PSphereLens::do_extrude().

LMatrix3f LMatrix3f::rotate_mat ( float  angle,
const LVecBase3f 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 3976 of file lmatrix.h.

LMatrix3f LMatrix3f::rotate_mat_normaxis ( float  angle,
const LVecBase3f 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 normalized.

Definition at line 3991 of file lmatrix.h.

LMatrix3f LMatrix3f::scale_mat ( const LVecBase2f scale) [inline, static]

Returns a matrix that applies the indicated scale in each of the two axes.

Definition at line 3950 of file lmatrix.h.

LMatrix3f LMatrix3f::scale_mat ( const LVecBase3f scale) [inline, static]

Returns a matrix that applies the indicated scale in each of the three axes.

Definition at line 4018 of file lmatrix.h.

LMatrix3f LMatrix3f::scale_mat ( float  sx,
float  sy,
float  sz 
) [inline, static]

Returns a matrix that applies the indicated scale in each of the three axes.

Definition at line 4031 of file lmatrix.h.

LMatrix3f LMatrix3f::scale_mat ( float  sx,
float  sy 
) [inline, static]

Returns a matrix that applies the indicated scale in each of the two axes.

Definition at line 3963 of file lmatrix.h.

LMatrix3f LMatrix3f::scale_shear_mat ( const LVecBase3f scale,
const LVecBase3f shear,
CoordinateSystem  cs = CS_default 
) [inline, static]

Returns a matrix that applies the indicated scale and shear.

Definition at line 4082 of file lmatrix.h.

LMatrix3f LMatrix3f::scale_shear_mat ( float  sx,
float  sy,
float  sz,
float  shxy,
float  shxz,
float  shyz,
CoordinateSystem  cs = CS_default 
) [inline, static]

Returns a matrix that applies the indicated scale and shear.

Definition at line 4097 of file lmatrix.h.

void LMatrix3f::set_cell ( int  row,
int  col,
float  value 
) [inline]

Changes a particular element of the matrix.

Definition at line 3064 of file lmatrix.h.

void LMatrix3f::set_col ( int  col,
const LVecBase2f v 
) [inline]

Replaces the indicated column of the matrix from a two-component vector, ignoring the last row.

Definition at line 2900 of file lmatrix.h.

void LMatrix3f::set_col ( int  col,
const LVecBase3f v 
) [inline]

Replaces the indicated column of the matrix from a three-component vector.

Definition at line 2867 of file lmatrix.h.

void LMatrix3f::set_rotate_mat ( float  angle) [inline]

Fills mat with a matrix that rotates by the given angle in degrees counterclockwise.

Definition at line 3881 of file lmatrix.h.

void LMatrix3f::set_rotate_mat ( float  angle,
const LVecBase3f axis,
CoordinateSystem  cs = CS_default 
)

Fills mat with a matrix that rotates by the given angle in degrees counterclockwise about the indicated vector.

Definition at line 301 of file lmatrix.cxx.

void LMatrix3f::set_rotate_mat_normaxis ( float  angle,
const LVecBase3f 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 normalized.

Definition at line 362 of file lmatrix.cxx.

void LMatrix3f::set_row ( int  row,
const LVecBase3f v 
) [inline]

Replaces the indicated row of the matrix from a three-component vector.

Definition at line 2850 of file lmatrix.h.

void LMatrix3f::set_row ( int  row,
const LVecBase2f v 
) [inline]

Replaces the indicated row of the matrix from a two-component vector, ignoring the last column.

Definition at line 2884 of file lmatrix.h.

void LMatrix3f::set_scale_mat ( const LVecBase2f scale) [inline]

Fills mat with a matrix that applies the indicated scale in each of the two axes.

Definition at line 3898 of file lmatrix.h.

void LMatrix3f::set_scale_mat ( const LVecBase3f scale) [inline]

Fills mat with a matrix that applies the indicated scale in each of the three axes.

Definition at line 4005 of file lmatrix.h.

void LMatrix3f::set_scale_shear_mat ( const LVecBase3f scale,
const LVecBase3f shear,
CoordinateSystem  cs = CS_default 
)

Fills mat with a matrix that applies the indicated scale and shear.

Definition at line 115 of file lmatrix.cxx.

void LMatrix3f::set_shear_mat ( const LVecBase3f shear,
CoordinateSystem  cs = CS_default 
) [inline]

Fills mat with a matrix that applies the indicated shear in each of the three planes.

Definition at line 4044 of file lmatrix.h.

void LMatrix3f::set_translate_mat ( const LVecBase2f trans) [inline]

Fills mat with a matrix that applies the indicated translation.

Definition at line 3868 of file lmatrix.h.

LMatrix3f LMatrix3f::shear_mat ( float  shxy,
float  shxz,
float  shyz,
CoordinateSystem  cs = CS_default 
) [inline, static]

Returns a matrix that applies the indicated shear in each of the three planes.

Definition at line 4069 of file lmatrix.h.

LMatrix3f LMatrix3f::shear_mat ( const LVecBase3f shear,
CoordinateSystem  cs = CS_default 
) [inline, static]

Returns a matrix that applies the indicated shear in each of the three planes.

Definition at line 4056 of file lmatrix.h.

int LMatrix3f::size ( ) [inline, static]

Returns 3: the number of rows of a LMatrix3.

Definition at line 3028 of file lmatrix.h.

LMatrix3f LMatrix3f::translate_mat ( float  tx,
float  ty 
) [inline, static]

Returns a matrix that applies the indicated translation.

Definition at line 3924 of file lmatrix.h.

LMatrix3f LMatrix3f::translate_mat ( const LVecBase2f trans) [inline, static]

Returns a matrix that applies the indicated translation.

Definition at line 3911 of file lmatrix.h.

void LMatrix3f::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 540 of file lmatrix.cxx.

void LMatrix3f::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 500 of file lmatrix.cxx.

LVecBase3f LMatrix3f::xform ( const LVecBase3f v) const [inline]

3-component vector or point times matrix.

Definition at line 3246 of file lmatrix.h.

void LMatrix3f::xform_in_place ( LVecBase3f v) const [inline]

3-component vector or point times matrix.

Definition at line 3348 of file lmatrix.h.

LVecBase2f LMatrix3f::xform_point ( const LVecBase2f v) const [inline]

The matrix transforms a 2-component point (including translation component) and returns the result.

This assumes the matrix is an affine transform.

Definition at line 3266 of file lmatrix.h.

void LMatrix3f::xform_point_in_place ( LVecBase2f v) const [inline]

The matrix transforms a 2-component point (including translation component).

This assumes the matrix is an affine transform.

Definition at line 3365 of file lmatrix.h.

LVecBase2f LMatrix3f::xform_vec ( const LVecBase2f v) const [inline]

The matrix transforms a 2-component vector (without translation component) and returns the result.

This assumes the matrix is an affine transform.

Definition at line 3290 of file lmatrix.h.

LVecBase3f LMatrix3f::xform_vec ( const LVecBase3f v) const [inline]

The matrix transforms a 3-component vector and returns the result.

This assumes the matrix is an orthonormal transform.

In practice, this is the same computation as xform().

Definition at line 3317 of file lmatrix.h.

LVecBase3f LMatrix3f::xform_vec_general ( const LVecBase3f v) const [inline]

The matrix transforms a 3-component vector (without translation component) and returns the result, as a fully general operation.

Definition at line 3330 of file lmatrix.h.

void LMatrix3f::xform_vec_general_in_place ( LVecBase3f v) const [inline]

The matrix transforms a 3-component vector (without translation component), as a fully general operation.

Definition at line 3416 of file lmatrix.h.

void LMatrix3f::xform_vec_in_place ( LVecBase2f v) const [inline]

The matrix transforms a 2-component vector (without translation component).

This assumes the matrix is an affine transform.

Definition at line 3384 of file lmatrix.h.

void LMatrix3f::xform_vec_in_place ( LVecBase3f v) const [inline]

The matrix transforms a 3-component vector.

This assumes the matrix is an orthonormal transform.

In practice, this is the same computation as xform().

Definition at line 3404 of file lmatrix.h.


The documentation for this class was generated from the following files:
 All Classes Functions Variables Enumerations