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;