LMatrix3f
from panda3d.core import LMatrix3f
- class LMatrix3f
Bases:
DTOOL_SUPER_BASE
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 diagram
- class CRow
Bases:
DTOOL_SUPER_BASE
- __init__(*args, **kwargs)
- operatorTypecast()
C++ Interface: operator_typecast(CRow self)
- operator_typecast()
C++ Interface: operator_typecast(CRow self)
- class Row
Bases:
DTOOL_SUPER_BASE
These helper classes are used to support two-level operator [].
- __init__(*args, **kwargs)
- operatorTypecast()
C++ Interface: operator_typecast(Row self)
- operator_typecast()
C++ Interface: operator_typecast(Row self)
- __init__(*args, **kwargs)
- addHash()
C++ Interface: add_hash(LMatrix3f self, int hash) add_hash(LMatrix3f self, int hash, float threshold)
- add_hash()
C++ Interface: add_hash(LMatrix3f self, int hash) add_hash(LMatrix3f self, int hash, float threshold)
- almostEqual()
C++ Interface: almost_equal(LMatrix3f self, const LMatrix3f other) almost_equal(LMatrix3f self, const LMatrix3f other, float threshold)
- almost_equal()
C++ Interface: almost_equal(LMatrix3f self, const LMatrix3f other) almost_equal(LMatrix3f self, const LMatrix3f other, float threshold)
- assign()
C++ Interface: assign(const LMatrix3f self, const LMatrix3f other) assign(const LMatrix3f self, float fill_value)
- /**
*/
- cols
- compareTo()
C++ Interface: compare_to(LMatrix3f self, const LMatrix3f other) compare_to(LMatrix3f self, const LMatrix3f other, float threshold)
- /**
This flavor of compare_to uses a default threshold value based on the
numeric type.
*/
- /**
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).
*/
- compare_to()
C++ Interface: compare_to(LMatrix3f self, const LMatrix3f other) compare_to(LMatrix3f self, const LMatrix3f other, float threshold)
- /**
This flavor of compare_to uses a default threshold value based on the
numeric type.
*/
- /**
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).
*/
- componentwiseMult()
C++ Interface: componentwise_mult(const LMatrix3f self, const LMatrix3f other)
- /**
*/
- componentwise_mult()
C++ Interface: componentwise_mult(const LMatrix3f self, const LMatrix3f other)
- /**
*/
- convertMat()
C++ Interface: convert_mat(int from, int to)
- /**
Returns a matrix that transforms from the indicated coordinate system to
the indicated coordinate system.
*/
- convert_mat()
C++ Interface: convert_mat(int from, int to)
- /**
Returns a matrix that transforms from the indicated coordinate system to
the indicated coordinate system.
*/
- determinant()
C++ Interface: determinant(LMatrix3f self)
- /**
Returns the determinant of the matrix.
*/
- fill()
C++ Interface: fill(const LMatrix3f self, 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.
*/
- getCell()
C++ Interface: get_cell(LMatrix3f self, int row, int col)
- /**
Returns a particular element of the matrix.
*/
- getClassType()
C++ Interface: get_class_type()
- getCol()
C++ Interface: get_col(LMatrix3f self, int col)
- /**
Returns the indicated column of the matrix as a three-component vector.
*/
- getCol2()
C++ Interface: get_col2(LMatrix3f self, int col)
- /**
Returns the indicated column of the matrix as a two-component vector,
ignoring the last row.
*/
- getCol2s()
- getCols()
- getHash()
C++ Interface: get_hash(LMatrix3f self) get_hash(LMatrix3f self, float threshold)
- getNumComponents()
C++ Interface: get_num_components(LMatrix3f self)
- /**
Returns the number of elements in the matrix, nine.
*/
- getRow()
C++ Interface: get_row(LMatrix3f self, int row) get_row(LMatrix3f self, LVecBase3f result_vec, int row)
// these versions inline better
- getRow2()
C++ Interface: get_row2(LMatrix3f self, int row)
- /**
Returns the indicated row of the matrix as a two-component vector, ignoring
the last column.
*/
- getRow2s()
- getRows()
- get_cell()
C++ Interface: get_cell(LMatrix3f self, int row, int col)
- /**
Returns a particular element of the matrix.
*/
- get_class_type()
C++ Interface: get_class_type()
- get_col()
C++ Interface: get_col(LMatrix3f self, int col)
- /**
Returns the indicated column of the matrix as a three-component vector.
*/
- get_col2()
C++ Interface: get_col2(LMatrix3f self, int col)
- /**
Returns the indicated column of the matrix as a two-component vector,
ignoring the last row.
*/
- get_col2s()
- get_cols()
- get_hash()
C++ Interface: get_hash(LMatrix3f self) get_hash(LMatrix3f self, float threshold)
- get_num_components()
C++ Interface: get_num_components(LMatrix3f self)
- /**
Returns the number of elements in the matrix, nine.
*/
- get_row()
C++ Interface: get_row(LMatrix3f self, int row) get_row(LMatrix3f self, LVecBase3f result_vec, int row)
// these versions inline better
- get_row2()
C++ Interface: get_row2(LMatrix3f self, int row)
- /**
Returns the indicated row of the matrix as a two-component vector, ignoring
the last column.
*/
- get_row2s()
- get_rows()
- identMat()
C++ Interface: ident_mat()
- /**
Returns an identity matrix.
This function definition must appear first, since some inline functions
below take advantage of it.
*/
- ident_mat()
C++ Interface: ident_mat()
- /**
Returns an identity matrix.
This function definition must appear first, since some inline functions
below take advantage of it.
*/
- invertFrom()
C++ Interface: invert_from(const LMatrix3f self, const LMatrix3f other)
- /**
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.
*/
- invertInPlace()
C++ Interface: invert_in_place(const LMatrix3f self)
- /**
Inverts the current matrix. Returns true if the inverse is successful,
false if the matrix was singular.
*/
- invertTransposeFrom()
C++ Interface: invert_transpose_from(const LMatrix3f self, const LMatrix4f other) invert_transpose_from(const LMatrix3f self, const LMatrix3f other)
- invert_from()
C++ Interface: invert_from(const LMatrix3f self, const LMatrix3f other)
- /**
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.
*/
- invert_in_place()
C++ Interface: invert_in_place(const LMatrix3f self)
- /**
Inverts the current matrix. Returns true if the inverse is successful,
false if the matrix was singular.
*/
- invert_transpose_from()
C++ Interface: invert_transpose_from(const LMatrix3f self, const LMatrix4f other) invert_transpose_from(const LMatrix3f self, const LMatrix3f other)
- isIdentity()
C++ Interface: is_identity(LMatrix3f self)
- /**
Returns true if this is (close enough to) the identity matrix, false
otherwise.
*/
- isNan()
C++ Interface: is_nan(LMatrix3f self)
- /**
Returns true if any component of the matrix is not-a-number, false
otherwise.
*/
- is_identity()
C++ Interface: is_identity(LMatrix3f self)
- /**
Returns true if this is (close enough to) the identity matrix, false
otherwise.
*/
- is_int = 0
- is_nan()
C++ Interface: is_nan(LMatrix3f self)
- /**
Returns true if any component of the matrix is not-a-number, false
otherwise.
*/
- multiply()
C++ Interface: multiply(const LMatrix3f self, const LMatrix3f other1, const LMatrix3f other2)
// this = other1 * other2
// this = other1 * other2
- num_components = 9
- pPrintValues(self)
Pretty print
- readDatagram()
C++ Interface: read_datagram(const LMatrix3f self, DatagramIterator source)
- /**
Reads the matrix from the Datagram using get_stdfloat().
*/
- readDatagramFixed()
C++ Interface: read_datagram_fixed(const LMatrix3f self, DatagramIterator scan)
- /**
Reads the matrix from the Datagram using get_float32() or get_float64().
See write_datagram_fixed().
*/
- read_datagram()
C++ Interface: read_datagram(const LMatrix3f self, DatagramIterator source)
- /**
Reads the matrix from the Datagram using get_stdfloat().
*/
- read_datagram_fixed()
C++ Interface: read_datagram_fixed(const LMatrix3f self, DatagramIterator scan)
- /**
Reads the matrix from the Datagram using get_float32() or get_float64().
See write_datagram_fixed().
*/
- rotateMat()
C++ Interface: rotate_mat(float angle) rotate_mat(float angle, const LVecBase3f axis, int cs)
- rotateMatNormaxis()
C++ Interface: rotate_mat_normaxis(float angle, const LVecBase3f axis, int cs)
- /**
Returns a matrix that rotates by the given angle in degrees
counterclockwise about the indicated vector. Assumes axis has been
normalized.
*/
- rotate_mat()
C++ Interface: rotate_mat(float angle) rotate_mat(float angle, const LVecBase3f axis, int cs)
- rotate_mat_normaxis()
C++ Interface: rotate_mat_normaxis(float angle, const LVecBase3f axis, int cs)
- /**
Returns a matrix that rotates by the given angle in degrees
counterclockwise about the indicated vector. Assumes axis has been
normalized.
*/
- rows
- scaleMat()
C++ Interface: scale_mat(const LVecBase2f scale) scale_mat(const LVecBase3f scale) scale_mat(float sx, float sy) scale_mat(float sx, float sy, float sz)
- /**
Returns a matrix that applies the indicated scale in each of the two axes.
*/
- /**
Returns a matrix that applies the indicated scale in each of the two axes.
*/
- /**
Returns a matrix that applies the indicated scale in each of the three
axes.
*/
- /**
Returns a matrix that applies the indicated scale in each of the three
axes.
*/
- scaleShearMat()
C++ Interface: scale_shear_mat(const LVecBase3f scale, const LVecBase3f shear) scale_shear_mat(const LVecBase3f scale, const LVecBase3f shear, int cs) scale_shear_mat(float sx, float sy, float sz, float shxy, float shxz, float shyz, int cs)
- scale_mat()
C++ Interface: scale_mat(const LVecBase2f scale) scale_mat(const LVecBase3f scale) scale_mat(float sx, float sy) scale_mat(float sx, float sy, float sz)
- /**
Returns a matrix that applies the indicated scale in each of the two axes.
*/
- /**
Returns a matrix that applies the indicated scale in each of the two axes.
*/
- /**
Returns a matrix that applies the indicated scale in each of the three
axes.
*/
- /**
Returns a matrix that applies the indicated scale in each of the three
axes.
*/
- scale_shear_mat()
C++ Interface: scale_shear_mat(const LVecBase3f scale, const LVecBase3f shear) scale_shear_mat(const LVecBase3f scale, const LVecBase3f shear, int cs) scale_shear_mat(float sx, float sy, float sz, float shxy, float shxz, float shyz, int cs)
- set()
C++ Interface: set(const LMatrix3f self, float e00, float e01, float e02, float e10, float e11, float e12, float e20, float e21, float e22)
- /**
*/
- setCell()
C++ Interface: set_cell(const LMatrix3f self, int row, int col, float value)
- /**
Changes a particular element of the matrix.
*/
- setCol()
C++ Interface: set_col(const LMatrix3f self, int col, const LVecBase2f v) set_col(const LMatrix3f self, int col, const LVecBase3f v)
- setRotateMat()
C++ Interface: set_rotate_mat(const LMatrix3f self, float angle) set_rotate_mat(const LMatrix3f self, float angle, const LVecBase3f axis, int cs)
- setRotateMatNormaxis()
C++ Interface: set_rotate_mat_normaxis(const LMatrix3f self, float angle, const LVecBase3f axis, int cs)
- /**
Fills mat with a matrix that rotates by the given angle in degrees
counterclockwise about the indicated vector. Assumes axis has been
normalized.
*/
- setRow()
C++ Interface: set_row(const LMatrix3f self, int row, const LVecBase2f v) set_row(const LMatrix3f self, int row, const LVecBase3f v)
- setScaleMat()
C++ Interface: set_scale_mat(const LMatrix3f self, const LVecBase2f scale) set_scale_mat(const LMatrix3f self, const LVecBase3f scale)
- setScaleShearMat()
C++ Interface: set_scale_shear_mat(const LMatrix3f self, const LVecBase3f scale, const LVecBase3f shear, int cs)
- /**
Fills mat with a matrix that applies the indicated scale and shear.
*/
- setShearMat()
C++ Interface: set_shear_mat(const LMatrix3f self, const LVecBase3f shear, int cs)
- /**
Fills mat with a matrix that applies the indicated shear in each of the
three planes.
*/
- setTranslateMat()
C++ Interface: set_translate_mat(const LMatrix3f self, const LVecBase2f trans)
- /**
Fills mat with a matrix that applies the indicated translation.
*/
- set_cell()
C++ Interface: set_cell(const LMatrix3f self, int row, int col, float value)
- /**
Changes a particular element of the matrix.
*/
- set_col()
C++ Interface: set_col(const LMatrix3f self, int col, const LVecBase2f v) set_col(const LMatrix3f self, int col, const LVecBase3f v)
- set_rotate_mat()
C++ Interface: set_rotate_mat(const LMatrix3f self, float angle) set_rotate_mat(const LMatrix3f self, float angle, const LVecBase3f axis, int cs)
- set_rotate_mat_normaxis()
C++ Interface: set_rotate_mat_normaxis(const LMatrix3f self, float angle, const LVecBase3f axis, int cs)
- /**
Fills mat with a matrix that rotates by the given angle in degrees
counterclockwise about the indicated vector. Assumes axis has been
normalized.
*/
- set_row()
C++ Interface: set_row(const LMatrix3f self, int row, const LVecBase2f v) set_row(const LMatrix3f self, int row, const LVecBase3f v)
- set_scale_mat()
C++ Interface: set_scale_mat(const LMatrix3f self, const LVecBase2f scale) set_scale_mat(const LMatrix3f self, const LVecBase3f scale)
- set_scale_shear_mat()
C++ Interface: set_scale_shear_mat(const LMatrix3f self, const LVecBase3f scale, const LVecBase3f shear, int cs)
- /**
Fills mat with a matrix that applies the indicated scale and shear.
*/
- set_shear_mat()
C++ Interface: set_shear_mat(const LMatrix3f self, const LVecBase3f shear, int cs)
- /**
Fills mat with a matrix that applies the indicated shear in each of the
three planes.
*/
- set_translate_mat()
C++ Interface: set_translate_mat(const LMatrix3f self, const LVecBase2f trans)
- /**
Fills mat with a matrix that applies the indicated translation.
*/
- shearMat()
C++ Interface: shear_mat(const LVecBase3f shear) shear_mat(const LVecBase3f shear, int cs) shear_mat(float shxy, float shxz, float shyz, int cs)
- shear_mat()
C++ Interface: shear_mat(const LVecBase3f shear) shear_mat(const LVecBase3f shear, int cs) shear_mat(float shxy, float shxz, float shyz, int cs)
- translateMat()
C++ Interface: translate_mat(const LVecBase2f trans) translate_mat(float tx, float ty)
- translate_mat()
C++ Interface: translate_mat(const LVecBase2f trans) translate_mat(float tx, float ty)
- writeDatagram()
C++ Interface: write_datagram(LMatrix3f self, Datagram destination)
- /**
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.
*/
- writeDatagramFixed()
C++ Interface: write_datagram_fixed(LMatrix3f self, Datagram destination)
- /**
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.
*/
- write_datagram()
C++ Interface: write_datagram(LMatrix3f self, Datagram destination)
- /**
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.
*/
- write_datagram_fixed()
C++ Interface: write_datagram_fixed(LMatrix3f self, Datagram destination)
- /**
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.
*/
- xform()
C++ Interface: xform(LMatrix3f self, const LVecBase3f v)
- /**
3-component vector or point times matrix.
*/
- xformInPlace()
C++ Interface: xform_in_place(LMatrix3f self, LVecBase3f v)
- /**
3-component vector or point times matrix.
*/
- xformPoint()
C++ Interface: xform_point(LMatrix3f self, const LVecBase2f v)
- /**
The matrix transforms a 2-component point (including translation component)
and returns the result. This assumes the matrix is an affine transform.
*/
- xformPointInPlace()
C++ Interface: xform_point_in_place(LMatrix3f self, LVecBase2f v)
- /**
The matrix transforms a 2-component point (including translation
component). This assumes the matrix is an affine transform.
*/
- xformVec()
C++ Interface: xform_vec(LMatrix3f self, const LVecBase2f v) xform_vec(LMatrix3f self, const LVecBase3f v)
- /**
The matrix transforms a 2-component vector (without translation component)
and returns the result. This assumes the matrix is an affine transform.
*/
- /**
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().
*/
- xformVecGeneral()
C++ Interface: xform_vec_general(LMatrix3f self, const LVecBase3f v)
- /**
The matrix transforms a 3-component vector (without translation component)
and returns the result, as a fully general operation.
*/
- xformVecGeneralInPlace()
C++ Interface: xform_vec_general_in_place(LMatrix3f self, LVecBase3f v)
- /**
The matrix transforms a 3-component vector (without translation component),
as a fully general operation.
*/
- xformVecInPlace()
C++ Interface: xform_vec_in_place(LMatrix3f self, LVecBase2f v) xform_vec_in_place(LMatrix3f self, LVecBase3f v)
- xform_in_place()
C++ Interface: xform_in_place(LMatrix3f self, LVecBase3f v)
- /**
3-component vector or point times matrix.
*/
- xform_point()
C++ Interface: xform_point(LMatrix3f self, const LVecBase2f v)
- /**
The matrix transforms a 2-component point (including translation component)
and returns the result. This assumes the matrix is an affine transform.
*/
- xform_point_in_place()
C++ Interface: xform_point_in_place(LMatrix3f self, LVecBase2f v)
- /**
The matrix transforms a 2-component point (including translation
component). This assumes the matrix is an affine transform.
*/
- xform_vec()
C++ Interface: xform_vec(LMatrix3f self, const LVecBase2f v) xform_vec(LMatrix3f self, const LVecBase3f v)
- /**
The matrix transforms a 2-component vector (without translation component)
and returns the result. This assumes the matrix is an affine transform.
*/
- /**
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().
*/
- xform_vec_general()
C++ Interface: xform_vec_general(LMatrix3f self, const LVecBase3f v)
- /**
The matrix transforms a 3-component vector (without translation component)
and returns the result, as a fully general operation.
*/
- xform_vec_general_in_place()
C++ Interface: xform_vec_general_in_place(LMatrix3f self, LVecBase3f v)
- /**
The matrix transforms a 3-component vector (without translation component),
as a fully general operation.
*/
- xform_vec_in_place()
C++ Interface: xform_vec_in_place(LMatrix3f self, LVecBase2f v) xform_vec_in_place(LMatrix3f self, LVecBase3f v)