PEXStructures(3) — Subroutines
Name
PEXStructures - Common PEX structures Common Data Structures
Below are the data structures used that are common to more than one function described in the PEXlib man pages.
/∗ coordinates ∗/
typedef struct {
float x;
float y;
float z;
} PEXCoord;
typedef struct {
float x;
float y;
} PEXCoord2D;
/∗ vectors ∗/
typedef struct {
float x;
float y;
float z;
} PEXVector;
typedef struct {
float x;
float y;
} PEXVector2D;
/∗ matrices ∗/
typedef float PEXMatrix[4][4];
typedef float PEXMatrix3x3[3][3];
/∗ device coordinates, viewports and views ∗/
typedef struct {
PEXCoord min;
PEXCoord max;
} PEXNPCSubVolume;
typedef struct {
short x;
short y;
float z;
} PEXDeviceCoord;
typedef struct {
short x;
short y;
} PEXDeviceCoord2D;
typedef struct {
unsigned short clip_flags;
unsigned short reserved;
PEXNPCSubVolume clip_limits;
PEXMatrix orientation;
PEXMatrix mapping;
} PEXViewEntry;
/∗ facet data ∗/
typedef union {
PEXColorIndexed index;
PEXColorRGB rgb;
PEXColorHSV hsv;
PEXColorHLS hls;
PEXColorCIE cie;
PEXColorRGB8 rgb8;
PEXColorRGB16 rgb16;
PEXVector normal;
PEXColorIndexedNormal index_normal;
PEXColorRGBNormal rgb_normal;
PEXColorHSVNormal hsv_normal;
PEXColorHLSNormal hls_normal;
PEXColorCIENormal cie_normal;
PEXColorRGB8Normal rgb8_normal;
PEXColorRGB16Normal rgb16_normal;
} PEXFacetData;
typedef union {
PEXColorIndexed ∗index;
PEXColorRGB ∗rgb;
PEXColorHSV ∗hsv;
PEXColorHLS ∗hls;
PEXColorCIE ∗cie;
PEXColorRGB8 ∗rgb8;
PEXColorRGB16 ∗rgb16;
PEXVector ∗normal;
PEXColorIndexedNormal ∗index_normal;
PEXColorRGBNormal ∗rgb_normal;
PEXColorCIENormal ∗cie_normal;
PEXColorHSVNormal ∗hsv_normal;
PEXColorHLSNormal ∗hls_normal;
PEXColorRGB8Normal ∗rgb8_normal;
PEXColorRGB16Normal ∗rgb16_normal;
} PEXArrayOfFacetData;
typedef struct {
PEXTableIndex index;
unsigned short reserved;
} PEXColorIndexed;
typedef struct {
float red;
float green;
float blue;
} PEXColorRGB;
typedef struct {
float hue;
float saturation;
float value;
} PEXColorHSV;
typedef struct {
float hue;
float lightness;
float saturation;
} PEXColorHLS;
typedef struct {
float x;
float y;
float z;
} PEXColorCIE;
typedef struct {
unsigned char red;
unsigned char green;
unsigned char blue;
unsigned char reserved;
} PEXColorRGB8;
typedef struct {
unsigned short red;
unsigned short green;
unsigned short blue;
unsigned short reserved;
} PEXColorRGB16;
typedef struct {
PEXColorIndexed index;
PEXVector normal;
} PEXColorIndexedNormal;
typedef struct {
PEXColorRGB rgb;
PEXVector normal;
} PEXColorRGBNormal;
typedef struct {
PEXColorCIE cie;
PEXVector normal;
} PEXColorCIENormal;
typedef struct {
PEXColorHSV hsv;
PEXVector normal;
} PEXColorHSVNormal;
typedef struct {
PEXColorHLS hls;
PEXVector normal;
} PEXColorHLSNormal;
typedef struct {
PEXColorRGB8 rgb8;
PEXVector normal;
} PEXColorRGB8Normal;
typedef struct {
PEXColorRGB16 rgb16;
PEXVector normal;
} PEXColorRGB16Normal;
/∗ vertex data ∗/
typedef struct {
unsigned long count;
PEXArrayOfVertex vertices;
} PEXListOfVertex;
typedef union {
PEXCoord ∗no_data;
PEXVertexIndexed ∗index;
PEXVertexRGB ∗rgb;
PEXVertexHSV ∗hsv;
PEXVertexHLS ∗hls;
PEXVertexCIE ∗cie;
PEXVertexRGB8 ∗rgb8;
PEXVertexRGB16 ∗rgb16;
PEXVertexNormal ∗normal;
PEXVertexEdge ∗edge;
PEXVertexIndexedNormal ∗index_normal;
PEXVertexRGBNormal ∗rgb_normal;
PEXVertexHSVNormal ∗hsv_normal;
PEXVertexHLSNormal ∗hls_normal;
PEXVertexCIENormal ∗cie_normal;
PEXVertexRGB8Normal ∗rgb8_normal;
PEXVertexRGB16Normal ∗rgb16_normal;
PEXVertexIndexedEdge ∗index_edge;
PEXVertexRGBEdge ∗rgb_edge;
PEXVertexHSVEdge ∗hsv_edge;
PEXVertexHLSEdge ∗hls_edge;
PEXVertexCIEEdge ∗cie_edge;
PEXVertexRGB8Edge ∗rgb8_edge;
PEXVertexRGB16Edge ∗rgb16_edge;
PEXVertexNormalEdge ∗normal_edge;
PEXVertexIndexedNormalEdge ∗index_normal_edge;
PEXVertexRGBNormalEdge ∗rgb_normal_edge;
PEXVertexHSVNormalEdge ∗hsv_normal_edge;
PEXVertexHLSNormalEdge ∗hls_normal_edge;
PEXVertexCIENormalEdge ∗cie_normal_edge;
PEXVertexRGB8NormalEdge ∗rgb8_normal_edge;
PEXVertexRGB16NormalEdge ∗rgb16_normal_edge;
} PEXArrayOfVertex;
typedef struct {
PEXCoord point;
PEXColorIndexed index;
} PEXVertexIndexed;
typedef struct {
PEXCoord point;
PEXColorRGB rgb;
} PEXVertexRGB;
typedef struct {
PEXCoord point;
PEXColorHSV hsv;
} PEXVertexHSV;
typedef struct {
PEXCoord point;
PEXColorHLS hls;
} PEXVertexHLS;
typedef struct {
PEXCoord point;
PEXColorCIE cie;
} PEXVertexCIE;
typedef struct {
PEXCoord point;
PEXColorRGB8 rgb8;
} PEXVertexRGB8;
typedef struct {
PEXCoord point;
PEXColorRGB16 rgb16;
} PEXVertexRGB16;
typedef struct {
PEXCoord point;
PEXVector normal;
} PEXVertexNormal;
typedef struct {
PEXCoord point;
unsigned int edge;
} PEXVertexEdge;
typedef struct {
PEXCoord point;
PEXColorIndexed index;
PEXVector normal;
} PEXVertexIndexedNormal;
typedef struct {
PEXCoord point;
PEXColorRGB rgb;
PEXVector normal;
} PEXVertexRGBNormal;
typedef struct {
PEXCoord point;
PEXColorHSV hsv;
PEXVector normal;
} PEXVertexHSVNormal;
typedef struct {
PEXCoord point;
PEXColorHLS hls;
PEXVector normal;
} PEXVertexHLSNormal;
typedef struct {
PEXCoord point;
PEXColorCIE cie;
PEXVector normal;
} PEXVertexCIENormal;
typedef struct {
PEXCoord point;
PEXColorRGB8 rgb8;
PEXVector normal;
} PEXVertexRGB8Normal;
typedef struct {
PEXCoord point;
PEXColorRGB16 rgb16;
PEXVector normal;
} PEXVertexRGB16Normal;
typedef struct {
PEXCoord point;
PEXColorIndexed index;
unsigned int edge;
} PEXVertexIndexedEdge;
typedef struct {
PEXCoord point;
PEXColorRGB rgb;
unsigned int edge;
} PEXVertexRGBEdge;
typedef struct {
PEXCoord point;
PEXColorHSV hsv;
unsigned int edge;
} PEXVertexHSVEdge;
typedef struct {
PEXCoord point;
PEXColorHLS hls;
unsigned int edge;
} PEXVertexHLSEdge;
typedef struct {
PEXCoord point;
PEXColorCIE cie;
unsigned int edge;
} PEXVertexCIEEdge;
typedef struct {
PEXCoord point;
PEXColorRGB8 rgb8;
unsigned int edge;
} PEXVertexRGB8Edge;
typedef struct {
PEXCoord point;
PEXColorRGB16 rgb16;
unsigned int edge;
} PEXVertexRGB16Edge;
typedef struct {
PEXCoord point;
PEXVector normal;
unsigned int edge;
} PEXVertexNormalEdge;
typedef struct {
PEXCoord point;
PEXColorIndexed index;
PEXVector normal;
unsigned int edge;
} PEXVertexIndexedNormalEdge;
typedef struct {
PEXCoord point;
PEXColorRGB rgb;
PEXVector normal;
unsigned int edge;
} PEXVertexRGBNormalEdge;
typedef struct {
PEXCoord point;
PEXColorHSV hsv;
PEXVector normal;
unsigned int edge;
} PEXVertexHSVNormalEdge;
typedef struct {
PEXCoord point;
PEXColorHLS hls;
PEXVector normal;
unsigned int edge;
} PEXVertexHLSNormalEdge;
typedef struct {
PEXCoord point;
PEXColorCIE cie;
PEXVector normal;
unsigned int edge;
} PEXVertexCIENormalEdge;
typedef struct {
PEXCoord point;
PEXColorRGB8 rgb8;
PEXVector normal;
unsigned int edge;
} PEXVertexRGB8NormalEdge;
typedef struct {
PEXCoord point;
PEXColorRGB16 rgb16;
PEXVector normal;
unsigned int edge;
} PEXVertexRGB16NormalEdge;