Mat4 is a 4x4 matrix class that can be used to perform general affine or projective transformations in 3D space. More...
#include <mat4.H>
Inheritance diagram for mlib::Mat4< M, P, V, L, Q >:
Public Member Functions | |
Constructors | |
Mat4 () | |
Default constructor. Creates an identity matrix. | |
Mat4 (Vec4 row0, Vec4 row1, Vec4 row2, Vec4 row3, bool perspec=false) | |
Constructor that creates a matrix with rows equal to the vectors givens as arguments. Perspective can also be set. | |
Mat4 (const P &origin, const V &x_dir, const V &y_dir, const V &z_dir) | |
This constructor creates a rigid motion transform from an origin and directions of x, y and z axes. | |
Mat4 (const V &col0, const V &col1, const V &col2) | |
This constructor creates a linear map (no translation) whose columns are the given vectors. | |
Mat4 (const P &origin, const V &xDir, const V &yDir) | |
This constructor creates a rigid motion transform from an origin and direction of x and y axis. If yDir is not perpendicular to xDir, yDir will be adjusted. | |
Mat4 (const L &axis) | |
This constructor creates a rigid motion transform from an origin (axis.point) and the direction of the z axis (axis.vector). The directions of the x and y axes are determined according to an arbitrary axis algorithm. | |
Mat4 (const P &origin) | |
The constructor creates a rigid motion transform from an origin. The x, y and z axis are aligned with the world x, y and z axis. | |
Element Access Functions | |
Functions that allow you to get or set the elements of the matrix in various different ways. | |
double & | operator() (int i1, int i2) |
Returns a reference to the cell (i1, i2) in the matrix. No bounds checking is performed in this function. | |
double | operator() (int i1, int i2) const |
Returns the value in the cell (i1, i2) in the matrix. No bounds checking is performed in this function. | |
Vec4 & | operator[] (int i) |
Returns a reference to row i as a Vec4. No bounds checking is performed in this function. | |
Vec4 | operator[] (int i) const |
Returns the value of row i as a Vec4. No bounds checking is performed in this function. | |
V | get_scale () const |
void | get_coord_system (P &o, V &x, V &y, V &z) const |
V | X () const |
Returns the x-axis of the coordinate system defined by the matrix as a vector. | |
V | Y () const |
Returns the y-axis of the coordinate system defined by the matrix as a vector. | |
V | Z () const |
Returns the z-axis of the coordinate system defined by the matrix as a vector. | |
P | origin () const |
Returns the origin of the coordinate system defined by the matrix as a point. | |
const double * | matrix () const |
Returns the elements of the matrix as a 1D array (in row major layout). | |
void | set_X (const V &x) |
Set the x-axis of the coordinate system defined by the matrix. | |
void | set_Y (const V &y) |
Set the y-axis of the coordinate system defined by the matrix. | |
void | set_Z (const V &z) |
Set the z-axis of the coordinate system defined by the matrix. | |
void | set_origin (const P &o) |
Set the origin of the coordinate system defined by the matrix. | |
M | rotation () const |
Returns the rotation part of the transform. | |
Matrix Operations | |
M | transpose () const |
Return the transpose of the matrix. | |
double | det () const |
Return the determinant of the matrix. | |
double | trace () const |
Return the trace of the matrix. | |
M | adjoint () const |
Return the adjoint of the matrix. | |
M | unscaled () const |
Return a copy of the matrix with the axes of the coordinate system it defines normalized. | |
M | normalized_basis () const |
Returns a normalized basis version of the matrix. | |
M | orthogonalized () const |
Returns a orthogonalized version of the matrix. | |
M | inverse (bool debug=false) const |
Returns the inverse of the matrix. | |
double | inverse (Mat4< M, P, V, L, Q > &inv) const |
Matrix inversion code for 4x4 matrices using Gaussian elimination with partial pivoting. This is a specialized version of a procedure originally due to Paul Heckbert <ph@cs.cmu.edu>. | |
M | derivative (const P &p) const |
Returns the derivative of the matrix at point p. | |
Matrix Property Queries | |
Functions that check various properties of the matrix. | |
void | set_perspective (bool p) |
Set whether this matrix represents a perspective transform or not. | |
bool | is_perspective () const |
Does this matrix represent a perspective transform? | |
bool | is_valid () const |
Is the matrix valid? | |
bool | is_identity () const |
Is the matrix equal to the identity matrix? | |
bool | is_orthogonal () const |
Is the matrix orthogonal (no shearing)? | |
bool | is_equal_scaling_orthogonal () const |
Is the matrix equal_scaling orthogonal (no shearing, no nonequal scaling)? | |
bool | is_orthonormal () const |
Is the matrix orthonormal (orthogonal, no scaling)? | |
Overloaded Operators | |
Overloaded mathematical and logical operators. | |
int | operator== (const M &m) const |
Overloaded equality operator. Only checks to see if top 3 rows are equal. | |
Static Public Member Functions | |
Special Transform Constructors | |
Static functions to create matrices that perform special transformations. | |
static M | rotation (const Q &quat) |
Create a matrix that does the rotation described by the quaternion quat. | |
static M | rotation (const L &axis, double angle) |
Create a matrix that rotates angle radians about the axis described by line axis. | |
static M | rotation (const V &axis, double angle) |
Create a matrix that rotates angle radians about the axis described by vector axis. | |
static M | shear (const V &normal, const V &shear_vec) |
Create a matrix that performs a shearing transform. | |
static M | scaling (const P &fixed_pt, double factor) |
Create a matrix that does a uniform scale by factor along the x-, y- and z-directions, centered at the point fixed_pt. | |
static M | scaling (const P &fixed_pt, const V &xyz_factors) |
Create a matrix that scales along x-, y- and z-axes by the amount in the corresponding component of xyz_factors and that leaves the point fixed_pt unmoved. | |
static M | scaling (const V &xyz_factors) |
Create a matrix that scales along the x-, y- and z-axes by the amount in the corresponding component of xyz_factors. | |
static M | scaling (double x, double y, double z) |
Create a matrix that scales by x along the x-axis, y along the y-axis and z along the z-axis. | |
static M | scaling (double factor) |
Create a matrix that does a uniform scale by factor. | |
static M | stretching (const L &axis) |
Create a matrix that scales along the direction of axis.vector leaving point axis.point unmoved. | |
static M | translation (const V &vec) |
Create a matrix that does a translation along the vector vec. | |
static M | anchor_scale_rot (const P &anchor, const P &old_pt, const P &new_pt) |
Contruct a rotation / non-uniform scale matrix that maps the line segment joining anchor and old_pt to the segment joining anchor and new-pt. | |
static M | align (const P &src1, const P &src2, const P &src3, const P &dst1, const P &dst2, const P &dst3) |
Map a triple of points (src1,src2,src3) to a triple of points (dst1,dst2,dst3). Point src1 maps to dst1, line (src1,src2) maps to line (dst1,dst2) and plane (src1,src2,src3) maps to plane (dst1,dst2,dst3). | |
static M | align (const P &src1, const V &src2, const V &src3, const P &dst1, const V &dst2, const V &dst3) |
static M | align (const P &src1, const V &src2, const P &dst1, const V &dst2) |
static M | align_and_scale (const P &o, const V &x, const V &y, const V &z) |
static M | glu_perspective (double fovy, double aspect, double zmin=0.0, double zmax=0.0) |
Creates a matrix that performs a perspective transformation exactly like gluPerspective. | |
static M | glu_lookat (const V &from, const V &at, const V &up) |
Creates a matrix that performs a transformation exactly like gluLookAt. | |
static M | gl_viewport (double w, double h) |
Creates a matrix that performs the OpenGL viewport transformation. | |
Protected Attributes | |
Vec4 | row [4] |
Rows of the matrix stored as 4D vectors. | |
bool | perspective |
Is this matrix a perspective transform? | |
Related Functions | |
(Note that these are not member functions.) | |
M | operator * (const Mat4< M, P, V, L, Q > &m, const Mat4< M, P, V, L, Q > &m2) |
Mat4 by Mat4 multiplication. | |
P | operator * (const Mat4< M, P, V, L, Q > &m, const P &p) |
Mat4 by 3D point multiplication. | |
V | operator * (const Mat4< M, P, V, L, Q > &m, const Vec3< V > &v) |
Mat4 by 3D vector multiplication. | |
L | operator * (const Mat4< M, P, V, L, Q > &m, const Line< L, P, V > &l) |
Mat4 by 3D line multiplication. | |
M | operator+ (const Mat4< M, P, V, L, Q > &n, const Mat4< M, P, V, L, Q > &m) |
Component wise matrix addition. | |
M | operator- (const Mat4< M, P, V, L, Q > &n, const Mat4< M, P, V, L, Q > &m) |
Component wise matrix subtraction. | |
M | operator- (const Mat4< M, P, V, L, Q > &n) |
Component wise matrix negation. | |
M | operator * (double s, const Mat4< M, P, V, L, Q > &m) |
Scalar by matrix multiplication. | |
M | operator * (const Mat4< M, P, V, L, Q > &m, double s) |
Matrix by scalar multiplication. | |
M | operator/ (const Mat4< M, P, V, L, Q > &m, double s) |
Matrix by scalara division. | |
std::ostream & | operator<< (std::ostream &os, const Mat4< M, P, V, L, Q > &x) |
Stream insertion operator for Mat4 class. |
Mat4 is a 4x4 matrix class that can be used to perform general affine or projective transformations in 3D space.
To transform a point or a vector, PREmultiply it by a Mat4 instance.
Definition at line 30 of file mat4.H.
|
Default constructor. Creates an identity matrix.
|
|
Constructor that creates a matrix with rows equal to the vectors givens as arguments. Perspective can also be set.
|
|
This constructor creates a rigid motion transform from an origin and directions of x, y and z axes. Construct a rigid motion transformation from given coordinate system (origin,x_dir,y_dir,z_dir). This transformation will transform points from (origin,x_dir,y_dir,z_dir) to world.
|
|
This constructor creates a linear map (no translation) whose columns are the given vectors. Construct a matrix whose columns are the given vectors.
|
|
This constructor creates a rigid motion transform from an origin and direction of x and y axis. If yDir is not perpendicular to xDir, yDir will be adjusted. Construct a rigid motion transformation from the coordinate system (origin,x_dir,y_dir,cross(x_dir,y_dir)). This transformation will transform points from (origin,x_dir,y_dir,cross(x_dir,y_dir)) to world.
Definition at line 109 of file mat4.C. References mlib::cross(), and mlib::Vec4::normalized(). |
|
This constructor creates a rigid motion transform from an origin (axis.point) and the direction of the z axis (axis.vector). The directions of the x and y axes are determined according to an arbitrary axis algorithm. Construct a transform that moves origin to axis.point and z-axis to axis.vector. The x and y axes are constructed according to an arbitrary axis algorithm.
Definition at line 139 of file mat4.C. References mlib::cross(). |
|
The constructor creates a rigid motion transform from an origin. The x, y and z axis are aligned with the world x, y and z axis.
|
|
Return the adjoint of the matrix.
Definition at line 851 of file mat4.C. References mlib::cross(), and mlib::Mat4< M, P, V, L, Q >::row. |
|
As align(src1, src2, src3, dst1, dst2, dst3), but src3 and dst3 are equal and computed to be cross(src2, dst2). If cross(src2, dst2) is the null vector, then src3 and dst3 are perpendicular to src2 (computed using an arbitrary axis algorithm) is src2 and dst2 point away from each other. Otherwise, a translation matrix from sr1 to dst1 is returned. Definition at line 874 of file mat4.C. References mlib::Mat4< M, P, V, L, Q >::align(), mlib::cross(), and mlib::Mat4< M, P, V, L, Q >::translation(). |
|
The transformation maps points and vectors as follows:
|
|
Map a triple of points (src1,src2,src3) to a triple of points (dst1,dst2,dst3). Point src1 maps to dst1, line (src1,src2) maps to line (dst1,dst2) and plane (src1,src2,src3) maps to plane (dst1,dst2,dst3). The transformation maps points as follows: point src1 maps to point dst1 vec (src1,src2) maps to vector (dst1,dst2) plane (src1,src2,src3) maps to plane (dst1,dst2,dst3) Definition at line 942 of file mat4.C. Referenced by mlib::Mat4< M, P, V, L, Q >::align(). |
|
Construct a rigid motion transformation from given coordinate system (origin,xx,yy,zz). This transformation will transform points from (origin,xx,yy,zz) to world. The axes xx, yy, and zz are not normalized before the matrix is constructed. Definition at line 964 of file mat4.C. Referenced by mlib::Mat4< M, P, V, L, Q >::orthogonalized(). |
|
Contruct a rotation / non-uniform scale matrix that maps the line segment joining anchor and old_pt to the segment joining anchor and new-pt. Contruct a rotation / non-uniform scale matrix that maps the line segment joining anchor -- old_pt to the segment joining anchor -- new_pt:
Definition at line 406 of file mat4.C. References mlib::Acos(), mlib::cross(), err_msg(), mlib::gEpsAbsMath, and mlib::Vec4::normalized(). |
|
Returns the derivative of the matrix at point p. Returns the derivative of the map "mult by this matrix". Of course, this is only interesting for perspective matrices, since otherwise the derivative is the matrix itself. (We can ignore the translational component of the matrix since the derivative should only be multiplied with vectors, and the translational component doesn't affect them).
Definition at line 659 of file mat4.C. References mlib::Mat4< M, P, V, L, Q >::perspective. |
|
Return the determinant of the matrix.
Definition at line 234 of file mat4.H. Referenced by mlib::Mat4< M, P, V, L, Q >::inverse(). |
|
Returns by reference the origin and axes of the coordinate system defined by the matrix. Definition at line 107 of file mat4.H. Referenced by mlib::Mat4< M, P, V, L, Q >::is_orthogonal(), mlib::Mat4< M, P, V, L, Q >::normalized_basis(), mlib::Mat4< M, P, V, L, Q >::orthogonalized(), XFscaler< OBJ_TYPE, OBJ_TYPE_PTR >::tick(), and mlib::Mat4< M, P, V, L, Q >::unscaled(). |
|
Returns a vector containing the lengths of the axes of the coordinate system defined by the matrix. Definition at line 102 of file mat4.H. Referenced by mlib::Mat4< M, P, V, L, Q >::is_equal_scaling_orthogonal(), and mlib::Mat4< Wtransf, Wpt, Wvec, Wline, Wquat >::is_orthonormal(). |
|
Creates a matrix that performs the OpenGL viewport transformation.
Definition at line 1053 of file mat4.C. References mlib::Mat4< M, P, V, L, Q >::scaling(), and mlib::Mat4< M, P, V, L, Q >::translation(). |
|
Creates a matrix that performs a transformation exactly like gluLookAt.
Definition at line 1031 of file mat4.C. References mlib::cross(), mlib::Vec4::normalized(), and mlib::Mat4< M, P, V, L, Q >::translation(). |
|
Creates a matrix that performs a perspective transformation exactly like gluPerspective.
Definition at line 997 of file mat4.C. References Color::tan(). |
|
Matrix inversion code for 4x4 matrices using Gaussian elimination with partial pivoting. This is a specialized version of a procedure originally due to Paul Heckbert <ph@cs.cmu.edu>.
If the matrix is singular, returns 0 and leaves trash in
Definition at line 581 of file mat4.C. References j, and mlib::Mat4< M, P, V, L, Q >::perspective. |
|
Returns the inverse of the matrix. Convenience version of inverse that returns the inverse rather than passing it back by reference. This version also prints an error message if a singular matrix is detected (in which case the returned matrix is undefined).
Definition at line 545 of file mat4.C. References mlib::Mat4< M, P, V, L, Q >::det(), mlib::fn_gdb_will_recognize_so_i_can_set_a_fuggin_breakpoint(), and mlib::isZero(). Referenced by VIEW::eye_to_world(), GESTURE::is_ellipse(), SimplexFrame::recompute(), HalftoneShaderEx::set_uniform_variables(), and DotsShader_EX::set_uniform_variables(). |
|
Is the matrix equal_scaling orthogonal (no shearing, no nonequal scaling)?
Definition at line 816 of file mat4.C. References mlib::epsNorMath(), mlib::Mat4< M, P, V, L, Q >::get_scale(), and mlib::Mat4< M, P, V, L, Q >::is_orthogonal(). |
|
Is the matrix equal to the identity matrix?
Definition at line 786 of file mat4.C. References mlib::gEpsAbsMath, and mlib::Mat4< M, P, V, L, Q >::row. |
|
Is the matrix orthogonal (no shearing)?
Definition at line 801 of file mat4.C. References mlib::Mat4< M, P, V, L, Q >::get_coord_system(), and mlib::Mat4< M, P, V, L, Q >::origin(). Referenced by mlib::Mat4< M, P, V, L, Q >::is_equal_scaling_orthogonal(), and mlib::Mat4< Wtransf, Wpt, Wvec, Wline, Wquat >::is_orthonormal(). |
|
Is the matrix orthonormal (orthogonal, no scaling)?
|
|
Does this matrix represent a perspective transform?
Definition at line 267 of file mat4.H. Referenced by mlib::Mat4< M, P, V, L, Q >::operator *(), mlib::operator *(), mlib::Mat4< M, P, V, L, Q >::operator+(), mlib::Mat4< M, P, V, L, Q >::operator-(), and mlib::Mat4< M, P, V, L, Q >::operator/(). |
|
Is the matrix valid?
Definition at line 1061 of file mat4.C. References mlib::epsNorMath(), and mlib::Mat4< M, P, V, L, Q >::row. |
|
Returns the elements of the matrix as a 1D array (in row major layout).
Definition at line 127 of file mat4.H. Referenced by XF_DRAW::draw(), TexMemRefImage::draw_objects(), VisRefImage::draw_objects(), IDRefImage::draw_objects(), RefImage::draw_objects(), and XToonTexture::update_cam(). |
|
Returns a normalized basis version of the matrix. Return a copy of the matrix with the axes of the coordinate system it defines normalized and the origin of that coordinate system replaced with the origin of the world coordinate system, (0, 0, 0). Definition at line 702 of file mat4.C. References mlib::Mat4< M, P, V, L, Q >::get_coord_system(). |
|
Returns the value in the cell (i1, i2) in the matrix. No bounds checking is performed in this function.
|
|
Returns a reference to the cell (i1, i2) in the matrix. No bounds checking is performed in this function.
|
|
Overloaded equality operator. Only checks to see if top 3 rows are equal.
|
|
Returns the value of row
|
|
Returns a reference to row
|
|
Returns the origin of the coordinate system defined by the matrix as a point.
Definition at line 121 of file mat4.H. Referenced by XF_DRAW::draw(), mlib::Mat4< Wtransf, Wpt, Wvec, Wline, Wquat >::get_coord_system(), mlib::Mat4< M, P, V, L, Q >::is_orthogonal(), and mlib::Mat4< Wtransf, Wpt, Wvec, Wline, Wquat >::operator==(). |
|
Returns a orthogonalized version of the matrix. Creates a new matrix that defines a coordinate system with the same origin as the coordinate system defined by the original matrix, but x-axis normalized, the y-axis redefined to be perpendicular to the x-axis (and also unit length), and the z-axis redefined to be perpendicular to both (but the same length as before).
Definition at line 724 of file mat4.C. References mlib::Mat4< M, P, V, L, Q >::align_and_scale(), mlib::cross(), mlib::Mat4< M, P, V, L, Q >::get_coord_system(), mlib::Vec4::length(), and mlib::Vec4::normalized(). |
|
Create a matrix that rotates angle radians about the axis described by vector axis.
Definition at line 203 of file mat4.C. References mlib::Mat4< M, P, V, L, Q >::rotation(). |
|
Create a matrix that rotates angle radians about the axis described by line axis.
|
|
Create a matrix that does the rotation described by the quaternion quat.
Definition at line 255 of file mat4.C. References mlib::Acos(), angle(), and mlib::Mat4< M, P, V, L, Q >::rotation(). |
|
Returns the rotation part of the transform.
Definition at line 143 of file mat4.H. Referenced by mlib::Mat4< M, P, V, L, Q >::rotation(). |
|
Create a matrix that does a uniform scale by factor.
Definition at line 282 of file mat4.C. References mlib::Mat4< M, P, V, L, Q >::scaling(). |
|
Create a matrix that scales by x along the x-axis, y along the y-axis and z along the z-axis.
|
|
Create a matrix that scales along the x-, y- and z-axes by the amount in the corresponding component of xyz_factors.
Definition at line 296 of file mat4.C. References mlib::Mat4< M, P, V, L, Q >::scaling(). |
|
Create a matrix that scales along x-, y- and z-axes by the amount in the corresponding component of xyz_factors and that leaves the point fixed_pt unmoved.
|
|
Create a matrix that does a uniform scale by factor along the x-, y- and z-directions, centered at the point fixed_pt.
Definition at line 270 of file mat4.C. Referenced by mlib::Mat4< M, P, V, L, Q >::gl_viewport(), mlib::Mat4< Wtransf, Wpt, Wvec, Wline, Wquat >::scaling(), mlib::Mat4< M, P, V, L, Q >::scaling(), and mlib::Mat4< M, P, V, L, Q >::stretching(). |
|
Set the origin of the coordinate system defined by the matrix.
|
|
Set whether this matrix represents a perspective transform or not.
|
|
Set the x-axis of the coordinate system defined by the matrix.
|
|
Set the y-axis of the coordinate system defined by the matrix.
|
|
Set the z-axis of the coordinate system defined by the matrix.
|
|
Create a matrix that performs a shearing transform.
Definition at line 339 of file mat4.C. References mlib::epsAbsSqrdMath(), and j. |
|
Create a matrix that scales along the direction of axis.vector leaving point axis.point unmoved.
Definition at line 371 of file mat4.C. References mlib::Mat4< M, P, V, L, Q >::scaling(). |
|
Return the trace of the matrix.
|
|
Create a matrix that does a translation along the vector vec.
Definition at line 182 of file mat4.C. Referenced by mlib::Mat4< M, P, V, L, Q >::align(), mlib::Mat4< M, P, V, L, Q >::gl_viewport(), and mlib::Mat4< M, P, V, L, Q >::glu_lookat(). |
|
Return the transpose of the matrix.
Definition at line 832 of file mat4.C. References j, and mlib::Mat4< M, P, V, L, Q >::row. Referenced by XF_DRAW::draw(), get_quat(), and XToonTexture::update_cam(). |
|
Return a copy of the matrix with the axes of the coordinate system it defines normalized.
Definition at line 684 of file mat4.C. References mlib::Mat4< M, P, V, L, Q >::get_coord_system(). |
|
Returns the x-axis of the coordinate system defined by the matrix as a vector.
Definition at line 112 of file mat4.H. Referenced by mlib::Mat4< Wtransf, Wpt, Wvec, Wline, Wquat >::get_coord_system(), mlib::Mat4< Wtransf, Wpt, Wvec, Wline, Wquat >::get_scale(), mlib::Mat4< Wtransf, Wpt, Wvec, Wline, Wquat >::operator==(), and mlib::Mat4< Wtransf, Wpt, Wvec, Wline, Wquat >::rotation(). |
|
Returns the y-axis of the coordinate system defined by the matrix as a vector.
Definition at line 115 of file mat4.H. Referenced by mlib::Mat4< Wtransf, Wpt, Wvec, Wline, Wquat >::get_coord_system(), mlib::Mat4< Wtransf, Wpt, Wvec, Wline, Wquat >::get_scale(), mlib::Mat4< Wtransf, Wpt, Wvec, Wline, Wquat >::operator==(), and mlib::Mat4< Wtransf, Wpt, Wvec, Wline, Wquat >::rotation(). |
|
Returns the z-axis of the coordinate system defined by the matrix as a vector.
Definition at line 118 of file mat4.H. Referenced by mlib::Mat4< Wtransf, Wpt, Wvec, Wline, Wquat >::get_coord_system(), mlib::Mat4< Wtransf, Wpt, Wvec, Wline, Wquat >::get_scale(), mlib::Mat4< Wtransf, Wpt, Wvec, Wline, Wquat >::operator==(), and mlib::Mat4< Wtransf, Wpt, Wvec, Wline, Wquat >::rotation(). |
|
Matrix by scalar multiplication.
|
|
Scalar by matrix multiplication.
Definition at line 345 of file mat4.H. References mlib::Mat4< M, P, V, L, Q >::is_perspective(). |
|
Mat4 by 3D line multiplication.
|
|
Mat4 by 3D vector multiplication.
|
|
Mat4 by 3D point multiplication.
|
|
|
|
Component wise matrix addition.
Definition at line 325 of file mat4.H. References mlib::Mat4< M, P, V, L, Q >::is_perspective(). |
|
Component wise matrix negation.
Definition at line 339 of file mat4.H. References mlib::Mat4< M, P, V, L, Q >::is_perspective(). |
|
Component wise matrix subtraction.
Definition at line 332 of file mat4.H. References mlib::Mat4< M, P, V, L, Q >::is_perspective(). |
|
Matrix by scalara division.
Definition at line 357 of file mat4.H. References mlib::Mat4< M, P, V, L, Q >::is_perspective(). |
|
Stream insertion operator for Mat4 class.
|
|
Is this matrix a perspective transform?
Definition at line 35 of file mat4.H. Referenced by mlib::Mat4< M, P, V, L, Q >::derivative(), mlib::Mat4< M, P, V, L, Q >::inverse(), mlib::Mat4< Wtransf, Wpt, Wvec, Wline, Wquat >::is_perspective(), and mlib::Mat4< Wtransf, Wpt, Wvec, Wline, Wquat >::set_perspective(). |
|