|
|
1.1 root 1: /******************************************************************************\
2: *
3: * MODULE: PAINT.H
4: *
5: \******************************************************************************/
6:
7:
8:
9: /******************************************************************************\
10: * SYMBOLIC CONSTANTS
11: \******************************************************************************/
12:
13: #define NUMVERTICES 8 /* number of polyhedron vertices */
14: #define NUMFACETS 6 /* number of polyhedron facets */
15:
16: #define MAX_POINTS_PER_FACET 4
17:
18:
19:
20: /******************************************************************************\
21: * TYPEDEFs
22: \******************************************************************************/
23:
24: typedef struct
25: {
26: LONG x, y, z;
27:
28: } POINT3D;
29:
30:
31:
32: /******************************************************************************\
33: * GLOBAL VARIABLES
34: \******************************************************************************/
35:
36: //
37: // This particular set of vertices "gNormalizedVertices" and corresponding
38: // facets "gaiFacets" describe a normalized cube centered about the
39: // origin ([0,0,0] in 3-space). The gaiFacet array is made up of a series
40: // of indices into the array of vertices, each describing an individual
41: // facet (eg. a polygon), and are separated by -1. Note that the facets
42: // are decribed in COUNTERCLOCKWISE (relative to the viewer) order so we
43: // can consistently find the normal to any given facet. (The normal
44: // is used to determine facet visibilty.)
45: //
46:
47: static POINT3D gNormalizedVertices[NUMVERTICES] = {{ 1, 1, 1}, { 1,-1, 1},
48: {-1,-1, 1}, {-1, 1, 1},
49: { 1, 1,-1}, { 1,-1,-1},
50: {-1,-1,-1}, {-1, 1,-1} };
51:
52:
53: static int gaiFacets[30] = { 3, 2, 1, 0, -1,
54: 4, 5, 6, 7, -1,
55: 0, 1, 5, 4, -1,
56: 6, 2, 3, 7, -1,
57: 7, 3, 0, 4, -1,
58: 5, 1, 2, 6, -1 };
59:
60: POINT3D gXformedVertices[NUMVERTICES];
61:
62: float gM[2][3]; /* the transformation matrix */
63:
64:
65:
66: /******************************************************************************\
67: * FUNCTION PROTOTYPES
68: \******************************************************************************/
69:
70: void TransformVertices (HWND, RECT *, PSPINCUBEINFO, LONG);
71: void ComputeRotationTransformation (float, float, float);
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.