35 lines
697 B
C
35 lines
697 B
C
// MACROS
|
|
|
|
// swap(x, y, buffer)
|
|
|
|
#define SWAP(a,b,c) {(c)=(a); (a)=(b); (b)=(c);}
|
|
|
|
// dotproduct of two vectors
|
|
|
|
#define dotProduct(v0, v1) \
|
|
(v0).vx * (v1).vx + \
|
|
(v0).vy * (v1).vy + \
|
|
(v0).vz * (v1).vz
|
|
|
|
// min value
|
|
|
|
#define min(a,b) \
|
|
(a)-(b)>0?(b):(a)
|
|
// max
|
|
|
|
#define max(a,b) \
|
|
(a)-(b)>0?(a):(b)
|
|
|
|
// substract vector
|
|
|
|
#define subVector(v0, v1) \
|
|
(v0).vx - (v1).vx, \
|
|
(v0).vy - (v1).vy, \
|
|
(v0).vz - (v1).vz
|
|
|
|
|
|
#define normalizeVector(v) \
|
|
((v)->vx << 12) >> 8, \
|
|
((v)->vy << 12) >> 8, \
|
|
((v)->vz << 12) >> 8
|