Geometer.h File Reference

#include "CyberX3D.h"

Go to the source code of this file.

Namespaces

namespace  csl

Classes

struct  csl::soundray
struct  csl::polygon
class  csl::Geometer

Defines

#define EXPAND(a)   a##_x, a##_y, a##_z
#define ZERO(a)   ((a##_x == 0.0f) && (a##_y == 0.0f) && (a##_z == 0.0f))
#define SET(a, x, y, z)
#define VECTOR_COPY(d, s)
#define SCALAR_PRODUCT(p, s, a)
#define DOT_PRODUCT(a, b)   (a##_x*b##_x + a##_y*b##_y + a##_z*b##_z)
#define CROSS_PRODUCT(p, a, b)
#define COMPONENTWISE_PRODUCT(p, a, b)
#define VECTOR_SCALE(p, s)
#define VECTOR_SUM(s, a, b)
#define VECTOR_ADD(s, a)
#define VECTOR_DIFF(s, a, b)
#define MAGNITUDE(a)   sqrt(a##_x*a##_x + a##_y*a##_y + a##_z*a##_z)
#define PROJECT(p, t, a, b, n, s)
#define REFLECT(r, t, a, n, s)
#define XYROTATE(r, a, phi)


Define Documentation

#define EXPAND  )     a##_x, a##_y, a##_z
 

#define ZERO  )     ((a##_x == 0.0f) && (a##_y == 0.0f) && (a##_z == 0.0f))
 

#define SET a,
x,
y,
 ) 
 

Value:

a##_x = x; \
    a##_y = y; \
    a##_z = z;

#define VECTOR_COPY d,
 ) 
 

Value:

d##_x = s##_x;\
    d##_y = s##_y;\
    d##_z = s##_z;

#define SCALAR_PRODUCT p,
s,
 ) 
 

Value:

p##_x = s * a##_x;\
    p##_y = s * a##_y;\
    p##_z = s * a##_z;

#define DOT_PRODUCT a,
 )     (a##_x*b##_x + a##_y*b##_y + a##_z*b##_z)
 

#define CROSS_PRODUCT p,
a,
 ) 
 

Value:

p##_x = a##_y * b##_z - a##_z * b##_y; \
    p##_y = a##_z * b##_x - a##_x * b##_z; \
    p##_z = a##_x * b##_y - a##_y * b##_x;

#define COMPONENTWISE_PRODUCT p,
a,
 ) 
 

Value:

p##_x = a##_x * b##_x;\
    p##_y = a##_y * b##_y;\
    p##_z = a##_z * b##_z;

#define VECTOR_SCALE p,
 ) 
 

Value:

p##_x *= s;\
    p##_y *= s;\
    p##_z *= s;

#define VECTOR_SUM s,
a,
 ) 
 

Value:

s##_x = a##_x + b##_x;\
    s##_y = a##_y + b##_y;\
    s##_z = a##_z + b##_z;

#define VECTOR_ADD s,
 ) 
 

Value:

s##_x += a##_x;\
    s##_y += a##_y;\
    s##_z += a##_z;

#define VECTOR_DIFF s,
a,
 ) 
 

Value:

s##_x = a##_x - b##_x;\
    s##_y = a##_y - b##_y;\
    s##_z = a##_z - b##_z;

#define MAGNITUDE  )     sqrt(a##_x*a##_x + a##_y*a##_y + a##_z*a##_z)
 

#define PROJECT p,
t,
a,
b,
n,
 ) 
 

Value:

VECTOR_DIFF(p, a, b) \
    if (ZERO(p)) \
    { \
        if (s == DOT_PRODUCT(n, a)) \
        { \
            t = 0.5f; \
            VECTOR_COPY(p, a) \
        } \
        else \
        { \
            t = 1e38f; \
            p##_x = 1e38f; \
            p##_y = 1e38f; \
            p##_z = 1e38f; \
        } \
    } \
    else \
    { \
        t = (s - DOT_PRODUCT(n, b)) / DOT_PRODUCT(n, p); \
        VECTOR_SCALE(p, t) \
        VECTOR_ADD(p, b) \
    }

#define REFLECT r,
t,
a,
n,
 ) 
 

Value:

t = s - DOT_PRODUCT(n, a); \
    t += t; \
    SCALAR_PRODUCT(r, t, n) \
    VECTOR_ADD(r, a)

#define XYROTATE r,
a,
phi   ) 
 

Value:

r##_x = a##_x*cos(phi) - a##_y*sin(phi); \
    r##_y = a##_x*sin(phi) + a##_y*cos(phi); \
    r##_z = a##_z;


Generated on Fri Apr 6 20:18:15 2007 for CSL by  doxygen 1.4.5-20051010