Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

HSpline::HermiteGeometry Class Reference

#include <hspline.H>

Inheritance diagram for HSpline::HermiteGeometry:

Inheritance graph
[legend]
Collaboration diagram for HSpline::HermiteGeometry:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 HermiteGeometry ()
 HermiteGeometry (mlib::CWpt &p1, mlib::CWpt &p2, mlib::CWvec &v1, mlib::CWvec &v2)
void set (mlib::CWpt &p1, mlib::CWpt &p2, mlib::CWvec &v1, mlib::CWvec &v2)
 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 Wpt &origin, const Wvec &x_dir, const Wvec &y_dir, const Wvec &z_dir)
 This constructor creates a rigid motion transform from an origin and directions of x, y and z axes.
 Mat4 (const Wvec &col0, const Wvec &col1, const Wvec &col2)
 This constructor creates a linear map (no translation) whose columns are the given vectors.
 Mat4 (const Wpt &origin, const Wvec &xDir, const Wvec &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 Wline &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 Wpt &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.
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.
Wvec get_scale () const
void get_coord_system (Wpt &o, Wvec &x, Wvec &y, Wvec &z) const
Wvec X () const
 Returns the x-axis of the coordinate system defined by the matrix as a vector.
Wvec Y () const
 Returns the y-axis of the coordinate system defined by the matrix as a vector.
Wvec Z () const
 Returns the z-axis of the coordinate system defined by the matrix as a vector.
Wpt 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 Wvec &x)
 Set the x-axis of the coordinate system defined by the matrix.
void set_Y (const Wvec &y)
 Set the y-axis of the coordinate system defined by the matrix.
void set_Z (const Wvec &z)
 Set the z-axis of the coordinate system defined by the matrix.
void set_origin (const Wpt &o)
 Set the origin of the coordinate system defined by the matrix.
Wtransf rotation () const
 Returns the rotation part of the transform.
Wtransf 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.
Wtransf adjoint () const
 Return the adjoint of the matrix.
Wtransf unscaled () const
 Return a copy of the matrix with the axes of the coordinate system it defines normalized.
Wtransf normalized_basis () const
 Returns a normalized basis version of the matrix.
Wtransf orthogonalized () const
 Returns a orthogonalized version of the matrix.
Wtransf inverse (bool debug=false) const
 Returns the inverse of the matrix.
double inverse (Mat4< Wtransf, Wpt, Wvec, Wline, Wquat > &inv) const
Wtransf derivative (const Wpt &p) const
 Returns the derivative of the matrix at point p.
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)?
int operator== (const Wtransf &m) const
 Overloaded equality operator. Only checks to see if top 3 rows are equal.

Static Public Member Functions

static Wtransf rotation (const Wquat &quat)
 Create a matrix that does the rotation described by the quaternion quat.
static Wtransf rotation (const Wline &axis, double angle)
 Create a matrix that rotates angle radians about the axis described by line axis.
static Wtransf rotation (const Wvec &axis, double angle)
 Create a matrix that rotates angle radians about the axis described by vector axis.
static Wtransf shear (const Wvec &normal, const Wvec &shear_vec)
 Create a matrix that performs a shearing transform.
static Wtransf scaling (const Wpt &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 Wtransf scaling (const Wpt &fixed_pt, const Wvec &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 Wtransf scaling (const Wvec &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 Wtransf 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 Wtransf scaling (double factor)
 Create a matrix that does a uniform scale by factor.
static Wtransf stretching (const Wline &axis)
 Create a matrix that scales along the direction of axis.vector leaving point axis.point unmoved.
static Wtransf translation (const Wvec &vec)
 Create a matrix that does a translation along the vector vec.
static Wtransf anchor_scale_rot (const Wpt &anchor, const Wpt &old_pt, const Wpt &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 Wtransf align (const Wpt &src1, const Wpt &src2, const Wpt &src3, const Wpt &dst1, const Wpt &dst2, const Wpt &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 Wtransf align (const Wpt &src1, const Wvec &src2, const Wvec &src3, const Wpt &dst1, const Wvec &dst2, const Wvec &dst3)
static Wtransf align (const Wpt &src1, const Wvec &src2, const Wpt &dst1, const Wvec &dst2)
static Wtransf align_and_scale (const Wpt &o, const Wvec &x, const Wvec &y, const Wvec &z)
static Wtransf 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 Wtransf glu_lookat (const Wvec &from, const Wvec &at, const Wvec &up)
 Creates a matrix that performs a transformation exactly like gluLookAt.
static Wtransf 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?

Detailed Description

Definition at line 47 of file hspline.H.


Constructor & Destructor Documentation

HSpline::HermiteGeometry::HermiteGeometry  )  [inline]
 

Definition at line 49 of file hspline.H.

HSpline::HermiteGeometry::HermiteGeometry mlib::CWpt p1,
mlib::CWpt p2,
mlib::CWvec v1,
mlib::CWvec v2
[inline]
 

Definition at line 50 of file hspline.H.

References set().


Member Function Documentation

Wtransf mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::adjoint  )  const [inherited]
 

Return the adjoint of the matrix.

libgfx References:
This function was taken directly from libgfx (it was only modified to make it into a member function).

static Wtransf mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::align const Wpt src1,
const Wvec src2,
const Wpt dst1,
const Wvec dst2
[static, inherited]
 

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.

static Wtransf mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::align const Wpt src1,
const Wvec src2,
const Wvec src3,
const Wpt dst1,
const Wvec dst2,
const Wvec dst3
[static, inherited]
 

The transformation maps points and vectors as follows:

point src1 --> point dst1 vec src2 --> vector dst2 plane(src1,src2,src3) --> plane(dst1,dst2,dst3)

static Wtransf mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::align const Wpt src1,
const Wpt src2,
const Wpt src3,
const Wpt dst1,
const Wpt dst2,
const Wpt dst3
[static, inherited]
 

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)

static Wtransf mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::align_and_scale const Wpt o,
const Wvec x,
const Wvec y,
const Wvec z
[static, inherited]
 

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.

Referenced by XFscaler< OBJ_TYPE, OBJ_TYPE_PTR >::tick().

static Wtransf mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::anchor_scale_rot const Wpt anchor,
const Wpt old_pt,
const Wpt new_pt
[static, inherited]
 

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:

new point / / / / / / / anchor ------------------- old point

Wtransf mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::derivative const Wpt p  )  const [inherited]
 

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

Parameters:
[in] p The point at which the derivative is computed.
Note:
The derivative is only computed for matrices with perspective set to true.

double mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::det  )  const [inline, inherited]
 

Return the determinant of the matrix.

libgfx References:
This function was take directly from libgfx (it was only modified to make it into a member function).

Definition at line 234 of file mat4.H.

References mlib::cross(), and mlib::Mat4< M, P, V, L, Q >::row.

void mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::get_coord_system Wpt o,
Wvec x,
Wvec y,
Wvec z
const [inline, inherited]
 

Returns by reference the origin and axes of the coordinate system defined by the matrix.

Definition at line 107 of file mat4.H.

References mlib::Mat4< M, P, V, L, Q >::origin(), mlib::Mat4< M, P, V, L, Q >::X(), mlib::Mat4< M, P, V, L, Q >::Y(), and mlib::Mat4< M, P, V, L, Q >::Z().

Wvec mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::get_scale  )  const [inline, inherited]
 

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.

References mlib::Mat4< M, P, V, L, Q >::X(), mlib::Mat4< M, P, V, L, Q >::Y(), and mlib::Mat4< M, P, V, L, Q >::Z().

static Wtransf mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::gl_viewport double  w,
double  h
[static, inherited]
 

Creates a matrix that performs the OpenGL viewport transformation.

libgfx References:
This function was take directly from libgfx (it was only modified to make it into a static member function).

static Wtransf mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::glu_lookat const Wvec from,
const Wvec at,
const Wvec up
[static, inherited]
 

Creates a matrix that performs a transformation exactly like gluLookAt.

libgfx References:
This function was take directly from libgfx (it was only modified to make it into a static member function).

static Wtransf mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::glu_perspective double  fovy,
double  aspect,
double  zmin = 0.0,
double  zmax = 0.0
[static, inherited]
 

Creates a matrix that performs a perspective transformation exactly like gluPerspective.

libgfx References:
This function was take directly from libgfx (it was only modified to make it into a static member function).

double mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::inverse Mat4< Wtransf , Wpt , Wvec , Wline , Wquat > &  inv  )  const [inherited]
 

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

Parameters:
[out] inv The result of inverting the matrix. If the matrix is singular, the value of inv is undefined.
Returns:
Determinant of the matrix. If the matrix is singular, the determinant will be 0 (or very close to 0).
libgfx References:
This function was taken directly from libgfx.

Wtransf mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::inverse bool  debug = false  )  const [inherited]
 

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

Returns:
The inverse of the matrix.

bool mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::is_equal_scaling_orthogonal  )  const [inherited]
 

Is the matrix equal_scaling orthogonal (no shearing, no nonequal scaling)?

bool mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::is_identity  )  const [inherited]
 

Is the matrix equal to the identity matrix?

bool mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::is_orthogonal  )  const [inherited]
 

Is the matrix orthogonal (no shearing)?

bool mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::is_orthonormal  )  const [inline, inherited]
 

Is the matrix orthonormal (orthogonal, no scaling)?

Definition at line 279 of file mat4.H.

References mlib::Mat4< M, P, V, L, Q >::get_scale(), and mlib::Mat4< M, P, V, L, Q >::is_orthogonal().

bool mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::is_perspective  )  const [inline, inherited]
 

Does this matrix represent a perspective transform?

Definition at line 267 of file mat4.H.

References mlib::Mat4< M, P, V, L, Q >::perspective.

bool mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::is_valid  )  const [inherited]
 

Is the matrix valid?

mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::Mat4 const Wpt origin  )  [inherited]
 

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.

Parameters:
[in] origin The origin of the rigid motion transform.

mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::Mat4 const Wline axis  )  [inherited]
 

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.

Parameters:
[in] axis A line specifying the origin and z-axis of the coordinate system that will be defined by the new matrix.

mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::Mat4 const Wpt origin,
const Wvec xDir,
const Wvec yDir
[inherited]
 

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.

Parameters:
[in] origin The origin of the coordinate system that will be defined by the new matrix.
[in] x_dir The direction of the x-axis of the coordinate system that will be defined by the new matrix.
[in] y_dir The direction of the y-axis of the coordinate system that will be defined by the new matrix.
Note:
y_dir is recomputed to be cross(cross(x_dir,y_dir), x_dir).

If the result of cross(x_dir,y_dir) is a null vector, then the constructed matrix will be the identity matrix.

Todo:
Change use of temp matrix to direct access to the this pointer.

mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::Mat4 const Wvec col0,
const Wvec col1,
const Wvec col2
[inherited]
 

This constructor creates a linear map (no translation) whose columns are the given vectors.

Construct a matrix whose columns are the given vectors.

Parameters:
[in] col0 Becomes the first 3 rows of the first column of the matrix.
[in] col1 Becomes the first 3 rows of the second column of the matrix.
[in] col2 Becomes the first 3 rows of the third column of the matrix.
Todo:
Change use of temp matrix to direct access to the this pointer.

mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::Mat4 const Wpt origin,
const Wvec x_dir,
const Wvec y_dir,
const Wvec z_dir
[inherited]
 

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.

Parameters:
[in] origin The origin of the coordinate system that will be defined by the new matrix.
[in] x_dir The direction of the x-axis of the coordinate system that will be defined by the new matrix.
[in] y_dir The direction of the y-axis of the coordinate system that will be defined by the new matrix.
[in] z_dir The direction of the z-axis of the coordinate system that will be defined by the new matrix.
Todo:
Change use of temp matrix to direct access to the this pointer.

mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::Mat4 Vec4  row0,
Vec4  row1,
Vec4  row2,
Vec4  row3,
bool  perspec = false
[inline, inherited]
 

Constructor that creates a matrix with rows equal to the vectors givens as arguments. Perspective can also be set.

Definition at line 52 of file mat4.H.

References mlib::Mat4< M, P, V, L, Q >::row.

mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::Mat4  )  [inline, inherited]
 

Default constructor. Creates an identity matrix.

Definition at line 43 of file mat4.H.

References mlib::Mat4< M, P, V, L, Q >::row.

const double* mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::matrix  )  const [inline, inherited]
 

Returns the elements of the matrix as a 1D array (in row major layout).

libgfx References:
This function is borrowed from the libgfx Mat4 class.

Definition at line 127 of file mat4.H.

References mlib::Mat4< M, P, V, L, Q >::row.

Wtransf mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::normalized_basis  )  const [inherited]
 

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

double mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::operator() int  i1,
int  i2
const [inline, inherited]
 

Returns the value in the cell (i1, i2) in the matrix. No bounds checking is performed in this function.

Definition at line 91 of file mat4.H.

References mlib::Mat4< M, P, V, L, Q >::row.

double& mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::operator() int  i1,
int  i2
[inline, inherited]
 

Returns a reference to the cell (i1, i2) in the matrix. No bounds checking is performed in this function.

Definition at line 88 of file mat4.H.

References mlib::Mat4< M, P, V, L, Q >::row.

int mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::operator== const Wtransf m  )  const [inline, inherited]
 

Overloaded equality operator. Only checks to see if top 3 rows are equal.

Definition at line 290 of file mat4.H.

References mlib::Mat4< M, P, V, L, Q >::origin(), mlib::Mat4< M, P, V, L, Q >::X(), mlib::Mat4< M, P, V, L, Q >::Y(), and mlib::Mat4< M, P, V, L, Q >::Z().

Vec4 mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::operator[] int  i  )  const [inline, inherited]
 

Returns the value of row i as a Vec4. No bounds checking is performed in this function.

Definition at line 98 of file mat4.H.

References mlib::Mat4< M, P, V, L, Q >::row.

Vec4& mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::operator[] int  i  )  [inline, inherited]
 

Returns a reference to row i as a Vec4. No bounds checking is performed in this function.

Definition at line 95 of file mat4.H.

References mlib::Mat4< M, P, V, L, Q >::row.

Wpt mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::origin  )  const [inline, inherited]
 

Returns the origin of the coordinate system defined by the matrix as a point.

Definition at line 121 of file mat4.H.

References mlib::Mat4< M, P, V, L, Q >::row.

Wtransf mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::orthogonalized  )  const [inherited]
 

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

Todo:
Come up with a better description of this function.

static Wtransf mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::rotation const Wvec axis,
double  angle
[static, inherited]
 

Create a matrix that rotates angle radians about the axis described by vector axis.

Parameters:
[in] axis A vector describing the axis to rotate about.
[in] angle The angle to rotate through (in radians).

static Wtransf mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::rotation const Wline axis,
double  angle
[static, inherited]
 

Create a matrix that rotates angle radians about the axis described by line axis.

Parameters:
[in] axis A line describing the axis to rotate about.
[in] angle The angle to rotate through (in radians).

static Wtransf mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::rotation const Wquat quat  )  [static, inherited]
 

Create a matrix that does the rotation described by the quaternion quat.

Parameters:
[in] quat A quaternion describing the rotation.

Wtransf mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::rotation  )  const [inline, inherited]
 

Returns the rotation part of the transform.

Definition at line 143 of file mat4.H.

References mlib::Mat4< M, P, V, L, Q >::X(), mlib::Mat4< M, P, V, L, Q >::Y(), and mlib::Mat4< M, P, V, L, Q >::Z().

Referenced by Cam_int_edit::rot_x(), Cam_int_edit::rot_y(), and Cam_int_edit::rot_z().

static Wtransf mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::scaling double  factor  )  [static, inherited]
 

Create a matrix that does a uniform scale by factor.

Parameters:
[in] factor The amount to scale by along the x-, y- and z-axes.

static Wtransf mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::scaling double  x,
double  y,
double  z
[inline, static, inherited]
 

Create a matrix that scales by x along the x-axis, y along the y-axis and z along the z-axis.

Definition at line 177 of file mat4.H.

References mlib::Mat4< M, P, V, L, Q >::scaling().

static Wtransf mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::scaling const Wvec xyz_factors  )  [static, inherited]
 

Create a matrix that scales along the x-, y- and z-axes by the amount in the corresponding component of xyz_factors.

Parameters:
[in] xyz_factors A vector whose components are the amount to scale by along their corresponding directions.

static Wtransf mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::scaling const Wpt fixed_pt,
const Wvec xyz_factors
[static, inherited]
 

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.

Parameters:
[in] fixed_pt The point that should remain fixed after the scaling.
[in] xyz_factors A vector whose components are the amount to scale by along their corresponding directions.

static Wtransf mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::scaling const Wpt fixed_pt,
double  factor
[static, inherited]
 

Create a matrix that does a uniform scale by factor along the x-, y- and z-directions, centered at the point fixed_pt.

Parameters:
[in] fixed_pt The point that should remain fixed after the scaling.
[in] factor The amount to scale by in the x-, y- and z-directions.

Referenced by GEOM::bbox(), TEXTURE::expand_image(), Cam_int_edit::scale(), Cam_int_edit::scale_x(), Cam_int_edit::scale_y(), and Cam_int_edit::scale_z().

void HSpline::HermiteGeometry::set mlib::CWpt p1,
mlib::CWpt p2,
mlib::CWvec v1,
mlib::CWvec v2
 

Referenced by HermiteGeometry().

void mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::set_origin const Wpt o  )  [inline, inherited]
 

Set the origin of the coordinate system defined by the matrix.

Definition at line 139 of file mat4.H.

References mlib::Mat4< M, P, V, L, Q >::row.

void mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::set_perspective bool  p  )  [inline, inherited]
 

Set whether this matrix represents a perspective transform or not.

Definition at line 265 of file mat4.H.

References mlib::Mat4< M, P, V, L, Q >::perspective.

void mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::set_X const Wvec x  )  [inline, inherited]
 

Set the x-axis of the coordinate system defined by the matrix.

Definition at line 130 of file mat4.H.

References mlib::Mat4< M, P, V, L, Q >::row.

void mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::set_Y const Wvec y  )  [inline, inherited]
 

Set the y-axis of the coordinate system defined by the matrix.

Definition at line 133 of file mat4.H.

References mlib::Mat4< M, P, V, L, Q >::row.

void mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::set_Z const Wvec z  )  [inline, inherited]
 

Set the z-axis of the coordinate system defined by the matrix.

Definition at line 136 of file mat4.H.

References mlib::Mat4< M, P, V, L, Q >::row.

static Wtransf mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::shear const Wvec normal,
const Wvec shear_vec
[static, inherited]
 

Create a matrix that performs a shearing transform.

Parameters:
[in] normal Some sort of normal vector. Not sure exactly what this is (perhaps the normal vector to the plane that will be sheared?).
[in] shear_vec A vector describing the shear. Not sure exactly how this is interpreted.
Todo:
Document this function more completely.
Questions:
What are the exact meanings of the parameters?

static Wtransf mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::stretching const Wline axis  )  [static, inherited]
 

Create a matrix that scales along the direction of axis.vector leaving point axis.point unmoved.

Parameters:
[in] axis A line describing the direction to stretch along and the amount to stretch as well as the point that should remain fixed after the stretching.

double mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::trace  )  const [inline, inherited]
 

Return the trace of the matrix.

libgfx References:
This function was take directly from libgfx (it was only modified to make it into a member function).

Definition at line 239 of file mat4.H.

static Wtransf mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::translation const Wvec vec  )  [static, inherited]
 

Create a matrix that does a translation along the vector vec.

Parameters:
[in] vec A vector describing the length and direction of the translation.

Wtransf mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::transpose  )  const [inherited]
 

Return the transpose of the matrix.

Wtransf mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::unscaled  )  const [inherited]
 

Return a copy of the matrix with the axes of the coordinate system it defines normalized.

Wvec mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::X  )  const [inline, inherited]
 

Returns the x-axis of the coordinate system defined by the matrix as a vector.

Definition at line 112 of file mat4.H.

References mlib::Mat4< M, P, V, L, Q >::row.

Wvec mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::Y  )  const [inline, inherited]
 

Returns the y-axis of the coordinate system defined by the matrix as a vector.

Definition at line 115 of file mat4.H.

References mlib::Mat4< M, P, V, L, Q >::row.

Wvec mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::Z  )  const [inline, inherited]
 

Returns the z-axis of the coordinate system defined by the matrix as a vector.

Definition at line 118 of file mat4.H.

References mlib::Mat4< M, P, V, L, Q >::row.


Member Data Documentation

bool mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::perspective [protected, inherited]
 

Is this matrix a perspective transform?

Definition at line 35 of file mat4.H.

Vec4 mlib::Mat4< Wtransf , Wpt , Wvec , Wline , Wquat >::row[4] [protected, inherited]
 

Rows of the matrix stored as 4D vectors.

Definition at line 34 of file mat4.H.

Referenced by HSpline::HermiteBasis::HermiteBasis().


The documentation for this class was generated from the following file:
Generated on Mon Sep 18 11:46:02 2006 for jot by  doxygen 1.4.4