
 
 F,
 FL,
 G,
 GL,
 Tex,
 TexL,
 TexG,
 TexGL,
 CTex,
 CTexL,
 CTexG,
 CTexGL,
 AF,
 AFL,
 AG,
 AGL,
 ATex,
 ATexL,
 ATexG,
 ATexGL,
 CATex,
 CATexL,
 CATexG,
 CATexGL,
BAptTex,
 PpolyTypeNum
} PpolyType;
typedef Trotation Pmatrix;
typedef Tpoint Ppoint;
typedef struct Pcolor {
 float r, g, b, a;
} Pcolor;
typedef struct Pnormal {
 float i, j, k;
} Pnormal;
typedef struct Ptexcoord {
 float u, v;
} Ptexcoord;
typedef float Pintensity;
typedef struct PclipInfo {
 UInt32 clipFlag;   // Which edges
this point is outside
 float csX, csY, csZ;  // Camera space
coordinates of this point
} PclipInfo;
 
/********************************************\
 Polygon structures
\********************************************/
typedef struct Prim {
 PpolyType type;
 int   nVerts;
 int   *xyz;  // Indexes
XformedPosPool
} Prim;
typedef struct PrimPointFC: public
Prim {
 int   rgba;  // Indexes
ColorPool
} PrimPointFC;
typedef struct PrimLineFC: public
Prim {
 int   rgba;  // Indexes
ColorPool
} PrimLineFC;
typedef struct PrimLtStr: public
Prim {
 int   rgba;   // Indexes
ColorPool
 int   rgbaBack;  // Indexes
ColorPool (-1 means omnidirectional -- could subclass instead)
 float  i, j, k;  // Direction
vector (negative dot with eyepos means use back color)
} PrimLtStr;
typedef struct Poly: public Prim {
 float  A, B, C, D; // Polygon plane
equation for back face culling
} Poly;
typedef struct PolyFC:
public Poly {
 int   rgba;  // Indexes
ColorPool
} PolyFC;
typedef struct PolyVC: public Poly
{
 int   *rgba;  // Indexes
ColorPool
} PolyVC;
typedef struct PolyFCN: public PolyFC
{
 int   I;   // Indexes
IntesityPool
} PolyFCN;
typedef struct PolyVCN: public PolyVC
{
 int   *I;   // Indexes
IntesityPool
} PolyVCN;
typedef struct PolyTexFC: public
PolyFC {
 int   texIndex; // Indexes the
local texture id table
 Ptexcoord *uv;
} PolyTexFC;
typedef struct PolyTexVC: public
PolyVC {
 int   texIndex; // Indexes the
local texture id table
 Ptexcoord *uv;
} PolyTexVC;
typedef struct PolyTexFCN: public PolyFCN
{
 int   texIndex; // Indexes the
local texture id table
 Ptexcoord *uv;
} PolyTexFCN;
typedef struct PolyTexVCN: public
PolyVCN {
 int   texIndex; // Indexes the
local texture id table
 Ptexcoord *uv;
} PolyTexVCN;