/* The chunk identifier DPPV */ #define ID_DPPV MakeID('D','P','P','V') typedef LONG LongFrac; typedef struct ( LongFrac x,y,z; ) LFPoint; typedef LongFrac APoint[3]; typedef union { LFPoint l; APoint a; } UPoint; /* values taken by variable rotType */ #define ROT_EULER 0 #define ROT_INCR 1 /* Disk record describing Perspective state */ typedef struct { WORD rotType; /* rotation type */ WORD iA, iB, iC; /* rotation angles (in degrees) */ LongFrac Depth; /* perspective depth */ WORD uCenter, vCenter; /* coords of center perspective, * relative to backing bitmap, * in Virtual coords */ WORD fixCoord; /* which coordinate is fixed */ WORD angleStep; /* large angle stepping amount */ UPoint grid; /* gridding spacing in X,Y,Z */ UPoint gridReset; /* where the grid goes on Reset */ UPoint gridBrCenter; /* Brush center when grid was last on, * as reference point */ UPoint permBrCenter; /* Brush center the last time the mouse * button was clicked, a rotation performed, * or motion along "fixed" axis */ LongFrac rot[3][3]; /* rotation matrix */ } PerspState;