# LMatrix3f

from pandac.PandaModules import LMatrix3f

Filename: lmatrix3_src.h Created by: drose (29Jan99)
PANDA 3D SOFTWARE Copyright (c) 2001 - 2004, Disney Enterprises, Inc. All rights reserved
All use of this software is subject to the terms of the Panda 3d Software license. You should have received a copy of this license along with this source code; you will also find a current copy of the license at http://etc.cmu.edu/panda3d/docs/license/ .
To contact the maintainers of this program write to panda3d-general@lists.sourceforge.net .
Class : LMatrix3
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.

## Inheritance:

LMatrix3f:

## Methods of LMatrix3f:

addHash
almostEqual
compareTo
convertMat
determinant
fill
getCell
getClassType
getCol
getCol2
getData
getHash
getNumComponents
getRow
getRow2
identMat
invertFrom
invertInPlace
isNan
multiply
operator !=
operator ()
operator *
operator *=
operator +=
operator -=
operator /
operator /=
operator <
operator =
operator ==
operator delete
operator new
output
pythonRepr
rotateMat
rotateMatNormaxis
scaleMat
scaleShearMat
set
setCell
setCol
setRow
shearMat
translateMat
transposeFrom
transposeInPlace
write
xform
xformPoint
xformVec

addHash unsigned int LMatrix3f::add_hash(unsigned int hash) const; Description: Adds the vector into the running hash.

almostEqual bool LMatrix3f::almost_equal(LMatrix3f const &other, float threshold) const; We don't have a scale_mat() that takes a single uniform scale parameter, because it would be ambiguous whether we mean a 2-d or a 3-d scale. Description: Returns true if two matrices are memberwise equal within a default tolerance based on the numeric type. Description: Returns true if two matrices are memberwise equal within a specified tolerance.

compareTo int LMatrix3f::compare_to(LMatrix3f const &other) const; Description: This flavor of compare_to uses a default threshold value based on the numeric type. Description: 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).

convertMat static LMatrix3f const &LMatrix3f::convert_mat(CoordinateSystem from, CoordinateSystem to); Description: Returns a matrix that transforms from the indicated coordinate system to the indicated coordinate system.

determinant float LMatrix3f::determinant(void) const; Description: Returns the determinant of the matrix.

fill void LMatrix3f::fill(float fill_value); Description: Sets each element of the matrix to the indicated fill_value. This is of questionable value, but is sometimes useful when initializing to zero.

getCell float LMatrix3f::get_cell(int row, int col) const; Description: Returns a particular element of the matrix.

getClassType static TypeHandle LMatrix3f::get_class_type(void); Undocumented function.

getCol LVecBase3f LMatrix3f::get_col(int col) const; Description: Returns the indicated column of the matrix as a three-component vector.

getCol2 LVecBase2f LMatrix3f::get_col2(int col) const; Description: Returns the indicated column of the matrix as a two-component vector, ignoring the last row.

getData float const *LMatrix3f::get_data(void) const; Description: 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.

getHash unsigned int LMatrix3f::get_hash(void) const; Description: Returns a suitable hash for phash_map.

getNumComponents int LMatrix3f::get_num_components(void) const; Description: Returns the number of elements in the matrix, nine.

getRow LVecBase3f LMatrix3f::get_row(int row) const; these versions inline better Description: Returns the indicated row of the matrix as a three-component vector.

getRow2 LVecBase2f LMatrix3f::get_row2(int row) const; Description: Returns the indicated row of the matrix as a two-component vector, ignoring the last column.

identMat static LMatrix3f const &LMatrix3f::ident_mat(void); Filename: lmatrix3_src.I Created by: drose (29Jan99) PANDA 3D SOFTWARE Copyright (c) 2001 - 2004, Disney Enterprises, Inc. All rights reserved All use of this software is subject to the terms of the Panda 3d Software license. You should have received a copy of this license along with this source code; you will also find a current copy of the license at http://etc.cmu.edu/panda3d/docs/license/ . To contact the maintainers of this program write to panda3d-general@lists.sourceforge.net . Description: Returns an identity matrix. This function definition must appear first, since some inline functions below take advantage of it.

invertFrom bool LMatrix3f::invert_from(LMatrix3f const &other); Description: 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.

invertInPlace bool LMatrix3f::invert_in_place(void); Description: Inverts the current matrix. Returns true if the inverse is successful, false if the matrix was singular.

isNan bool LMatrix3f::is_nan(void) const; Description: Returns true if any component of the matrix is not-a-number, false otherwise.

multiply void LMatrix3f::multiply(LMatrix3f const &other1, LMatrix3f const &other2); this = other1 * other2

operator != bool LMatrix3f::operator !=(LMatrix3f const &other) const; Description:

operator () float &LMatrix3f::operator ()(int row, int col); Description:

operator * LMatrix3f LMatrix3f::operator *(LMatrix3f const &other) const; Description:

operator *= LMatrix3f &LMatrix3f::operator *=(LMatrix3f const &other); Description: Description: Performs a memberwise scale.

operator += LMatrix3f &LMatrix3f::operator +=(LMatrix3f const &other); Description: Performs a memberwise addition between two matrices.

operator -= LMatrix3f &LMatrix3f::operator -=(LMatrix3f const &other); Description: Performs a memberwise subtraction between two matrices.

operator / LMatrix3f LMatrix3f::operator /(float scalar) const; Description:

operator /= LMatrix3f &LMatrix3f::operator /=(float scalar); Description: Performs a memberwise scale.

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

operator = LMatrix3f &LMatrix3f::operator =(LMatrix3f const &other); Description:

operator == bool LMatrix3f::operator ==(LMatrix3f const &other) const; Description:

operator delete void LMatrix3f::operator delete(void *ptr); Undocumented function.

operator new void *LMatrix3f::operator new(unsigned int size); Undocumented function.

output void LMatrix3f::output(ostream &out) const; Description:

pythonRepr void LMatrix3f::python_repr(ostream &out, string const &class_name) const; Description:

rotateMat static LMatrix3f LMatrix3f::rotate_mat(float angle); The following named constructors return 3x3 matrices suitable for scale/rotate transforms in 3-d coordinate space. Description: Returns a matrix that rotates by the given angle in degrees counterclockwise. Description: Returns a matrix that rotates by the given angle in degrees counterclockwise about the indicated vector.

rotateMatNormaxis static LMatrix3f LMatrix3f::rotate_mat_normaxis(float angle, LVecBase3f const &axis, CoordinateSystem cs = (CS_default)); Description: Returns a matrix that rotates by the given angle in degrees counterclockwise about the indicated vector. Assumes axis has been normalized.

scaleMat static LMatrix3f LMatrix3f::scale_mat(LVecBase2f const &scale); Description: Returns a matrix that applies the indicated scale in each of the two axes. Description: Returns a matrix that applies the indicated scale in each of the three axes.

scaleShearMat static LMatrix3f LMatrix3f::scale_shear_mat(LVecBase3f const &scale, LVecBase3f const &shear, CoordinateSystem cs = (CS_default)); Description: Returns a matrix that applies the indicated scale and shear.

set void LMatrix3f::set(float e00, float e01, float e02, float e10, float e11, float e12, float e20, float e21, float e22); Description:

setCell void LMatrix3f::set_cell(int row, int col, float value); Description: Changes a particular element of the matrix.

setCol void LMatrix3f::set_col(int col, LVecBase3f const &v); Description: Replaces the indicated column of the matrix from a three-component vector. Description: Replaces the indicated column of the matrix from a two-component vector, ignoring the last row.

setRow void LMatrix3f::set_row(int row, LVecBase3f const &v); Description: Replaces the indicated row of the matrix from a three-component vector. Description: Replaces the indicated row of the matrix from a two-component vector, ignoring the last column.

shearMat static LMatrix3f LMatrix3f::shear_mat(LVecBase3f const &shear, CoordinateSystem cs = (CS_default)); Description: Returns a matrix that applies the indicated shear in each of the three planes.

translateMat static LMatrix3f LMatrix3f::translate_mat(LVecBase2f const &trans); Description: Returns a matrix that applies the indicated translation.

transposeFrom void LMatrix3f::transpose_from(LMatrix3f const &other); Description:

transposeInPlace void LMatrix3f::transpose_in_place(void); Description:

write void LMatrix3f::write(ostream &out, int indent_level = (0)) const; Description:

xform LVecBase3f LMatrix3f::xform(LVecBase3f const &v) const; Description: 3-component vector or point times matrix. This is a fully general operation.

xformPoint LVecBase2f LMatrix3f::xform_point(LVecBase2f const &v) const; Description: The matrix transforms a 2-component point (including translation component) and returns the result. This assumes the matrix is an affine transform.

xformVec LVecBase2f LMatrix3f::xform_vec(LVecBase2f const &v) const; Description: The matrix transforms a 2-component vector (without translation component) and returns the result. This assumes the matrix is an affine transform.