Panda3D
Classes | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
LMatrix4d Class Reference

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

Classes

class  CRow
 
class  Row
 

Public Types

enum  { num_components = 16, is_int = 0 }
 

Public Member Functions

 __init__ ()
 
 __init__ (const LMatrix3d upper3)
 
 __init__ (const LMatrix3d upper3, const LVecBase3d trans)
 
 __init__ (const LMatrix4d other)
 
 __init__ (const LVecBase4d, const LVecBase4d, const LVecBase4d, const LVecBase4d)
 Constructs the matrix from four individual rows. More...
 
 __init__ (const UnalignedLMatrix4d other)
 
 __init__ (double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double)
 
object __reduce__ ()
 
str __repr__ ()
 
 accumulate (const LMatrix4d other, double weight)
 Computes (*this) += other * weight. More...
 
int addHash (int hash)
 Adds the vector into the running hash. More...
 
int addHash (int hash, double threshold)
 Adds the vector into the running hash. More...
 
bool almostEqual (const LMatrix4d other)
 Returns true if two matrices are memberwise equal within a default tolerance based on the numeric type. More...
 
bool almostEqual (const LMatrix4d other, double threshold)
 Returns true if two matrices are memberwise equal within a specified tolerance. More...
 
 begin ()
 Returns an iterator that may be used to traverse the elements of the matrix, STL-style. More...
 
 begin ()
 Returns an iterator that may be used to traverse the elements of the matrix, STL-style. More...
 
int compareTo (const LMatrix4d other)
 This flavor of compare_to uses a default threshold value based on the numeric type. More...
 
int compareTo (const LMatrix4d other, double threshold)
 Sorts matrices lexicographically, componentwise. More...
 
 componentwiseMult (const LMatrix4d other)
 
 end ()
 Returns an iterator that may be used to traverse the elements of the matrix, STL-style. More...
 
 end ()
 Returns an iterator that may be used to traverse the elements of the matrix, STL-style. More...
 
 fill (double fill_value)
 Sets each element of the matrix to the indicated fill_value. More...
 
 generateHash (ChecksumHashGenerator hashgen)
 Adds the vector to the indicated hash generator. More...
 
 generateHash (ChecksumHashGenerator hashgen, double scale)
 Adds the vector to the indicated hash generator. More...
 
double getCell (int row, int col)
 Returns a particular element of the matrix. More...
 
LVecBase4d getCol (int col)
 Retrieves the indicated column of the matrix as a 4-component vector. More...
 
LVecBase3d getCol3 (int col)
 Retrieves the indicated column of the matrix as a 3-component vector, ignoring the last row. More...
 
list getCols ()
 
 getData ()
 Returns the address of the first of the nine data elements in the matrix. More...
 
int getHash ()
 Returns a suitable hash for phash_map. More...
 
int getHash (double threshold)
 Returns a suitable hash for phash_map. More...
 
int getNumComponents ()
 Returns the number of elements in the matrix, 16. More...
 
 getRow (LVecBase4d result_vec, int row)
 Stores the indicated row of the matrix as a 4-component vector. More...
 
LVecBase4d getRow (int row)
 Retrieves the indicated row of the matrix as a 4-component vector. More...
 
 getRow3 (LVecBase3d result_vec, int row)
 Stores the row column of the matrix as a 3-component vector, ignoring the last column. More...
 
LVecBase3d getRow3 (int row)
 Retrieves the row column of the matrix as a 3-component vector, ignoring the last column. More...
 
list getRow3s ()
 
list getRows ()
 
LMatrix3d getUpper3 ()
 Retrieves the upper 3x3 submatrix. More...
 
bool invertAffineFrom (const LMatrix4d other)
 
bool invertFrom (const LMatrix4d other)
 Computes the inverse of the other matrix, and stores the result in this matrix. More...
 
bool invertInPlace ()
 Inverts the current matrix. More...
 
bool isIdentity ()
 Returns true if this is (close enough to) the identity matrix, false otherwise. More...
 
bool isNan ()
 Returns true if any component of the matrix is not-a-number, false otherwise. More...
 
 multiply (const LMatrix4d other1, const LMatrix4d other2)
 
bool operator != (const LMatrix4d other)
 
LMatrix4d operator * (const LMatrix4d other)
 
LMatrix4d operator * (double scalar)
 
LMatrix4d operator *= (const LMatrix4d other)
 
LMatrix4d operator *= (double scalar)
 
LMatrix4d operator -= (const LMatrix4d other)
 Performs a memberwise addition between two matrices. More...
 
LMatrix4d::Row operator [] (int i)
 
LMatrix4d::CRow operator [] (int i)
 
 operator new (int size)
 
 operator() (int row, int col)
 
double operator() (int row, int col)
 
LMatrix4d operator+= (const LMatrix4d other)
 Performs a memberwise addition between two matrices. More...
 
LMatrix4d operator/ (double scalar)
 
LMatrix4d operator/= (double scalar)
 
bool operator< (const LMatrix4d other)
 
LMatrix4d operator= (const LMatrix4d other)
 
LMatrix4d operator= (const UnalignedLMatrix4d other)
 
LMatrix4d operator= (double fill_value)
 
bool operator== (const LMatrix4d other)
 
 output (Ostream out)
 
 readDatagram (DatagramIterator source)
 Reads the matrix from the Datagram using get_stdfloat(). More...
 
 readDatagramFixed (DatagramIterator scan)
 Reads the matrix from the Datagram using get_float32() or get_float64(). More...
 
 set (double e00, double e01, double e02, double e03, double e10, double e11, double e12, double e13, double e20, double e21, double e22, double e23, double e30, double e31, double e32, double e33)
 
 setCell (int row, int col, double value)
 Changes a particular element of the matrix. More...
 
 setCol (int col, const LVecBase3d v)
 Replaces the indicated column of the matrix with the indicated 3-component vector, ignoring the last row. More...
 
 setCol (int col, const LVecBase4d v)
 Replaces the indicated column of the matrix. More...
 
 setRotateMat (double angle, const LVecBase3d axis, CoordinateSystem cs)
 Sets mat to a matrix that rotates by the given angle in degrees counterclockwise about the indicated vector. More...
 
 setRotateMatNormaxis (double angle, const LVecBase3d axis, CoordinateSystem cs)
 Fills mat with a matrix that rotates by the given angle in degrees counterclockwise about the indicated vector. More...
 
 setRow (int row, const LVecBase3d v)
 Replaces the indicated row of the matrix with the indicated 3-component vector, ignoring the last column. More...
 
 setRow (int row, const LVecBase4d v)
 Replaces the indicated row of the matrix. More...
 
 setScaleMat (const LVecBase3d scale)
 Fills mat with a matrix that applies the indicated scale in each of the three axes. More...
 
 setScaleShearMat (const LVecBase3d scale, const LVecBase3d shear, CoordinateSystem cs)
 Fills mat with a matrix that applies the indicated scale and shear. More...
 
 setShearMat (const LVecBase3d shear, CoordinateSystem cs)
 Fills mat with a matrix that applies the indicated shear in each of the three planes. More...
 
 setTranslateMat (const LVecBase3d trans)
 Fills mat with a matrix that applies the indicated translation. More...
 
 setUpper3 (const LMatrix3d upper3)
 
 transposeFrom (const LMatrix4d other)
 
 transposeInPlace ()
 
 write (Ostream out, int indent_level)
 
 writeDatagram (Datagram destination)
 Writes the matrix to the Datagram using add_stdfloat(). More...
 
 writeDatagramFixed (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(). More...
 
LVecBase4d xform (const LVecBase4d v)
 4-component vector or point times matrix. More...
 
 xformInPlace (LVecBase4d v)
 4-component vector or point times matrix. More...
 
LVecBase3d xformPoint (const LVecBase3d v)
 The matrix transforms a 3-component point (including translation component) and returns the result. More...
 
LVecBase3d xformPointGeneral (const LVecBase3d v)
 The matrix transforms a 3-component point (including translation component) and returns the result, as a fully general operation. More...
 
 xformPointGeneralInPlace (LVecBase3d v)
 The matrix transforms a 3-component point (including translation component), as a fully general operation. More...
 
 xformPointInPlace (LVecBase3d v)
 The matrix transforms a 3-component point (including translation component). More...
 
LVecBase3d xformVec (const LVecBase3d v)
 The matrix transforms a 3-component vector (without translation component) and returns the result. More...
 
LVecBase3d xformVecGeneral (const LVecBase3d v)
 The matrix transforms a 3-component vector (without translation component) and returns the result, as a fully general operation. More...
 
 xformVecGeneralInPlace (LVecBase3d v)
 The matrix transforms a 3-component vector (without translation component), as a fully general operation. More...
 
 xformVecInPlace (LVecBase3d v)
 The matrix transforms a 3-component vector (without translation component). More...
 

Static Public Member Functions

static const LMatrix4d convertMat (CoordinateSystem from, CoordinateSystem to)
 Returns a matrix that transforms from the indicated coordinate system to the indicated coordinate system. More...
 
static TypeHandle getClassType ()
 
static const LMatrix4d identMat ()
 Returns an identity matrix. More...
 
static const LMatrix4d onesMat ()
 Returns an matrix filled with ones. More...
 
static LMatrix4d rotateMat (double angle, const LVecBase3d axis, CoordinateSystem cs)
 Returns a matrix that rotates by the given angle in degrees counterclockwise about the indicated vector. More...
 
static LMatrix4d rotateMatNormaxis (double angle, const LVecBase3d axis, CoordinateSystem cs)
 Returns a matrix that rotates by the given angle in degrees counterclockwise about the indicated vector. More...
 
static LMatrix4d scaleMat (const LVecBase3d scale)
 Returns a matrix that applies the indicated scale in each of the three axes. More...
 
static LMatrix4d scaleMat (double scale)
 Returns a matrix that applies the indicated uniform scale. More...
 
static LMatrix4d scaleMat (double sx, double sy, double sz)
 Returns a matrix that applies the indicated scale in each of the three axes. More...
 
static LMatrix4d scaleShearMat (const LVecBase3d scale, const LVecBase3d shear, CoordinateSystem cs)
 Returns a matrix that applies the indicated scale and shear. More...
 
static LMatrix4d scaleShearMat (double sx, double sy, double sz, double shxy, double shxz, double shyz, CoordinateSystem cs)
 Returns a matrix that applies the indicated scale and shear. More...
 
static LMatrix4d shearMat (const LVecBase3d shear, CoordinateSystem cs)
 Returns a matrix that applies the indicated shear in each of the three planes. More...
 
static LMatrix4d shearMat (double shxy, double shxz, double shyz, CoordinateSystem cs)
 Returns a matrix that applies the indicated shear in each of the three planes. More...
 
static int size ()
 Returns 4: the number of rows of a LMatrix4. More...
 
static LMatrix4d translateMat (const LVecBase3d trans)
 Returns a matrix that applies the indicated translation. More...
 
static LMatrix4d translateMat (double tx, double ty, double tz)
 Returns a matrix that applies the indicated translation. More...
 
static const LMatrix4d yToZUpMat ()
 Returns a matrix that transforms from the Y-up coordinate system to the Z-up coordinate system. More...
 
static const LMatrix4d zerosMat ()
 Returns an matrix filled with zeros. More...
 
static const LMatrix4d zToYUpMat ()
 Returns a matrix that transforms from the Y-up coordinate system to the Z-up coordinate system. More...
 

Public Attributes

LVecBase4d cols []
 
LVecBase4d rows []
 

Detailed Description

This is a 4-by-4 transform matrix.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
num_components 
is_int 

Member Function Documentation

◆ __init__() [1/7]

__init__ ( )

◆ __init__() [2/7]

__init__ ( const LMatrix3d  upper3)

◆ __init__() [3/7]

__init__ ( const LMatrix3d  upper3,
const LVecBase3d  trans 
)

◆ __init__() [4/7]

__init__ ( const LMatrix4d  other)

◆ __init__() [5/7]

__init__ ( const  LVecBase4d,
const  LVecBase4d,
const  LVecBase4d,
const  LVecBase4d 
)

Constructs the matrix from four individual rows.

◆ __init__() [6/7]

__init__ ( const UnalignedLMatrix4d  other)

◆ __init__() [7/7]

__init__ ( double  ,
double  ,
double  ,
double  ,
double  ,
double  ,
double  ,
double  ,
double  ,
double  ,
double  ,
double  ,
double  ,
double  ,
double  ,
double   
)

◆ __reduce__()

object __reduce__ ( )

◆ __repr__()

str __repr__ ( )

◆ accumulate()

accumulate ( const LMatrix4d  other,
double  weight 
)

Computes (*this) += other * weight.

◆ addHash() [1/2]

int addHash ( int  hash)

Adds the vector into the running hash.

◆ addHash() [2/2]

int addHash ( int  hash,
double  threshold 
)

Adds the vector into the running hash.

◆ almostEqual() [1/2]

bool almostEqual ( const LMatrix4d  other)

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

◆ almostEqual() [2/2]

bool almostEqual ( const LMatrix4d  other,
double  threshold 
)

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.

◆ begin() [1/2]

begin ( )

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

◆ begin() [2/2]

begin ( )

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

◆ compareTo() [1/2]

int compareTo ( const LMatrix4d  other)

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

◆ compareTo() [2/2]

int compareTo ( const LMatrix4d  other,
double  threshold 
)

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

componentwiseMult ( const LMatrix4d  other)

◆ convertMat()

static const LMatrix4d convertMat ( CoordinateSystem  from,
CoordinateSystem  to 
)
static

Returns a matrix that transforms from the indicated coordinate system to the indicated coordinate system.

◆ end() [1/2]

end ( )

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

◆ end() [2/2]

end ( )

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

◆ fill()

fill ( double  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.

◆ generateHash() [1/2]

generateHash ( ChecksumHashGenerator  hashgen)

Adds the vector to the indicated hash generator.

◆ generateHash() [2/2]

generateHash ( ChecksumHashGenerator  hashgen,
double  scale 
)

Adds the vector to the indicated hash generator.

◆ getCell()

double getCell ( int  row,
int  col 
)

Returns a particular element of the matrix.

◆ getClassType()

static TypeHandle getClassType ( )
static

◆ getCol()

LVecBase4d getCol ( int  col)

Retrieves the indicated column of the matrix as a 4-component vector.

◆ getCol3()

LVecBase3d getCol3 ( int  col)

Retrieves the indicated column of the matrix as a 3-component vector, ignoring the last row.

◆ getCols()

list getCols ( )

◆ getData()

getData ( )

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() [1/2]

int getHash ( )

Returns a suitable hash for phash_map.

◆ getHash() [2/2]

int getHash ( double  threshold)

Returns a suitable hash for phash_map.

◆ getNumComponents()

int getNumComponents ( )

Returns the number of elements in the matrix, 16.

◆ getRow() [1/2]

getRow ( LVecBase4d  result_vec,
int  row 
)

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

◆ getRow() [2/2]

LVecBase4d getRow ( int  row)

Retrieves the indicated row of the matrix as a 4-component vector.

◆ getRow3() [1/2]

getRow3 ( LVecBase3d  result_vec,
int  row 
)

Stores the row column of the matrix as a 3-component vector, ignoring the last column.

◆ getRow3() [2/2]

LVecBase3d getRow3 ( int  row)

Retrieves the row column of the matrix as a 3-component vector, ignoring the last column.

◆ getRow3s()

list getRow3s ( )

◆ getRows()

list getRows ( )

◆ getUpper3()

LMatrix3d getUpper3 ( )

Retrieves the upper 3x3 submatrix.

◆ identMat()

static const LMatrix4d identMat ( )
static

Returns an identity matrix.

This function definition must appear first, since some inline functions below take advantage of it.

◆ invertAffineFrom()

bool invertAffineFrom ( const LMatrix4d  other)

◆ invertFrom()

bool invertFrom ( const LMatrix4d  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 the was a singularity.

◆ invertInPlace()

bool invertInPlace ( )

Inverts the current matrix.

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

◆ isIdentity()

bool isIdentity ( )

Returns true if this is (close enough to) the identity matrix, false otherwise.

◆ isNan()

bool isNan ( )

Returns true if any component of the matrix is not-a-number, false otherwise.

◆ multiply()

multiply ( const LMatrix4d  other1,
const LMatrix4d  other2 
)

◆ onesMat()

static const LMatrix4d onesMat ( )
static

Returns an matrix filled with ones.

◆ operator !=()

bool operator != ( const LMatrix4d  other)

◆ operator *() [1/2]

LMatrix4d operator * ( const LMatrix4d  other)

◆ operator *() [2/2]

LMatrix4d operator * ( double  scalar)

◆ operator *=() [1/2]

LMatrix4d operator *= ( const LMatrix4d  other)

◆ operator *=() [2/2]

LMatrix4d operator *= ( double  scalar)

◆ operator -=()

LMatrix4d operator -= ( const LMatrix4d  other)

Performs a memberwise addition between two matrices.

◆ operator []() [1/2]

LMatrix4d::Row operator [] ( int  i)

◆ operator []() [2/2]

LMatrix4d::CRow operator [] ( int  i)

◆ operator new()

operator new ( int  size)

◆ operator()() [1/2]

operator() ( int  row,
int  col 
)

◆ operator()() [2/2]

double operator() ( int  row,
int  col 
)

◆ operator+=()

LMatrix4d operator+= ( const LMatrix4d  other)

Performs a memberwise addition between two matrices.

◆ operator/()

LMatrix4d operator/ ( double  scalar)

◆ operator/=()

LMatrix4d operator/= ( double  scalar)

◆ operator<()

bool operator< ( const LMatrix4d  other)

◆ operator=() [1/3]

LMatrix4d operator= ( const LMatrix4d  other)

◆ operator=() [2/3]

LMatrix4d operator= ( const UnalignedLMatrix4d  other)

◆ operator=() [3/3]

LMatrix4d operator= ( double  fill_value)

◆ operator==()

bool operator== ( const LMatrix4d  other)

◆ output()

output ( Ostream  out)

◆ readDatagram()

readDatagram ( DatagramIterator  source)

Reads the matrix from the Datagram using get_stdfloat().

◆ readDatagramFixed()

readDatagramFixed ( DatagramIterator  scan)

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

See write_datagram_fixed().

◆ rotateMat()

static LMatrix4d rotateMat ( double  angle,
const LVecBase3d  axis,
CoordinateSystem  cs 
)
static

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

◆ rotateMatNormaxis()

static LMatrix4d rotateMatNormaxis ( double  angle,
const LVecBase3d  axis,
CoordinateSystem  cs 
)
static

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

Assumes axis has been prenormalized.

◆ scaleMat() [1/3]

static LMatrix4d scaleMat ( const LVecBase3d  scale)
static

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

◆ scaleMat() [2/3]

static LMatrix4d scaleMat ( double  scale)
static

Returns a matrix that applies the indicated uniform scale.

◆ scaleMat() [3/3]

static LMatrix4d scaleMat ( double  sx,
double  sy,
double  sz 
)
static

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

◆ scaleShearMat() [1/2]

static LMatrix4d scaleShearMat ( const LVecBase3d  scale,
const LVecBase3d  shear,
CoordinateSystem  cs 
)
static

Returns a matrix that applies the indicated scale and shear.

◆ scaleShearMat() [2/2]

static LMatrix4d scaleShearMat ( double  sx,
double  sy,
double  sz,
double  shxy,
double  shxz,
double  shyz,
CoordinateSystem  cs 
)
static

Returns a matrix that applies the indicated scale and shear.

◆ set()

set ( double  e00,
double  e01,
double  e02,
double  e03,
double  e10,
double  e11,
double  e12,
double  e13,
double  e20,
double  e21,
double  e22,
double  e23,
double  e30,
double  e31,
double  e32,
double  e33 
)

◆ setCell()

setCell ( int  row,
int  col,
double  value 
)

Changes a particular element of the matrix.

◆ setCol() [1/2]

setCol ( int  col,
const LVecBase3d  v 
)

Replaces the indicated column of the matrix with the indicated 3-component vector, ignoring the last row.

◆ setCol() [2/2]

setCol ( int  col,
const LVecBase4d  v 
)

Replaces the indicated column of the matrix.

◆ setRotateMat()

setRotateMat ( double  angle,
const LVecBase3d  axis,
CoordinateSystem  cs 
)

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

◆ setRotateMatNormaxis()

setRotateMatNormaxis ( double  angle,
const LVecBase3d  axis,
CoordinateSystem  cs 
)

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

Assumes axis has been prenormalized.

◆ setRow() [1/2]

setRow ( int  row,
const LVecBase3d  v 
)

Replaces the indicated row of the matrix with the indicated 3-component vector, ignoring the last column.

◆ setRow() [2/2]

setRow ( int  row,
const LVecBase4d  v 
)

Replaces the indicated row of the matrix.

◆ setScaleMat()

setScaleMat ( const LVecBase3d  scale)

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

◆ setScaleShearMat()

setScaleShearMat ( const LVecBase3d  scale,
const LVecBase3d  shear,
CoordinateSystem  cs 
)

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

◆ setShearMat()

setShearMat ( const LVecBase3d  shear,
CoordinateSystem  cs 
)

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

◆ setTranslateMat()

setTranslateMat ( const LVecBase3d  trans)

Fills mat with a matrix that applies the indicated translation.

◆ setUpper3()

setUpper3 ( const LMatrix3d  upper3)

◆ shearMat() [1/2]

static LMatrix4d shearMat ( const LVecBase3d  shear,
CoordinateSystem  cs 
)
static

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

◆ shearMat() [2/2]

static LMatrix4d shearMat ( double  shxy,
double  shxz,
double  shyz,
CoordinateSystem  cs 
)
static

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

◆ size()

static int size ( )
static

Returns 4: the number of rows of a LMatrix4.

◆ translateMat() [1/2]

static LMatrix4d translateMat ( const LVecBase3d  trans)
static

Returns a matrix that applies the indicated translation.

◆ translateMat() [2/2]

static LMatrix4d translateMat ( double  tx,
double  ty,
double  tz 
)
static

Returns a matrix that applies the indicated translation.

◆ transposeFrom()

transposeFrom ( const LMatrix4d  other)

◆ transposeInPlace()

transposeInPlace ( )

◆ write()

write ( Ostream  out,
int  indent_level 
)

◆ writeDatagram()

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

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

LVecBase4d xform ( const LVecBase4d  v)

4-component vector or point times matrix.

This is a fully general operation.

◆ xformInPlace()

xformInPlace ( LVecBase4d  v)

4-component vector or point times matrix.

This is a fully general operation.

◆ xformPoint()

LVecBase3d xformPoint ( const LVecBase3d  v)

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

This assumes the matrix is an affine transform.

◆ xformPointGeneral()

LVecBase3d xformPointGeneral ( const LVecBase3d  v)

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

◆ xformPointGeneralInPlace()

xformPointGeneralInPlace ( LVecBase3d  v)

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

◆ xformPointInPlace()

xformPointInPlace ( LVecBase3d  v)

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

This assumes the matrix is an affine transform.

◆ xformVec()

LVecBase3d xformVec ( const LVecBase3d  v)

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

This assumes the matrix is an orthonormal transform.

◆ xformVecGeneral()

LVecBase3d xformVecGeneral ( const LVecBase3d  v)

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

◆ xformVecGeneralInPlace()

xformVecGeneralInPlace ( LVecBase3d  v)

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

◆ xformVecInPlace()

xformVecInPlace ( LVecBase3d  v)

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

This assumes the matrix is an orthonormal transform.

◆ yToZUpMat()

static const LMatrix4d yToZUpMat ( )
static

Returns a matrix that transforms from the Y-up coordinate system to the Z-up coordinate system.

◆ zerosMat()

static const LMatrix4d zerosMat ( )
static

Returns an matrix filled with zeros.

◆ zToYUpMat()

static const LMatrix4d zToYUpMat ( )
static

Returns a matrix that transforms from the Y-up coordinate system to the Z-up coordinate system.

Member Data Documentation

◆ cols

LVecBase4d cols[]

◆ rows

LVecBase4d rows[]