Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

nv_algebra.cpp File Reference

#include <nv_math/nv_math.h>

Include dependency graph for nv_algebra.cpp:

Go to the source code of this file.

Defines

#define _isnan   isnan
#define _finite   finite
#define acosf   acos

Functions

vec3cross (vec3 &u, const vec3 &v, const vec3 &w)
nv_scalardot (nv_scalar &u, const vec3 &v, const vec3 &w)
nv_scalar dot (const vec3 &v, const vec3 &w)
nv_scalardot (nv_scalar &u, const vec4 &v, const vec4 &w)
nv_scalar dot (const vec4 &v, const vec4 &w)
nv_scalardot (nv_scalar &u, const vec3 &v, const vec4 &w)
nv_scalar dot (const vec3 &v, const vec4 &w)
nv_scalardot (nv_scalar &u, const vec4 &v, const vec3 &w)
nv_scalar dot (const vec4 &v, const vec3 &w)
vec3reflect (vec3 &r, const vec3 &n, const vec3 &l)
vec3madd (vec3 &u, const vec3 &v, const nv_scalar &lambda)
vec3mult (vec3 &u, const vec3 &v, const nv_scalar &lambda)
vec3mult (vec3 &u, const vec3 &v, const vec3 &w)
vec3sub (vec3 &u, const vec3 &v, const vec3 &w)
vec3add (vec3 &u, const vec3 &v, const vec3 &w)
vec3scale (vec3 &u, const nv_scalar s)
vec4scale (vec4 &u, const nv_scalar s)
vec3mult (vec3 &u, const mat3 &M, const vec3 &v)
vec3mult (vec3 &u, const vec3 &v, const mat3 &M)
const vec3 operator * (const mat3 &M, const vec3 &v)
const vec3 operator * (const vec3 &v, const mat3 &M)
vec4mult (vec4 &u, const mat4 &M, const vec4 &v)
vec4mult (vec4 &u, const vec4 &v, const mat4 &M)
const vec4 operator * (const mat4 &M, const vec4 &v)
const vec4 operator * (const vec4 &v, const mat4 &M)
vec3mult_pos (vec3 &u, const mat4 &M, const vec3 &v)
vec3mult_pos (vec3 &u, const vec3 &v, const mat4 &M)
vec3mult_dir (vec3 &u, const mat4 &M, const vec3 &v)
vec3mult_dir (vec3 &u, const vec3 &v, const mat4 &M)
vec3mult (vec3 &u, const mat4 &M, const vec3 &v)
vec3mult (vec3 &u, const vec3 &v, const mat4 &M)
mat4add (mat4 &A, const mat4 &B)
mat3add (mat3 &A, const mat3 &B)
mat4mult (mat4 &C, const mat4 &A, const mat4 &B)
mat3mult (mat3 &C, const mat3 &A, const mat3 &B)
mat3transpose (mat3 &A)
mat4transpose (mat4 &A)
mat4transpose (mat4 &B, const mat4 &A)
mat3transpose (mat3 &B, const mat3 &A)
nv_scalar det2x2 (nv_scalar a1, nv_scalar a2, nv_scalar b1, nv_scalar b2)
nv_scalar det3x3 (nv_scalar a1, nv_scalar a2, nv_scalar a3, nv_scalar b1, nv_scalar b2, nv_scalar b3, nv_scalar c1, nv_scalar c2, nv_scalar c3)
mat4invert (mat4 &B, const mat4 &A)
mat4invert_rot_trans (mat4 &B, const mat4 &A)
nv_scalar det (const mat3 &A)
mat3invert (mat3 &B, const mat3 &A)
vec3normalize (vec3 &u)
vec4normalize (vec4 &u)
quatnormalize (quat &p)
mat4look_at (mat4 &M, const vec3 &eye, const vec3 &center, const vec3 &up)
mat4frustum (mat4 &M, const nv_scalar l, const nv_scalar r, const nv_scalar b, const nv_scalar t, const nv_scalar n, const nv_scalar f)
mat4perspective (mat4 &M, const nv_scalar fovy, const nv_scalar aspect, const nv_scalar n, const nv_scalar f)
const quat operator * (const quat &p, const quat &q)
mat3quat_2_mat (mat3 &M, const quat &q)
quatmat_2_quat (quat &q, const mat3 &M)
quatmat_2_quat (quat &q, const mat4 &M)
quataxis_to_quat (quat &q, const vec3 &a, const nv_scalar phi)
quatconj (quat &p)
quatconj (quat &p, const quat &q)
quatadd_quats (quat &p, const quat &q1, const quat &q2)
nv_scalardot (nv_scalar &s, const quat &q1, const quat &q2)
nv_scalar dot (const quat &q1, const quat &q2)
quatslerp_quats (quat &p, nv_scalar s, const quat &q1, const quat &q2)
nv_scalar nv_random ()
mat3tangent_basis (mat3 &basis, const vec3 &v0, const vec3 &v1, const vec3 &v2, const vec2 &t0, const vec2 &t1, const vec2 &t2, const vec3 &n)
nv_scalar tb_project_to_sphere (nv_scalar r, nv_scalar x, nv_scalar y)
quattrackball (quat &q, vec2 &pt1, vec2 &pt2, nv_scalar trackballsize)
vec3cube_map_normal (int i, int x, int y, int cubesize, vec3 &v)
nv_scalar nv_area (const vec3 &v1, const vec3 &v2, const vec3 &v3)
nv_scalar nv_perimeter (const vec3 &v1, const vec3 &v2, const vec3 &v3)
nv_scalar nv_find_in_circle (vec3 &center, const vec3 &v1, const vec3 &v2, const vec3 &v3)
nv_scalar nv_find_circ_circle (vec3 &center, const vec3 &v1, const vec3 &v2, const vec3 &v3)
nv_scalar ffast_cos (const nv_scalar x)
nv_scalar fast_cos (const nv_scalar x)
void nv_is_valid (const vec3 &v)
void nv_is_valid (nv_scalar lambda)

Variables

const int HALF_RAND = (RAND_MAX / 2)


Define Documentation

#define _finite   finite
 

Definition at line 21 of file nv_algebra.cpp.

Referenced by nv_is_valid().

#define _isnan   isnan
 

Definition at line 20 of file nv_algebra.cpp.

Referenced by nv_is_valid().

#define acosf   acos
 

Definition at line 951 of file nv_algebra.cpp.

Referenced by slerp_quats().


Function Documentation

mat3& add mat3 A,
const mat3 B
 

Definition at line 326 of file nv_algebra.cpp.

References mat3::a00, mat3::a01, mat3::a02, mat3::a10, mat3::a11, mat3::a12, mat3::a20, mat3::a21, and mat3::a22.

mat4& add mat4 A,
const mat4 B
 

Definition at line 305 of file nv_algebra.cpp.

vec3& add vec3 u,
const vec3 v,
const vec3 w
 

Definition at line 145 of file nv_algebra.cpp.

quat & add_quats quat p,
const quat q1,
const quat q2
 

Definition at line 917 of file nv_algebra.cpp.

References quat::w, quat::x, quat::y, and quat::z.

quat & axis_to_quat quat q,
const vec3 a,
const nv_scalar  phi
 

Definition at line 887 of file nv_algebra.cpp.

References normalize(), nv_two, quat::w, vec3::x, quat::x, vec3::y, quat::y, vec3::z, and quat::z.

Referenced by trackball().

Here is the call graph for this function:

quat & conj quat p,
const quat q
 

Definition at line 908 of file nv_algebra.cpp.

quat& conj quat p  ) 
 

Definition at line 900 of file nv_algebra.cpp.

vec3& cross vec3 u,
const vec3 v,
const vec3 w
 

Definition at line 52 of file nv_algebra.cpp.

References vec3::x, vec3::y, and vec3::z.

Referenced by look_at(), nv_area(), mat4::set_rot(), mat3::set_rot(), tangent_basis(), and trackball().

vec3& cube_map_normal int  i,
int  x,
int  y,
int  cubesize,
vec3 v
 

Definition at line 1290 of file nv_algebra.cpp.

References normalize(), nv_one, nv_two, nv_zero_5, vec3::x, vec3::y, and vec3::z.

Here is the call graph for this function:

nv_scalar det const mat3 A  ) 
 

Definition at line 596 of file nv_algebra.cpp.

References mat3::a00, mat3::a01, mat3::a02, mat3::a10, mat3::a11, mat3::a12, mat3::a20, mat3::a21, mat3::a22, and det3x3().

Referenced by invert().

Here is the call graph for this function:

nv_scalar det2x2 nv_scalar  a1,
nv_scalar  a2,
nv_scalar  b1,
nv_scalar  b2
 

Definition at line 504 of file nv_algebra.cpp.

Referenced by det3x3().

nv_scalar det3x3 nv_scalar  a1,
nv_scalar  a2,
nv_scalar  a3,
nv_scalar  b1,
nv_scalar  b2,
nv_scalar  b3,
nv_scalar  c1,
nv_scalar  c2,
nv_scalar  c3
 

Definition at line 517 of file nv_algebra.cpp.

References det2x2().

Referenced by det(), and invert().

Here is the call graph for this function:

nv_scalar dot const quat q1,
const quat q2
 

Definition at line 945 of file nv_algebra.cpp.

nv_scalar& dot nv_scalar s,
const quat q1,
const quat q2
 

Definition at line 939 of file nv_algebra.cpp.

References quat::w, quat::x, quat::y, and quat::z.

nv_scalar dot const vec4 v,
const vec3 w
 

Definition at line 99 of file nv_algebra.cpp.

nv_scalar& dot nv_scalar u,
const vec4 v,
const vec3 w
 

Definition at line 93 of file nv_algebra.cpp.

nv_scalar dot const vec3 v,
const vec4 w
 

Definition at line 88 of file nv_algebra.cpp.

nv_scalar& dot nv_scalar u,
const vec3 v,
const vec4 w
 

Definition at line 82 of file nv_algebra.cpp.

nv_scalar dot const vec4 v,
const vec4 w
 

Definition at line 77 of file nv_algebra.cpp.

nv_scalar& dot nv_scalar u,
const vec4 v,
const vec4 w
 

Definition at line 71 of file nv_algebra.cpp.

nv_scalar dot const vec3 v,
const vec3 w
 

Definition at line 66 of file nv_algebra.cpp.

nv_scalar& dot nv_scalar u,
const vec3 v,
const vec3 w
 

Definition at line 60 of file nv_algebra.cpp.

Referenced by NVMeshMender::Munge(), nv_find_circ_circle(), reflect(), mat4::set_rot(), mat3::set_rot(), and slerp_quats().

nv_scalar fast_cos const nv_scalar  x  ) 
 

Definition at line 1439 of file nv_algebra.cpp.

References nv_one.

nv_scalar ffast_cos const nv_scalar  x  ) 
 

Definition at line 1423 of file nv_algebra.cpp.

References nv_one.

mat4& frustum mat4 M,
const nv_scalar  l,
const nv_scalar  r,
const nv_scalar  b,
const nv_scalar  t,
const nv_scalar  n,
const nv_scalar  f
 

Definition at line 696 of file nv_algebra.cpp.

References mat4::a00, mat4::a01, mat4::a02, mat4::a03, mat4::a10, mat4::a11, mat4::a12, mat4::a13, mat4::a20, mat4::a21, mat4::a22, mat4::a23, mat4::a30, mat4::a31, mat4::a32, mat4::a33, nv_one, and nv_two.

Referenced by perspective(), and kerosin::RenderServer::Render().

mat3& invert mat3 B,
const mat3 A
 

Definition at line 603 of file nv_algebra.cpp.

References mat3::a00, mat3::a01, mat3::a02, mat3::a10, mat3::a11, mat3::a12, mat3::a20, mat3::a21, mat3::a22, det(), and nv_one.

Here is the call graph for this function:

mat4& invert mat4 B,
const mat4 A
 

Definition at line 524 of file nv_algebra.cpp.

mat4& invert_rot_trans mat4 B,
const mat4 A
 

Definition at line 575 of file nv_algebra.cpp.

References mat4::a00, mat4::a01, mat4::a02, mat4::a03, mat4::a10, mat4::a11, mat4::a12, mat4::a13, mat4::a20, mat4::a21, mat4::a22, mat4::a23, mat4::a30, mat4::a31, mat4::a32, and mat4::a33.

mat4& look_at mat4 M,
const vec3 eye,
const vec3 center,
const vec3 up
 

Definition at line 661 of file nv_algebra.cpp.

References mat4::a00, mat4::a01, mat4::a02, mat4::a03, mat4::a10, mat4::a11, mat4::a12, mat4::a13, mat4::a20, mat4::a21, mat4::a22, mat4::a23, mat4::a30, mat4::a31, mat4::a32, mat4::a33, cross(), normalize(), nv_one, nv_zero, vec3::x, vec3::y, and vec3::z.

Here is the call graph for this function:

vec3& madd vec3 u,
const vec3 v,
const nv_scalar lambda
 

Definition at line 113 of file nv_algebra.cpp.

References vec3::x, vec3::y, and vec3::z.

Referenced by nv_find_circ_circle(), nv_find_in_circle(), and reflect().

quat& mat_2_quat quat q,
const mat4 M
 

Definition at line 876 of file nv_algebra.cpp.

References quat::FromMatrix(), and mat4::get_rot().

Here is the call graph for this function:

quat & mat_2_quat quat q,
const mat3 M
 

Definition at line 870 of file nv_algebra.cpp.

mat3& mult mat3 C,
const mat3 A,
const mat3 B
 

Definition at line 401 of file nv_algebra.cpp.

References mat3::a00, mat3::a01, mat3::a02, mat3::a10, mat3::a11, mat3::a12, mat3::a20, mat3::a21, and mat3::a22.

mat4& mult mat4 C,
const mat4 A,
const mat4 B
 

Definition at line 350 of file nv_algebra.cpp.

vec3& mult vec3 u,
const vec3 v,
const mat4 M
 

Definition at line 297 of file nv_algebra.cpp.

vec3& mult vec3 u,
const mat4 M,
const vec3 v
 

Definition at line 289 of file nv_algebra.cpp.

vec4& mult vec4 u,
const vec4 v,
const mat4 M
 

Definition at line 226 of file nv_algebra.cpp.

vec4& mult vec4 u,
const mat4 M,
const vec4 v
 

Definition at line 217 of file nv_algebra.cpp.

vec3& mult vec3 u,
const vec3 v,
const mat3 M
 

Definition at line 191 of file nv_algebra.cpp.

vec3& mult vec3 u,
const mat3 M,
const vec3 v
 

Definition at line 183 of file nv_algebra.cpp.

vec3& mult vec3 u,
const vec3 v,
const vec3 w
 

Definition at line 129 of file nv_algebra.cpp.

vec3& mult vec3 u,
const vec3 v,
const nv_scalar lambda
 

Definition at line 121 of file nv_algebra.cpp.

Referenced by nv_find_circ_circle(), nv_find_in_circle(), and reflect().

vec3& mult_dir vec3 u,
const vec3 v,
const mat4 M
 

Definition at line 281 of file nv_algebra.cpp.

References mat4::a00, mat4::a01, mat4::a02, mat4::a10, mat4::a11, mat4::a12, mat4::a20, mat4::a21, mat4::a22, vec3::x, vec3::y, and vec3::z.

vec3& mult_dir vec3 u,
const mat4 M,
const vec3 v
 

Definition at line 273 of file nv_algebra.cpp.

vec3& mult_pos vec3 u,
const vec3 v,
const mat4 M
 

Definition at line 264 of file nv_algebra.cpp.

References mat4::a00, mat4::a01, mat4::a02, mat4::a03, mat4::a10, mat4::a11, mat4::a12, mat4::a13, mat4::a20, mat4::a21, mat4::a22, mat4::a23, mat4::a30, mat4::a31, mat4::a32, mat4::a33, nv_one, vec3::x, vec3::y, and vec3::z.

vec3& mult_pos vec3 u,
const mat4 M,
const vec3 v
 

Definition at line 255 of file nv_algebra.cpp.

quat& normalize quat p  ) 
 

Definition at line 647 of file nv_algebra.cpp.

References nv_eps, nv_one, nv_zero, quat::w, quat::x, quat::y, and quat::z.

vec4& normalize vec4 u  ) 
 

Definition at line 637 of file nv_algebra.cpp.

vec3& normalize vec3 u  ) 
 

Definition at line 627 of file nv_algebra.cpp.

Referenced by axis_to_quat(), cube_map_normal(), look_at(), and NVMeshMender::Munge().

nv_scalar nv_area const vec3 v1,
const vec3 v2,
const vec3 v3
 

Definition at line 1336 of file nv_algebra.cpp.

References cross(), nv_norm(), and nv_zero_5.

Referenced by nv_find_in_circle().

Here is the call graph for this function:

nv_scalar nv_find_circ_circle vec3 center,
const vec3 v1,
const vec3 v2,
const vec3 v3
 

Definition at line 1391 of file nv_algebra.cpp.

References dot(), madd(), mult(), nv_one, nv_zero_5, and sub().

Here is the call graph for this function:

nv_scalar nv_find_in_circle vec3 center,
const vec3 v1,
const vec3 v2,
const vec3 v3
 

Definition at line 1361 of file nv_algebra.cpp.

References madd(), mult(), nv_area(), nv_eps, nv_norm(), nv_one, nv_perimeter(), nv_two, nv_zero, and sub().

Here is the call graph for this function:

void nv_is_valid nv_scalar  lambda  ) 
 

Definition at line 1466 of file nv_algebra.cpp.

References _finite, and _isnan.

void nv_is_valid const vec3 v  ) 
 

Definition at line 1460 of file nv_algebra.cpp.

nv_scalar nv_perimeter const vec3 v1,
const vec3 v2,
const vec3 v3
 

Definition at line 1347 of file nv_algebra.cpp.

References nv_norm(), and sub().

Referenced by nv_find_in_circle().

Here is the call graph for this function:

nv_scalar nv_random  ) 
 

Definition at line 979 of file nv_algebra.cpp.

References HALF_RAND.

const quat operator * const quat p,
const quat q
 

Definition at line 848 of file nv_algebra.cpp.

const vec4 operator * const vec4 v,
const mat4 M
 

Definition at line 245 of file nv_algebra.cpp.

const vec4 operator * const mat4 M,
const vec4 v
 

Definition at line 235 of file nv_algebra.cpp.

const vec3 operator * const vec3 v,
const mat3 M
 

Definition at line 208 of file nv_algebra.cpp.

const vec3 operator * const mat3 M,
const vec3 v
 

Definition at line 199 of file nv_algebra.cpp.

mat4& perspective mat4 M,
const nv_scalar  fovy,
const nv_scalar  aspect,
const nv_scalar  n,
const nv_scalar  f
 

Definition at line 721 of file nv_algebra.cpp.

References frustum(), nv_to_rad, and nv_zero_5.

Here is the call graph for this function:

mat3 & quat_2_mat mat3 M,
const quat q
 

Definition at line 864 of file nv_algebra.cpp.

References quat::ToMatrix().

Here is the call graph for this function:

vec3& reflect vec3 r,
const vec3 n,
const vec3 l
 

Definition at line 104 of file nv_algebra.cpp.

References dot(), madd(), mult(), nv_one, and nv_two.

Here is the call graph for this function:

vec4& scale vec4 u,
const nv_scalar  s
 

Definition at line 174 of file nv_algebra.cpp.

References vec4::w, vec4::x, vec4::y, and vec4::z.

vec3& scale vec3 u,
const nv_scalar  s
 

Definition at line 166 of file nv_algebra.cpp.

Referenced by salt::Matrix::CalcSpotLight(), quat::FromMatrix(), normalize(), and quat::quat().

quat& slerp_quats quat p,
nv_scalar  s,
const quat q1,
const quat q2
 

Definition at line 954 of file nv_algebra.cpp.

References acosf, dot(), nv_eps, quat::w, quat::x, quat::y, and quat::z.

Here is the call graph for this function:

vec3& sub vec3 u,
const vec3 v,
const vec3 w
 

Definition at line 137 of file nv_algebra.cpp.

References vec3::x, vec3::y, and vec3::z.

Referenced by nv_find_circ_circle(), nv_find_in_circle(), and nv_perimeter().

mat3& tangent_basis mat3 basis,
const vec3 v0,
const vec3 v1,
const vec3 v2,
const vec2 t0,
const vec2 t1,
const vec2 t2,
const vec3 n
 

Definition at line 1149 of file nv_algebra.cpp.

References mat3::a00, mat3::a01, mat3::a02, mat3::a10, mat3::a11, mat3::a12, mat3::a20, mat3::a21, mat3::a22, cross(), nv_eps, nv_one, nv_zero, vec2::s, vec2::t, vec3::x, vec3::y, and vec3::z.

Here is the call graph for this function:

nv_scalar tb_project_to_sphere nv_scalar  r,
nv_scalar  x,
nv_scalar  y
 

Definition at line 1225 of file nv_algebra.cpp.

Referenced by trackball().

quat& trackball quat q,
vec2 pt1,
vec2 pt2,
nv_scalar  trackballsize
 

Definition at line 1251 of file nv_algebra.cpp.

References axis_to_quat(), cross(), nv_one, nv_two, quat_id, tb_project_to_sphere(), vec2::x, vec3::x, vec2::y, vec3::y, and vec3::z.

Here is the call graph for this function:

mat3& transpose mat3 B,
const mat3 A
 

Definition at line 483 of file nv_algebra.cpp.

mat4& transpose mat4 B,
const mat4 A
 

Definition at line 462 of file nv_algebra.cpp.

mat4& transpose mat4 A  ) 
 

Definition at line 433 of file nv_algebra.cpp.

mat3& transpose mat3 A  ) 
 

Definition at line 416 of file nv_algebra.cpp.


Variable Documentation

const int HALF_RAND = (RAND_MAX / 2)
 

Definition at line 977 of file nv_algebra.cpp.

Referenced by nv_random().


Generated on Thu Apr 6 15:32:10 2006 for rcssserver3d by  doxygen 1.4.4