Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ PEXStructures(3) — Open3D 4.96

Media Vault

Software Library

Restoration Projects

Artifacts Sought

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;

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026