Annotation of pmsdk/samples/shapes/sstruct.h, revision 1.1

1.1     ! root        1: /*--------------------------------------------------------*\
        !             2:     SSTRUCT.H - 3D shape data structures
        !             3: \*--------------------------------------------------------*/
        !             4: 
        !             5: #define MAX_WINDOWS 8          /* max parent + child windows */
        !             6: #define MAX_POINTS  100        /* max points per object */
        !             7: #define MIN_SCALE   4          /* min scale multiplier */
        !             8: 
        !             9: /*
        !            10:    3D "OBJECT" Data Structure:
        !            11: 
        !            12:    Each object consists of a table of 3D points, a list of lines, and/or
        !            13:    a list of faces.  When clipping is off, the list of lines are used and when
        !            14:    clipping is on, the list of faces are used to draw the shape.
        !            15: 
        !            16:    Each line consists of two points (indexes for the table of 3D points).
        !            17:    A list of lines is terminated by the line {-1,-1}.
        !            18: 
        !            19:    Each face consists of a list of the points on the perimeter, and optional
        !            20:    lists of points for patterns which appear on the face.  If the face is
        !            21:    visible then the perimeter is drawn along with the optional patterns.
        !            22:    The points for the perimeter of the face are specified in counter clockwise
        !            23:    order as one views the shape from the outside.  Each pattern is a list of
        !            24:    points which are to be connected by lines.
        !            25:    The following values are used to terminate the lists:
        !            26:        -1      end of perimeter or pattern
        !            27:        -2      end of face (and end of perimeter or pattern)
        !            28:        -3      end of object
        !            29: */
        !            30: 
        !            31: typedef struct { INT x, y, z; } POINT3D;
        !            32: typedef struct { INT x, y; } POINT2D;
        !            33: typedef struct { INT p1, p2; } LINE;
        !            34: typedef INT FACE;
        !            35: 
        !            36: typedef struct
        !            37:     {
        !            38:     INT cPoints;           /* number of 3D points */
        !            39:     POINT3D *rgpt3;        /* array of points */
        !            40:     LINE *rgline;          /* array of lines */
        !            41:     FACE *rgface;          /* array of faces */
        !            42:     }
        !            43:     OBJECT;
        !            44: 
        !            45: typedef struct
        !            46:     {
        !            47:     LONG zViewDist;        /* viewing distance for perspective */
        !            48:     POINT3D pt3Angle;      /* initial angle of rotation */
        !            49:     POINT3D pt3AngVel;     /* angular velocity for rotation */
        !            50:     POINT3D pt3SizeMid;     /* initial size */
        !            51:     POINT3D pt3SizeMag;     /* magnitude of sinusoidal size change */
        !            52:     POINT3D pt3SizeAng;     /* initial angle for sinusoidal size change */
        !            53:     POINT3D pt3SizeVel;     /* angular velocity of sinusoidal size change */
        !            54:     }
        !            55:     INIT;
        !            56: 
        !            57: typedef struct
        !            58:     {
        !            59:     CHAR *szName;          /* name of shape */
        !            60:     OBJECT *pobject;       /* object definition */
        !            61:     INIT *pinit;           /* initial parameters */
        !            62:     }
        !            63:     SHAPE;
        !            64: 
        !            65: 
        !            66: /*
        !            67:    Each window (child or parent) has an associated SHAPEVARS structure.
        !            68:    In essence, these variables are local to the window.
        !            69: */
        !            70: 
        !            71: typedef struct
        !            72:     {
        !            73:     INT iShape;            /* shape index */
        !            74:     HWND hwndFrame;        /* Frame hwnd */
        !            75:     HWND hwndClient;       /* Client hwnd */
        !            76:     HPS hpsClient;         /* Client hps */
        !            77:     POINTL *rgptOld;       /* previously drawn 2D points */
        !            78:     POINTL *rgptNew;       /* next to be drawn 2D points */
        !            79:     BOOL fShaded;          /* shaded flag */
        !            80:     BOOL fErased;          /* window erased flag */
        !            81:     BOOL fClipping;        /* clipping flag */
        !            82:     BOOL fVarySize;        /* vary size flag */
        !            83:     BOOL fPerspective;     /* perspective flag */
        !            84:     POINTL ptCentre;       /* centre point in window */
        !            85:     LONG zViewDist;        /* viewing distance (perspective) */
        !            86:     POINT2D pt2LightAng;    /* light source angle (x/y rotations) */
        !            87:     POINT3D pt3Angle;      /* shape's current angle of rotation */
        !            88:     POINT3D pt3AngVel;     /* shape's angular velocity of rotation */
        !            89:     POINT3D pt3Size;       /* current size */
        !            90:     POINT3D pt3SizeMid;     /* middle size of sinusoidal size change */
        !            91:     POINT3D pt3SizeMag;     /* magnitude of sinusoidal size change */
        !            92:     POINT3D pt3SizeAng;     /* current angle for sinusoidal size change */
        !            93:     }
        !            94:     SHAPEVARS;
        !            95: 
        !            96: typedef SHAPEVARS *PSV;

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.