Panda3D
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
LMatrix3f Class Reference

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

#include <pandadoc.hpp>

Classes

class  CRow
 
class  Row
 

Public Types

enum  { num_components = 9 , is_int = 0 }
 

Public Member Functions

 __init__ ()
 
 __init__ (const LMatrix3f other)
 
 __init__ (const LVecBase3f, const LVecBase3f, const LVecBase3f)
 Constructs the matrix from three individual rows.
 
 __init__ (float, float, float, float, float, float, float, float, float)
 
object __reduce__ ()
 
str __repr__ ()
 
int addHash (int hash)
 Adds the vector into the running hash.
 
int addHash (int hash, float threshold)
 Adds the vector into the running hash.
 
bool almostEqual (const LMatrix3f other)
 Returns true if two matrices are memberwise equal within a default tolerance based on the numeric type.
 
bool almostEqual (const LMatrix3f other, float threshold)
 Returns true if two matrices are memberwise equal within a specified tolerance.
 
int compareTo (const LMatrix3f other)
 This flavor of compare_to uses a default threshold value based on the numeric type.
 
int compareTo (const LMatrix3f other, float threshold)
 Sorts matrices lexicographically, componentwise.
 
 componentwiseMult (const LMatrix3f other)
 
float determinant ()
 Returns the determinant of the matrix.
 
 fill (float fill_value)
 Sets each element of the matrix to the indicated fill_value.
 
 generateHash (ChecksumHashGenerator hashgen)
 Adds the vector to the indicated hash generator.
 
 generateHash (ChecksumHashGenerator hashgen, float threshold)
 Adds the vector to the indicated hash generator.
 
float getCell (int row, int col)
 Returns a particular element of the matrix.
 
LVecBase3f getCol (int col)
 Returns the indicated column of the matrix as a three-component vector.
 
LVecBase2f getCol2 (int col)
 Returns the indicated column of the matrix as a two-component vector, ignoring the last row.
 
list getCol2s ()
 
list getCols ()
 
 getData ()
 Returns the address of the first of the nine data elements in the matrix.
 
int getHash ()
 Returns a suitable hash for phash_map.
 
int getHash (float threshold)
 Returns a suitable hash for phash_map.
 
int getNumComponents ()
 Returns the number of elements in the matrix, nine.
 
LVecBase3f getRow (int row)
 Returns the indicated row of the matrix as a three-component vector.
 
 getRow (LVecBase3f result_vec, int row)
 Stores the indicated row of the matrix as a three-component vector.
 
LVecBase2f getRow2 (int row)
 Returns the indicated row of the matrix as a two-component vector, ignoring the last column.
 
list getRow2s ()
 
list getRows ()
 
bool invertFrom (const LMatrix3f other)
 Computes the inverse of the other matrix, and stores the result in this matrix.
 
bool invertInPlace ()
 Inverts the current matrix.
 
bool invertTransposeFrom (const LMatrix3f other)
 Simultaneously computes the inverse of the indicated matrix, and then the transpose of that inverse.
 
bool invertTransposeFrom (const LMatrix4f other)
 Simultaneously computes the inverse of the indicated matrix, and then the transpose of that inverse.
 
bool isIdentity ()
 Returns true if this is (close enough to) the identity matrix, false otherwise.
 
bool isNan ()
 Returns true if any component of the matrix is not-a-number, false otherwise.
 
 multiply (const LMatrix3f other1, const LMatrix3f other2)
 
 operator new (int size)
 
bool operator!= (const LMatrix3f other)
 
 operator() (int row, int col)
 
float operator() (int row, int col)
 
LMatrix3f operator* (const LMatrix3f other)
 
LMatrix3f operator* (float scalar)
 
LMatrix3f operator*= (const LMatrix3f other)
 
LMatrix3f operator*= (float scalar)
 Performs a memberwise scale.
 
LMatrix3f operator+= (const LMatrix3f other)
 Performs a memberwise addition between two matrices.
 
LMatrix3f operator-= (const LMatrix3f other)
 Performs a memberwise subtraction between two matrices.
 
LMatrix3f operator/ (float scalar)
 
LMatrix3f operator/= (float scalar)
 Performs a memberwise scale.
 
bool operator< (const LMatrix3f other)
 
LMatrix3f operator= (const LMatrix3f other)
 
LMatrix3f operator= (float fill_value)
 
bool operator== (const LMatrix3f other)
 
LMatrix3f::Row operator[] (int i)
 
LMatrix3f::CRow operator[] (int i)
 
 output (Ostream out)
 
 readDatagram (DatagramIterator source)
 Reads the matrix from the Datagram using get_stdfloat().
 
 readDatagramFixed (DatagramIterator scan)
 Reads the matrix from the Datagram using get_float32() or get_float64().
 
 set (float e00, float e01, float e02, float e10, float e11, float e12, float e20, float e21, float e22)
 
 setCell (int row, int col, float value)
 Changes a particular element of the matrix.
 
 setCol (int col, const LVecBase2f v)
 Replaces the indicated column of the matrix from a two-component vector, ignoring the last row.
 
 setCol (int col, const LVecBase3f v)
 Replaces the indicated column of the matrix from a three-component vector.
 
 setRotateMat (float angle)
 Fills mat with a matrix that rotates by the given angle in degrees counterclockwise.
 
 setRotateMat (float angle, const LVecBase3f axis, CoordinateSystem cs)
 Fills mat with a matrix that rotates by the given angle in degrees counterclockwise about the indicated vector.
 
 setRotateMatNormaxis (float angle, const LVecBase3f axis, CoordinateSystem cs)
 Fills mat with a matrix that rotates by the given angle in degrees counterclockwise about the indicated vector.
 
 setRow (int row, const LVecBase2f v)
 Replaces the indicated row of the matrix from a two-component vector, ignoring the last column.
 
 setRow (int row, const LVecBase3f v)
 Replaces the indicated row of the matrix from a three-component vector.
 
 setScaleMat (const LVecBase2f scale)
 Fills mat with a matrix that applies the indicated scale in each of the two axes.
 
 setScaleMat (const LVecBase3f scale)
 Fills mat with a matrix that applies the indicated scale in each of the three axes.
 
 setScaleShearMat (const LVecBase3f scale, const LVecBase3f shear, CoordinateSystem cs)
 Fills mat with a matrix that applies the indicated scale and shear.
 
 setShearMat (const LVecBase3f shear, CoordinateSystem cs)
 Fills mat with a matrix that applies the indicated shear in each of the three planes.
 
 setTranslateMat (const LVecBase2f trans)
 Fills mat with a matrix that applies the indicated translation.
 
 transposeFrom (const LMatrix3f other)
 
 transposeInPlace ()
 
 write (Ostream out, int indent_level)
 
 writeDatagram (Datagram destination)
 Writes the matrix to the Datagram using add_stdfloat().
 
 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().
 
LVecBase3f xform (const LVecBase3f v)
 3-component vector or point times matrix.
 
 xformInPlace (LVecBase3f v)
 3-component vector or point times matrix.
 
LVecBase2f xformPoint (const LVecBase2f v)
 The matrix transforms a 2-component point (including translation component) and returns the result.
 
 xformPointInPlace (LVecBase2f v)
 The matrix transforms a 2-component point (including translation component).
 
LVecBase2f xformVec (const LVecBase2f v)
 The matrix transforms a 2-component vector (without translation component) and returns the result.
 
LVecBase3f xformVec (const LVecBase3f v)
 The matrix transforms a 3-component vector and returns the result.
 
LVecBase3f xformVecGeneral (const LVecBase3f v)
 The matrix transforms a 3-component vector (without translation component) and returns the result, as a fully general operation.
 
 xformVecGeneralInPlace (LVecBase3f v)
 The matrix transforms a 3-component vector (without translation component), as a fully general operation.
 
 xformVecInPlace (LVecBase2f v)
 The matrix transforms a 2-component vector (without translation component).
 
 xformVecInPlace (LVecBase3f v)
 The matrix transforms a 3-component vector.
 

Static Public Member Functions

static const LMatrix3f convertMat (CoordinateSystem from, CoordinateSystem to)
 Returns a matrix that transforms from the indicated coordinate system to the indicated coordinate system.
 
static TypeHandle getClassType ()
 
static const LMatrix3f identMat ()
 Returns an identity matrix.
 
static LMatrix3f rotateMat (float angle)
 Returns a matrix that rotates by the given angle in degrees counterclockwise.
 
static LMatrix3f rotateMat (float angle, const LVecBase3f axis, CoordinateSystem cs)
 Returns a matrix that rotates by the given angle in degrees counterclockwise about the indicated vector.
 
static LMatrix3f rotateMatNormaxis (float angle, const LVecBase3f axis, CoordinateSystem cs)
 Returns a matrix that rotates by the given angle in degrees counterclockwise about the indicated vector.
 
static LMatrix3f scaleMat (const LVecBase2f scale)
 Returns a matrix that applies the indicated scale in each of the two axes.
 
static LMatrix3f scaleMat (const LVecBase3f scale)
 Returns a matrix that applies the indicated scale in each of the three axes.
 
static LMatrix3f scaleMat (float sx, float sy)
 Returns a matrix that applies the indicated scale in each of the two axes.
 
static LMatrix3f scaleMat (float sx, float sy, float sz)
 Returns a matrix that applies the indicated scale in each of the three axes.
 
static LMatrix3f scaleShearMat (const LVecBase3f scale, const LVecBase3f shear, CoordinateSystem cs)
 Returns a matrix that applies the indicated scale and shear.
 
static LMatrix3f scaleShearMat (float sx, float sy, float sz, float shxy, float shxz, float shyz, CoordinateSystem cs)
 Returns a matrix that applies the indicated scale and shear.
 
static LMatrix3f shearMat (const LVecBase3f shear, CoordinateSystem cs)
 Returns a matrix that applies the indicated shear in each of the three planes.
 
static LMatrix3f shearMat (float shxy, float shxz, float shyz, CoordinateSystem cs)
 Returns a matrix that applies the indicated shear in each of the three planes.
 
static int size ()
 Returns 3: the number of rows of a LMatrix3.
 
static LMatrix3f translateMat (const LVecBase2f trans)
 Returns a matrix that applies the indicated translation.
 
static LMatrix3f translateMat (float tx, float ty)
 Returns a matrix that applies the indicated translation.
 

Public Attributes

LVecBase3f cols []
 Returns the indicated column of the matrix as a three-component vector.
 
LVecBase3f rows []
 Returns the indicated row of the matrix as a three-component vector.
 

Detailed 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.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
num_components 
is_int 

Member Function Documentation

◆ __init__() [1/4]

__init__ ( )

◆ __init__() [2/4]

__init__ ( const LMatrix3f other)

◆ __init__() [3/4]

__init__ ( const LVecBase3f ,
const LVecBase3f ,
const LVecBase3f  )

Constructs the matrix from three individual rows.

◆ __init__() [4/4]

__init__ ( float ,
float ,
float ,
float ,
float ,
float ,
float ,
float ,
float  )

◆ __reduce__()

object __reduce__ ( )

◆ __repr__()

str __repr__ ( )

◆ addHash() [1/2]

int addHash ( int hash)

Adds the vector into the running hash.

◆ addHash() [2/2]

int addHash ( int hash,
float threshold )

Adds the vector into the running hash.

◆ almostEqual() [1/2]

bool almostEqual ( const LMatrix3f other)

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

◆ almostEqual() [2/2]

bool almostEqual ( const LMatrix3f other,
float threshold )

Returns true if two matrices are memberwise equal within a specified tolerance.

◆ compareTo() [1/2]

int compareTo ( const LMatrix3f other)

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

◆ compareTo() [2/2]

int compareTo ( const LMatrix3f other,
float 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 LMatrix3f other)

◆ convertMat()

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

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

◆ determinant()

float determinant ( )

Returns the determinant of the matrix.

◆ fill()

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

◆ generateHash() [1/2]

generateHash ( ChecksumHashGenerator hashgen)

Adds the vector to the indicated hash generator.

◆ generateHash() [2/2]

generateHash ( ChecksumHashGenerator hashgen,
float threshold )

Adds the vector to the indicated hash generator.

◆ getCell()

float getCell ( int row,
int col )

Returns a particular element of the matrix.

◆ getClassType()

static TypeHandle getClassType ( )
static

◆ getCol()

LVecBase3f getCol ( int col)

Returns the indicated column of the matrix as a three-component vector.

◆ getCol2()

LVecBase2f getCol2 ( int col)

Returns the indicated column of the matrix as a two-component vector, ignoring the last row.

◆ getCol2s()

list getCol2s ( )

◆ 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 ( float threshold)

Returns a suitable hash for phash_map.

◆ getNumComponents()

int getNumComponents ( )

Returns the number of elements in the matrix, nine.

◆ getRow() [1/2]

LVecBase3f getRow ( int row)

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

◆ getRow() [2/2]

getRow ( LVecBase3f result_vec,
int row )

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

◆ getRow2()

LVecBase2f getRow2 ( int row)

Returns the indicated row of the matrix as a two-component vector, ignoring the last column.

◆ getRow2s()

list getRow2s ( )

◆ getRows()

list getRows ( )

◆ identMat()

static const LMatrix3f identMat ( )
static

Returns an identity matrix.

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

◆ invertFrom()

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

bool invertInPlace ( )

Inverts the current matrix.

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

◆ invertTransposeFrom() [1/2]

bool invertTransposeFrom ( const LMatrix3f other)

Simultaneously computes the inverse of the indicated matrix, and then the transpose of that inverse.

◆ invertTransposeFrom() [2/2]

bool invertTransposeFrom ( const LMatrix4f other)

Simultaneously computes the inverse of the indicated matrix, and then the transpose of that inverse.

◆ 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 LMatrix3f other1,
const LMatrix3f other2 )

◆ operator new()

operator new ( int size)

◆ operator!=()

bool operator!= ( const LMatrix3f other)

◆ operator()() [1/2]

operator() ( int row,
int col )

◆ operator()() [2/2]

float operator() ( int row,
int col )

◆ operator*() [1/2]

LMatrix3f operator* ( const LMatrix3f other)

◆ operator*() [2/2]

LMatrix3f operator* ( float scalar)

◆ operator*=() [1/2]

LMatrix3f operator*= ( const LMatrix3f other)

◆ operator*=() [2/2]

LMatrix3f operator*= ( float scalar)

Performs a memberwise scale.

◆ operator+=()

LMatrix3f operator+= ( const LMatrix3f other)

Performs a memberwise addition between two matrices.

◆ operator-=()

LMatrix3f operator-= ( const LMatrix3f other)

Performs a memberwise subtraction between two matrices.

◆ operator/()

LMatrix3f operator/ ( float scalar)

◆ operator/=()

LMatrix3f operator/= ( float scalar)

Performs a memberwise scale.

◆ operator<()

bool operator< ( const LMatrix3f other)

◆ operator=() [1/2]

LMatrix3f operator= ( const LMatrix3f other)

◆ operator=() [2/2]

LMatrix3f operator= ( float fill_value)

◆ operator==()

bool operator== ( const LMatrix3f other)

◆ operator[]() [1/2]

LMatrix3f::Row operator[] ( int i)

◆ operator[]() [2/2]

LMatrix3f::CRow operator[] ( int i)

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

static LMatrix3f rotateMat ( float angle)
static

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

◆ rotateMat() [2/2]

static LMatrix3f rotateMat ( float angle,
const LVecBase3f axis,
CoordinateSystem cs )
static

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

◆ rotateMatNormaxis()

static LMatrix3f rotateMatNormaxis ( float angle,
const LVecBase3f axis,
CoordinateSystem cs )
static

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

Assumes axis has been normalized.

◆ scaleMat() [1/4]

static LMatrix3f scaleMat ( const LVecBase2f scale)
static

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

◆ scaleMat() [2/4]

static LMatrix3f scaleMat ( const LVecBase3f scale)
static

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

◆ scaleMat() [3/4]

static LMatrix3f scaleMat ( float sx,
float sy )
static

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

◆ scaleMat() [4/4]

static LMatrix3f scaleMat ( float sx,
float sy,
float sz )
static

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

◆ scaleShearMat() [1/2]

static LMatrix3f scaleShearMat ( const LVecBase3f scale,
const LVecBase3f shear,
CoordinateSystem cs )
static

Returns a matrix that applies the indicated scale and shear.

◆ scaleShearMat() [2/2]

static LMatrix3f scaleShearMat ( float sx,
float sy,
float sz,
float shxy,
float shxz,
float shyz,
CoordinateSystem cs )
static

Returns a matrix that applies the indicated scale and shear.

◆ set()

set ( float e00,
float e01,
float e02,
float e10,
float e11,
float e12,
float e20,
float e21,
float e22 )

◆ setCell()

setCell ( int row,
int col,
float value )

Changes a particular element of the matrix.

◆ setCol() [1/2]

setCol ( int col,
const LVecBase2f v )

Replaces the indicated column of the matrix from a two-component vector, ignoring the last row.

◆ setCol() [2/2]

setCol ( int col,
const LVecBase3f v )

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

◆ setRotateMat() [1/2]

setRotateMat ( float angle)

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

◆ setRotateMat() [2/2]

setRotateMat ( float angle,
const LVecBase3f axis,
CoordinateSystem cs )

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

◆ setRotateMatNormaxis()

setRotateMatNormaxis ( float angle,
const LVecBase3f 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 normalized.

◆ setRow() [1/2]

setRow ( int row,
const LVecBase2f v )

Replaces the indicated row of the matrix from a two-component vector, ignoring the last column.

◆ setRow() [2/2]

setRow ( int row,
const LVecBase3f v )

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

◆ setScaleMat() [1/2]

setScaleMat ( const LVecBase2f scale)

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

◆ setScaleMat() [2/2]

setScaleMat ( const LVecBase3f scale)

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

◆ setScaleShearMat()

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

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

◆ setShearMat()

setShearMat ( const LVecBase3f shear,
CoordinateSystem cs )

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

◆ setTranslateMat()

setTranslateMat ( const LVecBase2f trans)

Fills mat with a matrix that applies the indicated translation.

◆ shearMat() [1/2]

static LMatrix3f shearMat ( const LVecBase3f shear,
CoordinateSystem cs )
static

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

◆ shearMat() [2/2]

static LMatrix3f shearMat ( float shxy,
float shxz,
float shyz,
CoordinateSystem cs )
static

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

◆ size()

static int size ( )
static

Returns 3: the number of rows of a LMatrix3.

◆ translateMat() [1/2]

static LMatrix3f translateMat ( const LVecBase2f trans)
static

Returns a matrix that applies the indicated translation.

◆ translateMat() [2/2]

static LMatrix3f translateMat ( float tx,
float ty )
static

Returns a matrix that applies the indicated translation.

◆ transposeFrom()

transposeFrom ( const LMatrix3f 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()

LVecBase3f xform ( const LVecBase3f v)

3-component vector or point times matrix.

◆ xformInPlace()

xformInPlace ( LVecBase3f v)

3-component vector or point times matrix.

◆ xformPoint()

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

xformPointInPlace ( LVecBase2f v)

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

This assumes the matrix is an affine transform.

◆ xformVec() [1/2]

LVecBase2f xformVec ( const LVecBase2f v)

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

This assumes the matrix is an affine transform.

◆ xformVec() [2/2]

LVecBase3f xformVec ( const LVecBase3f v)

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

LVecBase3f xformVecGeneral ( const LVecBase3f v)

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

◆ xformVecGeneralInPlace()

xformVecGeneralInPlace ( LVecBase3f v)

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

◆ xformVecInPlace() [1/2]

xformVecInPlace ( LVecBase2f v)

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

This assumes the matrix is an affine transform.

◆ xformVecInPlace() [2/2]

xformVecInPlace ( LVecBase3f v)

The matrix transforms a 3-component vector.

This assumes the matrix is an orthonormal transform.

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

Member Data Documentation

◆ cols

LVecBase3f cols[]

Returns the indicated column of the matrix as a three-component vector.

◆ rows

LVecBase3f rows[]

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

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