DAVID 3D Scanning SDK for Sprout
1.8.6
|
Basic vector/frame operations working on template<>-arrays. More...
#include <math.h>
Go to the source code of this file.
Functions | |
template<class T1 , class T2 > | |
void | Vset (T1 *Vr, T2 x, T2 y, T2 z) |
set vector (3d) | |
template<class T1 , class T2 > | |
void | VcV (T1 *Vr, const T2 *V) |
copy vector | |
template<class T1 , class T2 , class T3 > | |
void | VmV (T1 *Vr, const T2 *V1, const T3 *V2) |
subtract vector | |
template<class T1 , class T2 > | |
T1 * | VmV (T1 *Vr, const T2 *V1) |
substract vector inplace | |
template<class T1 , class T2 , class T3 > | |
void | VpV (T1 *Vr, const T2 *V1, const T3 *V2) |
add vector | |
template<class T1 , class T2 > | |
T1 * | VpV (T1 *Vr, const T2 *V1) |
add vector inplace | |
template<class T1 , class T2 , class T3 > | |
void | VxS (T1 *Vr, const T2 *V, T3 s) |
scale vector | |
template<class T1 , class T2 > | |
T1 * | VxS (T1 *Vr, T2 s) |
scale vector inplace | |
template<class T1 , class T2 , class T3 > | |
void | VcrossV (T1 *Vr, const T2 *V1, const T3 *V2) |
cross(vector)-product | |
template<class T1 , class T2 > | |
T1 | VdotV (const T1 *V1, const T2 *V2) |
dot-product | |
template<class T1 > | |
T1 | Vlength (const T1 *V) |
length of a vector | |
template<class T1 , class T2 > | |
T1 | VdistV (const T1 *V1, const T2 *V2) |
distance between two vectors (=length of difference vector) | |
template<class T1 , class T2 > | |
T1 | VsdistV (const T1 *V1, const T2 *V2) |
square distance between two vectors (=length of difference vector) | |
template<class T1 , class T2 > | |
T1 | VcosV (const T1 *V1, const T2 *V2) |
cosine of angle between two vectors | |
template<class T1 , class T2 > | |
T1 | VsinV (const T1 *V1, const T2 *V2) |
sinus of angle between two vectors | |
template<class T1 , class T2 > | |
T1 | VangleV (const T1 *V1, const T2 *V2) |
angle between two vectors | |
template<class T1 , class T2 , class T3 > | |
void | VV2SC (T1 *SC, const T2 *V1, const T3 *V2) |
calculates (sine,cosine)-vector of the angle between two given vectors | |
template<class T1 , class T2 , class T3 > | |
void | SCpSC (T1 *SC_sum, const T2 *SC_a, const T3 *SC_b) |
Calculates (sin(a+b),cos(a+b)) out of (sin(a),cos(a)) and (sin(b),cos(b)) | |
template<class T1 , class T2 > | |
T1 * | SCpSC (T1 *SC_r, const T2 *SC_b) |
Calculates (sin(a+b),cos(a+b)) out of (sin(a),cos(a)) and (sin(b),cos(b)) inplace. | |
template<class T1 , class T2 > | |
void | Angle2SC (T1 *SC, T2 angle) |
Calculates (sin(a),cos(a)) | |
template<class T1 , class T2 , class T3 > | |
void | SCmSC (T1 *SC_diff, const T2 *SC_a, const T3 *SC_b) |
Calculates (sin(a-b),cos(a-b)) out of (sin(a),cos(a)) and (sin(b),cos(b)) | |
template<class T1 , class T2 , class T3 > | |
void | SCdouble (T1 *SC_double, const T2 *SC_a) |
Calculates (sin(2*a),cos(2*a) out of (sin(a),cos(a)) | |
template<class T1 , class T2 > | |
void | Vnormalize (T1 *Vr, const T2 *V) |
normalize vector | |
template<class T1 > | |
T1 * | Vnormalize (T1 *V) |
normalize vector inplace | |
template<class T1 > | |
T1 * | VnormalizeIf (T1 *V) |
normalize vector inplace but only if length is != 0 | |
template<class T1 > | |
T1 | detVVV (const T1 *V1, const T1 *V2, const T1 *V3) |
determinant of matrix (in columns or rows) | |
template<class T1 > | |
T1 | det3x3 (const T1 a00, const T1 a01, const T1 a02, const T1 a10, const T1 a11, const T1 a12, const T1 a20, const T1 a21, const T1 a22) |
determinant of matrix (in single entries) | |
template<class Tr , class T1 , class T2 , class T3 > | |
void | FxV (Tr *Vr, const T1 *F, const T2 *V, const T3 V3) |
frame-vector product | |
template<class Tr , class T1 , class T3 > | |
Tr * | FxV (const T1 *F, Tr *V, const T3 V3) |
frame-vector product inplace | |
template<class Tr , class T1 > | |
void | V4set (Tr *Vr, T1 x, T1 y, T1 z, T1 h) |
set vector4 | |
template<class Tr , class T1 > | |
void | V4cV4 (Tr *Vr, const T1 *V) |
copy vector4 | |
template<class Tr , class T1 > | |
void | FcF (Tr *Fr, const T1 *F) |
copy frame | |
template<class Tr , class T1 , class T2 > | |
void | FxV4 (Tr *Vr, const T1 *F, const T2 *V) |
frame-vector4 product | |
template<class Tr , class T1 , class T2 > | |
void | FxF (Tr *Fr, const T1 *F1, const T2 *F2) |
frame-frame product | |
template<class Tr > | |
void | Finverse (Tr *Fr) |
frame inversion (only for orthonormed frames!!) | |
template<class Tr > | |
void | Fidentity (Tr *Fr) |
load identity frame | |
template<class Tr , class T1 > | |
void | Frotx (Tr *Fr, const T1 angle) |
load x-rotation frame | |
template<class Tr , class T1 > | |
void | Froty (Tr *Fr, const T1 angle) |
load y-rotation frame | |
template<class Tr , class T1 > | |
void | Frotz (Tr *Fr, const T1 angle) |
load z-rotation frame | |
template<class Tr , class T1 , class T2 > | |
void | Frotv (Tr *Fr, const T1 *V, const T2 angle) |
load vector-rotation frame | |
template<class T1 , class T2 > | |
void | V6set (T1 *Vr, T2 x, T2 y, T2 z, T2 nx, T2 ny, T2 nz) |
set 6d-vector | |
template<class T1 , class T2 > | |
void | V6cV6 (T1 *Vr, const T2 *V) |
copy 6d-vector | |
template<class T1 , class T2 , class T3 > | |
void | V6mV6 (T1 *Vr, const T2 *V1, const T3 *V2) |
subtract 6d-vector | |
template<class T1 , class T2 > | |
T1 * | V6mV6 (T1 *Vr, const T2 *V1) |
substract 6d-vector inplace | |
template<class T1 , class T2 , class T3 > | |
void | V6pV6 (T1 *Vr, const T2 *V1, const T3 *V2) |
add 6d-vector | |
template<class T1 , class T2 > | |
T1 * | V6pV6 (T1 *Vr, const T2 *V1) |
add 6d-vector inplace | |
template<class T1 , class T2 , class T3 > | |
void | V6xS (T1 *Vr, const T2 *V, T3 s) |
scale 6d-vector | |
template<class T1 , class T2 > | |
T1 * | V6xS (T1 *Vr, T2 s) |
scale 6d-vector inplace | |
template<class T1 , class T2 > | |
T1 | V6dotV6 (const T1 *V1, const T2 *V2) |
6d-vector dot-product | |
template<class T1 > | |
T1 | V6length (const T1 *V) |
length of a 6d-vector | |
template<class T1 , class T2 > | |
T1 | V6distV6 (const T1 *V1, const T2 *V2) |
distance between two 6d-vectors (=length of difference vector) | |
template<class T1 , class T2 > | |
T1 | V6sdistV6 (const T1 *V1, const T2 *V2) |
square distance between two 6d-vectors (=length of difference vector) | |
template<class T1 , class T2 > | |
T1 | V6angleV6 (const T1 *V1, const T2 *V2) |
angle between two 6d-vectors | |
template<class T1 , class T2 > | |
void | V6normalize (T1 *Vr, const T2 *V) |
normalize 6d-vector | |
template<class T1 > | |
T1 * | V6normalize (T1 *V) |
normalize 6d-vector inplace | |
template<class Tr , class T1 , class T2 > | |
void | MxV6 (Tr *Vr, const T1 *M, const T2 *V) |
6x6Matrix-6d-vector product | |
template<class T1 , class T2 > | |
void | V0cV0 (T1 *Vr, const T2 *V, const int dim) |
copy vector | |
template<class T1 , class T2 , class T3 > | |
void | V0mV0 (T1 *Vr, const T2 *V1, const T3 *V2, const int dim) |
subtract vector | |
template<class T1 , class T2 > | |
T1 * | V0mV0 (T1 *Vr, const T2 *V1, const int dim) |
substract vector inplace | |
template<class T1 , class T2 , class T3 > | |
void | V0pV0 (T1 *Vr, const T2 *V1, const T3 *V2, const int dim) |
add vector | |
template<class T1 , class T2 > | |
T1 * | V0pV0 (T1 *Vr, const T2 *V1, const int dim) |
add vector inplace | |
template<class T1 , class T2 , class T3 > | |
void | V0xS (T1 *Vr, const T2 *V, T3 s, const int dim) |
scale vector | |
template<class T1 , class T2 > | |
T1 * | V0xS (T1 *Vr, T2 s, const int dim) |
scale vector inplace | |
template<class T1 , class T2 > | |
T1 | V0dotV0 (const T1 *V1, const T2 *V2, const int dim) |
vector dot-product | |
template<class T1 > | |
T1 | V0length (const T1 *V, const int dim) |
length of a vector | |
template<class T1 , class T2 > | |
T1 | V0distV0 (const T1 *V1, const T2 *V2, const int dim) |
distance between two vectors (=length of difference vector) | |
template<class T1 , class T2 > | |
T1 | V0sdistV0 (const T1 *V1, const T2 *V2, const int dim) |
square distance between two vectors (=length of difference vector) | |
template<class T1 , class T2 > | |
T1 | V0angleV0 (const T1 *V1, const T2 *V2, const int dim) |
angle between two vectors | |
template<class T1 , class T2 > | |
void | V0normalize (T1 *Vr, const T2 *V, const int dim) |
normalize vector | |
template<class T1 > | |
T1 * | V0normalize (T1 *V, const int dim) |
normalize vector inplace | |
Variables | |
const double | PI = 3.14159265358979323846 |
define pi if its not already defined | |
Basic vector/frame operations working on template<>-arrays.
Definition in file FastVector.h.