73 lines
1.1 KiB
C
73 lines
1.1 KiB
C
/*
|
|
* Copyright (c) 1992,1993-1995 Argonaut Technologies Limited. All rights reserved.
|
|
*
|
|
* $Id: shortcut.h 1.5 1995/02/22 21:42:40 sam Exp $
|
|
* $Locker: $
|
|
*
|
|
* Some shortcut macros to make matrix, euler, and quaternion access
|
|
* shorter to read
|
|
*/
|
|
|
|
/*
|
|
* Matrices
|
|
*/
|
|
#define M(x,y) mat->m[x][y]
|
|
#define A(x,y) A->m[x][y]
|
|
#define B(x,y) B->m[x][y]
|
|
#define C(x,y) C->m[x][y]
|
|
|
|
/*
|
|
* Quaternions
|
|
*/
|
|
#define lX (l->x)
|
|
#define lY (l->y)
|
|
#define lZ (l->z)
|
|
#define lW (l->w)
|
|
|
|
#define rX (r->x)
|
|
#define rY (r->y)
|
|
#define rZ (r->z)
|
|
#define rW (r->w)
|
|
|
|
#define qX (q->x)
|
|
#define qY (q->y)
|
|
#define qZ (q->z)
|
|
#define qW (q->w)
|
|
|
|
#define tX (t.x)
|
|
#define tY (t.y)
|
|
#define tZ (t.z)
|
|
#define tW (t.w)
|
|
|
|
#define qqX (qq->x)
|
|
#define qqY (qq->y)
|
|
#define qqZ (qq->z)
|
|
#define qqW (qq->w)
|
|
|
|
#define qi(c) (((br_scalar *)(q))[c])
|
|
|
|
/*
|
|
* Euler angles
|
|
*/
|
|
#define eX (euler->a)
|
|
#define eY (euler->b)
|
|
#define eZ (euler->c)
|
|
#define eO (euler->order)
|
|
|
|
/*
|
|
* Scalars
|
|
*/
|
|
#define S1 BR_SCALAR(1.0)
|
|
#define S0 BR_SCALAR(0.0)
|
|
|
|
/*
|
|
* For digging around in points etc - makes things slightly easier to read
|
|
*/
|
|
#define X 0
|
|
#define Y 1
|
|
#define Z 2
|
|
#define W 3
|
|
|
|
#define U 0
|
|
#define V 1
|
|
|