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

Inheritance diagram of LMatrix3f

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)

/**
  • Adds the vector into the running hash.

*/

/**
  • Adds the vector into the running hash.

*/

add_hash()

C++ Interface: add_hash(LMatrix3f self, int hash) add_hash(LMatrix3f self, int hash, float threshold)

/**
  • Adds the vector into the running hash.

*/

/**
  • Adds the vector into the running hash.

*/

almostEqual()

C++ Interface: almost_equal(LMatrix3f self, const LMatrix3f other) almost_equal(LMatrix3f self, const LMatrix3f other, float threshold)

/**
  • Returns true if two matrices are memberwise equal within a default

  • tolerance based on the numeric type.

*/

/**
  • Returns true if two matrices are memberwise equal within a specified

  • tolerance.

*/

almost_equal()

C++ Interface: almost_equal(LMatrix3f self, const LMatrix3f other) almost_equal(LMatrix3f self, const LMatrix3f other, float threshold)

/**
  • Returns true if two matrices are memberwise equal within a default

  • tolerance based on the numeric type.

*/

/**
  • Returns true if two matrices are memberwise equal within a specified

  • tolerance.

*/

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)

/**
  • Returns a suitable hash for phash_map.

*/

/**
  • Returns a suitable hash for phash_map.

*/

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

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

*/

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

*/

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)

/**
  • Returns a suitable hash for phash_map.

*/

/**
  • Returns a suitable hash for phash_map.

*/

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

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

*/

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

*/

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)

/**
  • Simultaneously computes the inverse of the indicated matrix, and then the

  • transpose of that inverse.

*/

/**
  • Simultaneously computes the inverse of the indicated matrix, and then the

  • transpose of that inverse.

*/

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)

/**
  • Simultaneously computes the inverse of the indicated matrix, and then the

  • transpose of that inverse.

*/

/**
  • Simultaneously computes the inverse of the indicated matrix, and then the

  • transpose of that inverse.

*/

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
output()

C++ Interface: output(LMatrix3f self, ostream out)

/**

*/

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)

/**
  • Returns a matrix that rotates by the given angle in degrees

  • counterclockwise.

*/

/**
  • Returns a matrix that rotates by the given angle in degrees

  • counterclockwise about the indicated vector.

*/

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)

/**
  • Returns a matrix that rotates by the given angle in degrees

  • counterclockwise.

*/

/**
  • Returns a matrix that rotates by the given angle in degrees

  • counterclockwise about the indicated vector.

*/

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)

/**
  • Returns a matrix that applies the indicated scale and shear.

*/

/**
  • Returns a matrix that applies the indicated scale and shear.

*/

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)

/**
  • Returns a matrix that applies the indicated scale and shear.

*/

/**
  • Returns a matrix that applies the indicated scale and shear.

*/

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)

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

*/

/**
  • Replaces the indicated column of the matrix from a two-component vector,

  • ignoring the last row.

*/

setRotateMat()

C++ Interface: set_rotate_mat(const LMatrix3f self, float angle) set_rotate_mat(const LMatrix3f self, float angle, const LVecBase3f axis, int cs)

/**
  • Fills mat with a matrix that rotates by the given angle in degrees

  • counterclockwise.

*/

/**
  • Fills mat with a matrix that rotates by the given angle in degrees

  • counterclockwise about the indicated vector.

*/

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)

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

*/

/**
  • Replaces the indicated row of the matrix from a two-component vector,

  • ignoring the last column.

*/

setScaleMat()

C++ Interface: set_scale_mat(const LMatrix3f self, const LVecBase2f scale) set_scale_mat(const LMatrix3f self, const LVecBase3f scale)

/**
  • Fills mat with a matrix that applies the indicated scale in each of the two

  • axes.

*/

/**
  • Fills mat with a matrix that applies the indicated scale in each of the

  • three axes.

*/

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)

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

*/

/**
  • Replaces the indicated column of the matrix from a two-component vector,

  • ignoring the last row.

*/

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)

/**
  • Fills mat with a matrix that rotates by the given angle in degrees

  • counterclockwise.

*/

/**
  • Fills mat with a matrix that rotates by the given angle in degrees

  • counterclockwise about the indicated vector.

*/

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)

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

*/

/**
  • Replaces the indicated row of the matrix from a two-component vector,

  • ignoring the last column.

*/

set_scale_mat()

C++ Interface: set_scale_mat(const LMatrix3f self, const LVecBase2f scale) set_scale_mat(const LMatrix3f self, const LVecBase3f scale)

/**
  • Fills mat with a matrix that applies the indicated scale in each of the two

  • axes.

*/

/**
  • Fills mat with a matrix that applies the indicated scale in each of the

  • three axes.

*/

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)

/**
  • Returns a matrix that applies the indicated shear in each of the three

  • planes.

*/

/**
  • Returns a matrix that applies the indicated shear in each of the three

  • planes.

*/

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)

/**
  • Returns a matrix that applies the indicated shear in each of the three

  • planes.

*/

/**
  • Returns a matrix that applies the indicated shear in each of the three

  • planes.

*/

translateMat()

C++ Interface: translate_mat(const LVecBase2f trans) translate_mat(float tx, float ty)

/**
  • Returns a matrix that applies the indicated translation.

*/

/**
  • Returns a matrix that applies the indicated translation.

*/

translate_mat()

C++ Interface: translate_mat(const LVecBase2f trans) translate_mat(float tx, float ty)

/**
  • Returns a matrix that applies the indicated translation.

*/

/**
  • Returns a matrix that applies the indicated translation.

*/

transposeFrom()

C++ Interface: transpose_from(const LMatrix3f self, const LMatrix3f other)

/**

*/

transposeInPlace()

C++ Interface: transpose_in_place(const LMatrix3f self)

/**

*/

transpose_from()

C++ Interface: transpose_from(const LMatrix3f self, const LMatrix3f other)

/**

*/

transpose_in_place()

C++ Interface: transpose_in_place(const LMatrix3f self)

/**

*/

write()

C++ Interface: write(LMatrix3f self, ostream out, int indent_level)

/**

*/

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)

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

  • This assumes the matrix is an affine transform.

*/

/**
  • The matrix transforms a 3-component vector. This assumes the matrix is an

  • orthonormal transform.

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

*/

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)

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

  • This assumes the matrix is an affine transform.

*/

/**
  • The matrix transforms a 3-component vector. This assumes the matrix is an

  • orthonormal transform.

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

*/