LMatrix4f¶
from panda3d.core import LMatrix4f
-
class
LMatrix4f
¶ This is a 4-by-4 transform matrix.
Inheritance diagram
-
__init__
()¶
-
__init__
(upper3: LMatrix3f) Construct a 4x4 matrix given a 3x3 rotation matrix and an optional translation component.
-
__init__
(upper3: LMatrix3f, trans: LVecBase3f)
-
__init__
(other: LMatrix4f)
-
__init__
(param0: LVecBase4f, param1: LVecBase4f, param2: LVecBase4f, param3: LVecBase4f) Constructs the matrix from four individual rows.
-
__init__
(other: UnalignedLMatrix4f)
-
__init__
(param0: float, param1: float, param2: float, param3: float, param4: float, param5: float, param6: float, param7: float, param8: float, param9: float, param10: float, param11: float, param12: float, param13: float, param14: float, param15: float)
-
almostEqual
(other: LMatrix4f) → bool¶ Returns true if two matrices are memberwise equal within a default tolerance based on the numeric type.
-
almostEqual
(other: LMatrix4f, threshold: float) → bool Returns true if two matrices are memberwise equal within a specified tolerance. This is faster than the equivalence operator as this doesn’t have to guarantee that it is transitive.
-
assign
(other: UnalignedLMatrix4f) → LMatrix4f
-
begin
() → None¶ Returns an iterator that may be used to traverse the elements of the matrix, STL-style.
-
begin
() → None Returns an iterator that may be used to traverse the elements of the matrix, STL-style.
-
property
cols
→ Sequence[LVecBase4f]¶ Retrieves the indicated column of the matrix as a 4-component vector.
-
compareTo
(other: LMatrix4f) → int¶ This flavor of
compareTo()
uses a default threshold value based on the numeric type.
-
compareTo
(other: LMatrix4f, threshold: float) → int 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).
-
static
convertMat
(from: CoordinateSystem, to: CoordinateSystem) → LMatrix4f¶ Returns a matrix that transforms from the indicated coordinate system to the indicated coordinate system.
-
end
() → None¶ Returns an iterator that may be used to traverse the elements of the matrix, STL-style.
-
end
() → None Returns an iterator that may be used to traverse the elements of the matrix, STL-style.
-
fill
(fill_value: float) → None¶ Sets each element of the matrix to the indicated fill_value. This is of questionable value, but is sometimes useful when initializing to zero.
-
generateHash
(hashgen: ChecksumHashGenerator) → None¶ Adds the vector to the indicated hash generator.
-
generateHash
(hashgen: ChecksumHashGenerator, scale: float) → None Adds the vector to the indicated hash generator.
-
static
getClassType
() → TypeHandle¶
-
getCol
(col: int) → LVecBase4f¶ Retrieves the indicated column of the matrix as a 4-component vector.
-
getCol3
(col: int) → LVecBase3f¶ Retrieves the indicated column of the matrix as a 3-component vector, ignoring the last row.
-
getData
() → None¶ 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.
-
getRow
(result_vec: LVecBase4f, row: int) → None¶ Stores the indicated row of the matrix as a 4-component vector.
-
getRow
(row: int) → LVecBase4f Retrieves the indicated row of the matrix as a 4-component vector.
-
getRow3
(result_vec: LVecBase3f, row: int) → None¶ Stores the row column of the matrix as a 3-component vector, ignoring the last column.
-
getRow3
(row: int) → LVecBase3f Retrieves the row column of the matrix as a 3-component vector, ignoring the last column.
-
static
identMat
() → LMatrix4f¶ Returns an identity matrix.
This function definition must appear first, since some inline functions below take advantage of it.
-
invertAffineFrom
(other: LMatrix4f) → bool¶ bugbug: we could optimize this for rotationscaletranslation matrices (transpose upper 3x3 and take negative of translation component)
-
invertFrom
(other: LMatrix4f) → bool¶ 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
invertInPlace()
.The return value is true if the matrix was successfully inverted, false if the was a singularity.
-
invertInPlace
() → bool¶ Inverts the current matrix. Returns true if the inverse is successful, false if the matrix was singular.
-
isIdentity
() → bool¶ Returns true if this is (close enough to) the identity matrix, false otherwise.
-
readDatagram
(source: DatagramIterator) → None¶ Reads the matrix from the Datagram using get_stdfloat().
-
readDatagramFixed
(scan: DatagramIterator) → None¶ Reads the matrix from the Datagram using get_float32() or get_float64(). See
writeDatagramFixed()
.
-
static
rotateMat
(angle: float, axis: LVecBase3f, cs: CoordinateSystem) → LMatrix4f¶ Returns a matrix that rotates by the given angle in degrees counterclockwise about the indicated vector.
-
static
rotateMatNormaxis
(angle: float, axis: LVecBase3f, cs: CoordinateSystem) → LMatrix4f¶ Returns a matrix that rotates by the given angle in degrees counterclockwise about the indicated vector. Assumes axis has been prenormalized.
-
property
rows
→ Sequence[LVecBase4f]¶ these versions inline better
Retrieves the indicated row of the matrix as a 4-component vector.
Stores the indicated row of the matrix as a 4-component vector.
-
static
scaleMat
(scale: LVecBase3f) → LMatrix4f¶ Returns a matrix that applies the indicated scale in each of the three axes.
-
static
scaleMat
(scale: float) → LMatrix4f Returns a matrix that applies the indicated uniform scale.
-
static
scaleMat
(sx: float, sy: float, sz: float) → LMatrix4f Returns a matrix that applies the indicated scale in each of the three axes.
-
static
scaleShearMat
(scale: LVecBase3f, shear: LVecBase3f, cs: CoordinateSystem) → LMatrix4f¶ Returns a matrix that applies the indicated scale and shear.
-
static
scaleShearMat
(sx: float, sy: float, sz: float, shxy: float, shxz: float, shyz: float, cs: CoordinateSystem) → LMatrix4f Returns a matrix that applies the indicated scale and shear.
-
set
(e00: float, e01: float, e02: float, e03: float, e10: float, e11: float, e12: float, e13: float, e20: float, e21: float, e22: float, e23: float, e30: float, e31: float, e32: float, e33: float) → None¶
-
setCol
(col: int, v: LVecBase3f) → None¶ Replaces the indicated column of the matrix with the indicated 3-component vector, ignoring the last row.
-
setCol
(col: int, v: LVecBase4f) → None Replaces the indicated column of the matrix.
-
setRotateMat
(angle: float, axis: LVecBase3f, cs: CoordinateSystem) → None¶ Sets mat to a matrix that rotates by the given angle in degrees counterclockwise about the indicated vector.
-
setRotateMatNormaxis
(angle: float, axis: LVecBase3f, cs: CoordinateSystem) → None¶ Fills mat with a matrix that rotates by the given angle in degrees counterclockwise about the indicated vector. Assumes axis has been prenormalized.
-
setRow
(row: int, v: LVecBase3f) → None¶ Replaces the indicated row of the matrix with the indicated 3-component vector, ignoring the last column.
-
setRow
(row: int, v: LVecBase4f) → None Replaces the indicated row of the matrix.
-
setScaleMat
(scale: LVecBase3f) → None¶ Fills mat with a matrix that applies the indicated scale in each of the three axes.
-
setScaleShearMat
(scale: LVecBase3f, shear: LVecBase3f, cs: CoordinateSystem) → None¶ Fills mat with a matrix that applies the indicated scale and shear.
-
setShearMat
(shear: LVecBase3f, cs: CoordinateSystem) → None¶ Fills mat with a matrix that applies the indicated shear in each of the three planes.
-
setTranslateMat
(trans: LVecBase3f) → None¶ Fills mat with a matrix that applies the indicated translation.
-
static
shearMat
(shear: LVecBase3f, cs: CoordinateSystem) → LMatrix4f¶ Returns a matrix that applies the indicated shear in each of the three planes.
-
static
shearMat
(shxy: float, shxz: float, shyz: float, cs: CoordinateSystem) → LMatrix4f Returns a matrix that applies the indicated shear in each of the three planes.
-
static
translateMat
(trans: LVecBase3f) → LMatrix4f¶ Returns a matrix that applies the indicated translation.
-
static
translateMat
(tx: float, ty: float, tz: float) → LMatrix4f Returns a matrix that applies the indicated translation.
-
writeDatagram
(destination: Datagram) → None¶ 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
(destination: Datagram) → None¶ 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.setStdfloatDouble()
. 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
(v: LVecBase4f) → LVecBase4f¶ 4-component vector or point times matrix. This is a fully general operation.
-
xformInPlace
(v: LVecBase4f) → None¶ 4-component vector or point times matrix. This is a fully general operation.
-
xformPoint
(v: LVecBase3f) → LVecBase3f¶ The matrix transforms a 3-component point (including translation component) and returns the result. This assumes the matrix is an affine transform.
-
xformPointGeneral
(v: LVecBase3f) → LVecBase3f¶ The matrix transforms a 3-component point (including translation component) and returns the result, as a fully general operation.
-
xformPointGeneralInPlace
(v: LVecBase3f) → None¶ The matrix transforms a 3-component point (including translation component), as a fully general operation.
-
xformPointInPlace
(v: LVecBase3f) → None¶ The matrix transforms a 3-component point (including translation component). This assumes the matrix is an affine transform.
-
xformVec
(v: LVecBase3f) → LVecBase3f¶ The matrix transforms a 3-component vector (without translation component) and returns the result. This assumes the matrix is an orthonormal transform.
-
xformVecGeneral
(v: LVecBase3f) → LVecBase3f¶ The matrix transforms a 3-component vector (without translation component) and returns the result, as a fully general operation.
-
xformVecGeneralInPlace
(v: LVecBase3f) → None¶ The matrix transforms a 3-component vector (without translation component), as a fully general operation.
-
xformVecInPlace
(v: LVecBase3f) → None¶ The matrix transforms a 3-component vector (without translation component). This assumes the matrix is an orthonormal transform.
-
static
yToZUpMat
() → LMatrix4f¶ Returns a matrix that transforms from the Y-up coordinate system to the Z-up coordinate system.
-