#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) |
|
|
|
|
|
|
|
|
Value: a##_x = x; \
a##_y = y; \
a##_z = z;
|
|
|
Value: d##_x = s##_x;\
d##_y = s##_y;\
d##_z = s##_z;
|
|
|
Value: p##_x = s * a##_x;\
p##_y = s * a##_y;\
p##_z = s * a##_z;
|
|
|
|
|
|
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;
|
|
|
Value: p##_x = a##_x * b##_x;\
p##_y = a##_y * b##_y;\
p##_z = a##_z * b##_z;
|
|
|
Value: p##_x *= s;\
p##_y *= s;\
p##_z *= s;
|
|
|
Value: s##_x = a##_x + b##_x;\
s##_y = a##_y + b##_y;\
s##_z = a##_z + b##_z;
|
|
|
Value: s##_x += a##_x;\
s##_y += a##_y;\
s##_z += a##_z;
|
|
|
Value: s##_x = a##_x - b##_x;\
s##_y = a##_y - b##_y;\
s##_z = a##_z - b##_z;
|
|
|
|
|
|
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) \ } |
|
|
Value: t = s - DOT_PRODUCT(n, a); \ t += t; \ SCALAR_PRODUCT(r, t, n) \ VECTOR_ADD(r, a) |
|
|
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;
|
1.4.5-20051010