Annotation of pmsdk/samples/shapes/sdata.c, revision 1.1.1.1

1.1       root        1: /*--------------------------------------------------------*\
                      2:     SDATA.C - object definitions, initialization data
                      3:              and table of shapes
                      4: \*--------------------------------------------------------*/
                      5: 
                      6: #include <stddef.h>
                      7: #include <os2.h>
                      8: #include "sstruct.h"
                      9: 
                     10: 
                     11: /*--------------------------------------------------------*\
                     12:     Object Definitions
                     13: \*--------------------------------------------------------*/
                     14: 
                     15: POINT3D rgpt3Cube [] =
                     16:     { { 10, 10, 10}, {-10, 10, 10}, {-10,-10, 10}, { 10,-10, 10},
                     17:       { 10, 10,-10}, {-10, 10,-10}, {-10,-10,-10}, { 10,-10,-10} };
                     18: LINE rglineCube [] =
                     19:     { {0,1}, {1,2}, {2,3}, {3,0},
                     20:       {0,4}, {1,5}, {2,6}, {3,7},
                     21:       {7,4}, {4,5}, {5,6}, {6,7}, {-1,-1} };
                     22: FACE rgfaceCube [] =
                     23:     { 0,1,2,3,-2,
                     24:       0,3,7,4,-2,
                     25:       3,2,6,7,-2,
                     26:       7,6,5,4,-2,
                     27:       2,1,5,6,-2,
                     28:       4,5,1,0,-2,
                     29:       -3 };
                     30: OBJECT objectCube =
                     31:     { 8, rgpt3Cube, rglineCube, rgfaceCube };
                     32: 
                     33: POINT3D rgpt3Pyramid [] =
                     34:     { { 10,-10, 10}, {-10,-10, 10}, {-10,-10,-10}, { 10,-10,-10},
                     35:       {  0, 10,  0} };
                     36: LINE rglinePyramid [] =
                     37:     { {0,1}, {1,2}, {2,3}, {3,0},
                     38:       {0,4}, {4,1}, {2,4}, {4,3}, {-1,-1} };
                     39: FACE rgfacePyramid [] =
                     40:     { 0,1,2,3,-2,
                     41:       4,0,3,-2,
                     42:       4,3,2,-2,
                     43:       4,2,1,-2,
                     44:       4,1,0,-2,
                     45:       -3 };
                     46: OBJECT objectPyramid =
                     47:     { 5, rgpt3Pyramid, rglinePyramid, rgfacePyramid };
                     48: 
                     49: POINT3D rgpt3Cage [] =
                     50:     { { 10,  5, 15}, { 5, 10, 15}, { -5, 10, 15}, {-10,  5, 15},
                     51:       {-10, -5, 15}, { -5,-10, 15}, {  5,-10, 15}, { 10, -5, 15},
                     52:       { 10,  5,-15}, { 5, 10,-15}, { -5, 10,-15}, {-10,  5,-15},
                     53:       {-10, -5,-15}, { -5,-10,-15}, {  5,-10,-15}, { 10, -5,-15} };
                     54: LINE rglineCage [] =
                     55:     { { 0, 1}, { 1, 2}, { 2, 3}, { 3, 4},
                     56:       { 4, 5}, { 5, 6}, { 6, 7}, { 7, 0}, { 0, 8},
                     57:       { 8, 9}, { 9,10}, {10,11}, {11,12},
                     58:       {12,13}, {13,14}, {14,15}, {15, 8},
                     59:       { 1, 9}, { 2,10}, { 3,11}, { 4,12},
                     60:       { 5,13}, { 6,14}, { 7,15}, {-1,-1} };
                     61: FACE rgfaceCage [] =
                     62:     { 0,1,2,3,4,5,6,7,-2,
                     63:       15,14,13,12,11,10,9,8,-2,
                     64:       1,0,8,9,-2,
                     65:       2,1,9,10,-2,
                     66:       3,2,10,11,-2,
                     67:       4,3,11,12,-2,
                     68:       5,4,12,13,-2,
                     69:       6,5,13,14,-2,
                     70:       7,6,14,15,-2,
                     71:       0,7,15,8,-2,
                     72:       -3 };
                     73: OBJECT objectCage =
                     74:     { 16, rgpt3Cage, rglineCage, rgfaceCage };
                     75: 
                     76: POINT3D rgpt3Charlie [] =
                     77:     { { 15,  5,  5}, { 5, 15,  5}, { -5, 15,  5}, {-15,  5,  5},
                     78:       {-15, -5,  5}, { -5,-15, 5}, {  5,-15,  5}, { 15, -5,  5},
                     79:       { 15,  5, -5}, { 5, 15, -5}, { -5, 15, -5}, {-15,  5, -5},
                     80:       {-15, -5, -5}, { -5,-15, -5}, {  5,-15, -5}, { 15, -5, -5},
                     81:       {  5,  5, 15}, { -5,  5, 15}, { -5, -5, 15}, {  5, -5, 15},
                     82:       {  5,  5,-15}, { -5,  5,-15}, { -5, -5,-15}, {  5, -5,-15} };
                     83: FACE rgfaceCharlie [] =
                     84:     { 1,0,8,9,-2,
                     85:       2,1,9,10,-2,
                     86:       3,2,10,11,-2,
                     87:       4,3,11,12,-2,
                     88:       5,4,12,13,-2,
                     89:       6,5,13,14,-2,
                     90:       7,6,14,15,-2,
                     91:       0,7,15,8,-2,
                     92:       0,16,19,7,-2,
                     93:       1,16,0,-2,
                     94:       2,17,16,1,-2,
                     95:       3,17,2,-2,
                     96:       4,18,17,3,-2,
                     97:       5,18,4,-2,
                     98:       6,19,18,5,-2,
                     99:       7,19,6,-2,
                    100:       20,8,15,23,-2,
                    101:       20,9,8,-2,
                    102:       21,10,9,20,-2,
                    103:       21,11,10,-2,
                    104:       22,12,11,21,-2,
                    105:       22,13,12,-2,
                    106:       23,14,13,22,-2,
                    107:       23,15,14,-2,
                    108:       16,17,18,19,-2,
                    109:       23,22,21,20,-2,
                    110:       -3 };
                    111: OBJECT objectCharlie =
                    112:     { 24, rgpt3Charlie, NULL, rgfaceCharlie };
                    113: 
                    114: POINT3D rgpt3Dodeca [] =
                    115:     {{ 85,  0,112}, { 26, 81,112}, {-69, 50,112}, {-69,-50,112}, { 26,-81,112},
                    116:      {138,  0, 27}, { 43,131, 27}, {-111, 81, 27},{-111,-81, 27},{ 43,-131, 27},
                    117:      {-138, 0,-27}, {-43,-131,-27},{ 111,-81,-27},{ 111, 81,-27},{-43, 131,-27},
                    118:      {-85,  0,-112},{-26,-81,-112},{ 69,-50,-112},{ 69, 50,-112},{-26, 81,-112}
                    119:     };
                    120: LINE rglineDodeca [] =
                    121:     { {0,1}, {1,2}, {2,3}, {3,4}, {4,0},
                    122:       {0,5}, {5,13}, {13,6}, {6,1},
                    123:       {6,14}, {14,7}, {7,2},
                    124:       {7,10}, {10,8}, {8,3},
                    125:       {8,11}, {11,9}, {9,4},
                    126:       {9,12}, {12,5},
                    127:       {10,15}, {15,16}, {16,11},
                    128:       {16,17}, {17,12},
                    129:       {17,18}, {18,13},
                    130:       {18,19}, {19,14},
                    131:       {19,15},
                    132:       {-1,-1} };
                    133: FACE rgfaceDodeca [] =
                    134:     { 0,1,2,3,4,-2,
                    135:       0,5,13,6,1,-2,
                    136:       1,6,14,7,2,-2,
                    137:       2,7,10,8,3,-2,
                    138:       3,8,11,9,4,-2,
                    139:       4,9,12,5,0,-2,
                    140:       10,15,16,11,8,-2,
                    141:       11,16,17,12,9,-2,
                    142:       12,17,18,13,5,-2,
                    143:       13,18,19,14,6,-2,
                    144:       14,19,15,10,7,-2,
                    145:       19,18,17,16,15,-2,
                    146:       -3 };
                    147: OBJECT objectDodeca =
                    148:     { 20, rgpt3Dodeca, rglineDodeca, rgfaceDodeca };
                    149: 
                    150: POINT3D rgpt3Icosa [] =
                    151:     { {0,0,112}, {80,58,50}, {-30,94,50}, {-99,0,50},
                    152:       {-30,-94,50}, {80,-58,50}, {-80,-58,-50}, {30,-94,-50},
                    153:       {99,0,-50}, {30,94,-50}, {-80,58,-50}, {0,0,-112}
                    154:     };
                    155: LINE rglineIcosa [] =
                    156:     { {1,0}, {0,2}, {2,1}, {0,3}, {3,2},
                    157:       {0,4}, {4,3}, {0,5}, {5,1}, {5,4},
                    158:       {3,6}, {6,4}, {4,7}, {7,5}, {7,6},
                    159:       {1,8}, {8,5}, {8,7}, {1,9}, {9,2},
                    160:       {9,8}, {2,10}, {10,3}, {6,10}, {10,9},
                    161:       {6,11}, {11,7}, {8,11}, {11,9}, {11,10},
                    162:       {-1,-1} };
                    163: FACE rgfaceIcosa [] =
                    164:     { 0,1,2,-2,
                    165:       0,2,3,-2,
                    166:       0,3,4,-2,
                    167:       0,4,5,-2,
                    168:       0,5,1,-2,
                    169:       11,10,9,-2,
                    170:       11,9,8,-2,
                    171:       11,8,7,-2,
                    172:       11,7,6,-2,
                    173:       11,6,10,-2,
                    174:       1,8,9,-2,
                    175:       2,1,9,-2,
                    176:       2,9,10,-2,
                    177:       3,2,10,-2,
                    178:       3,10,6,-2,
                    179:       4,3,6,-2,
                    180:       4,6,7,-2,
                    181:       5,4,7,-2,
                    182:       5,7,8,-2,
                    183:       1,5,8,-2,
                    184:       -3 };
                    185: OBJECT objectIcosa =
                    186:     { 12, rgpt3Icosa, rglineIcosa, rgfaceIcosa };
                    187: 
                    188: POINT3D rgpt3Micro [] =
                    189:     { {-12,-2,0}, {-12, 2,0}, {-11, 0,0}, {-10, 2,0}, {-10,-2,0},
                    190:       { -9,-2,0}, { -9, 2,0},
                    191:       { -6,-1,0}, { -7,-2,0}, { -8,-1,0}, { -8, 1,0}, { -7, 2,0}, { -6, 1,0},
                    192:       { -5,-2,0}, { -5, 2,0}, { -4, 2,0}, { -3, 1,0}, { -4, 0,0}, { -5, 0,0},
                    193:       { -3,-2,0},
                    194:       { -1,-2,0}, { -2,-1,0}, { -2, 1,0}, { -1, 2,0}, {  0, 1,0}, {  0,-1,0},
                    195:       {  1,-1,0}, {  2,-2,0}, {  3,-1,0}, {  1, 1,0}, {  2, 2,0}, {  3, 1,0},
                    196:       {  5,-2,0}, {  4,-1,0}, {  4, 1,0}, {  5, 2,0}, {  6, 1,0}, {  6,-1,0},
                    197:       {  7,-2,0}, {  7, 2,0}, {  9, 2,0}, {  7, 0,0}, {  9, 0,0},
                    198:       { 10, 2,0}, { 12, 2,0}, { 11, 2,0}, { 11,-2,0},
                    199:       {-13,-3,0}, {-13, 3,0}, { 13, 3,0}, { 13,-3,0}
                    200:     };
                    201: LINE rglineMicro [] =
                    202:     { {47,48}, {48,49}, {49,50}, {50,47},
                    203:       { 0, 1}, { 1, 2}, { 2, 3}, {3 , 4},
                    204:       { 5, 6},
                    205:       { 7, 8}, { 8, 9}, { 9,10}, {10,11}, {11,12},
                    206:       {13,14}, {14,15}, {15,16}, {16,17}, {17,18}, {17,19},
                    207:       {20,21}, {21,22}, {22,23}, {23,24}, {24,25}, {25,20},
                    208:       {26,27}, {27,28}, {28,29}, {29,30}, {30,31},
                    209:       {32,33}, {33,34}, {34,35}, {35,36}, {36,37}, {37,32},
                    210:       {38,39}, {39,40}, {41,42},
                    211:       {43,44}, {45,46},
                    212:       {-1,-1} };
                    213: FACE rgfaceMicro [] =
                    214:     { 47,48,49,50,-2,
                    215:       50,49,48,47,-1,
                    216:        0,1,2,3,4,-1,
                    217:        5,6,-1,
                    218:        7,8,9,10,11,12,-1,
                    219:        13,14,15,16,17,18,-1, 17,19,-1,
                    220:        20,21,22,23,24,25,20,-1,
                    221:        26,27,28,29,30,31,-1,
                    222:        32,33,34,35,36,37,32,-1,
                    223:        38,39,40,-1, 41,42,-1,
                    224:        43,44,-1, 45,46,-2,
                    225:       -3 };
                    226: OBJECT objectMicro =
                    227:     { 51, rgpt3Micro, rglineMicro, rgfaceMicro };
                    228: 
                    229: POINT3D rgpt3Die [] =
                    230:     { { 10, 10, 10}, {-10, 10, 10}, {-10,-10, 10}, { 10,-10, 10},
                    231:       { 10, 10,-10}, {-10, 10,-10}, {-10,-10,-10}, { 10,-10,-10},
                    232:       {  0,  6, 10}, { 0, -6, 10},
                    233:       {-10,  4,  3}, {-10,  0, 6}, {-10, -4,  3}, {-10,  4, -6},
                    234:       {-10, -4, -6},
                    235:       {  4, 10,  3}, { 0, 10,  6}, { -4, 10,  3}, {  0, 10,  0},
                    236:       { -4, 10, -3}, { 0, 10, -6}, {  4, 10, -3},
                    237:       { -4,-10,  6}, { -4,-10, 0}, {  4,-10,  0}, {  4,-10,  6},
                    238:       {  4,-10, -6},
                    239:       { 10,  4,  6}, { 10, -4, 6}, { 10, -4,  2}, { 10,  0,  2},
                    240:       { 10,  4, -2}, { 10,  0, -6}, { 10, -4, -3},
                    241:       {  0,  6,-10}, { 4,  3,-10}, {  4, -3,-10}, {  0, -6,-10},
                    242:       { -4, -3,-10}, { 0,  0,-10} };
                    243: LINE rglineDie [] =
                    244:     { {0,1}, {1,2}, {2,3}, {3,0}, {8,9},
                    245:       {0,3}, {3,7}, {7,4}, {4,0}, {27,28}, {28,29}, {29,30}, {30,31},
                    246:        {31,32}, {32,33},
                    247:       {3,2}, {2,6}, {6,7}, {7,3}, {22,23}, {23,24}, {25,26},
                    248:       {7,6}, {6,5}, {5,4}, {4,7}, {34,35}, {35,36}, {36,37}, {37,38},
                    249:        {38,39}, {39,36},
                    250:       {2,1}, {1,5}, {5,6}, {6,2}, {10,11}, {11,12}, {12,13}, {13,14},
                    251:       {4,5}, {5,1}, {1,0}, {0,4}, {15,16}, {16,17}, {17,18}, {18,19},
                    252:        {19,20}, {20,21},
                    253:       {-1,-1} };
                    254: FACE rgfaceDie [] =
                    255:     { 0,1,2,3,-1,  8,9, -2,
                    256:       0,3,7,4,-1,  27,28,29,30,31,32,33, -2,
                    257:       3,2,6,7,-1,  22,23,24,-1, 25,26, -2,
                    258:       7,6,5,4,-1,  34,35,36,37,38,39,36, -2,
                    259:       2,1,5,6,-1,  10,11,12,13,14, -2,
                    260:       4,5,1,0,-1,  15,16,17,18,19,20,21, -2,
                    261:       -3 };
                    262: OBJECT objectDie =
                    263:     { 40, rgpt3Die, rglineDie, rgfaceDie };
                    264: 
                    265: POINT3D rgpt3Diamond [] =
                    266:     { { 16,  0, 10}, { 14,  8, 10}, {  8, 14, 10},
                    267:       {  0, 16, 10}, { -8, 14, 10}, {-14,  8, 10},
                    268:       {-16,  0, 10}, {-14, -8, 10}, { -8,-14, 10},
                    269:       {  0,-16, 10}, { 8,-14, 10}, { 14, -8, 10},
                    270:       { 20,  0,  3}, { 17, 10, 3}, { 10, 17,  3},
                    271:       {  0, 20,  3}, {-10, 17, 3}, {-17, 10,  3},
                    272:       {-20,  0,  3}, {-17,-10, 3}, {-10,-17,  3},
                    273:       {  0,-20,  3}, { 10,-17, 3}, { 17,-10,  3},
                    274:       {  0,  0,-20} };
                    275: FACE rgfaceDiamond [] =
                    276:     { 0,1,2,3,4,5,6,7,8,9,10,11,-2,
                    277:       1,0,12,13,-2,
                    278:       2,1,13,14,-2,
                    279:       3,2,14,15,-2,
                    280:       4,3,15,16,-2,
                    281:       5,4,16,17,-2,
                    282:       6,5,17,18,-2,
                    283:       7,6,18,19,-2,
                    284:       8,7,19,20,-2,
                    285:       9,8,20,21,-2,
                    286:       10,9,21,22,-2,
                    287:       11,10,22,23,-2,
                    288:       0,11,23,12,-2,
                    289:       24,13,12,-2,
                    290:       24,14,13,-2,
                    291:       24,15,14,-2,
                    292:       24,16,15,-2,
                    293:       24,17,16,-2,
                    294:       24,18,17,-2,
                    295:       24,19,18,-2,
                    296:       24,20,19,-2,
                    297:       24,21,20,-2,
                    298:       24,22,21,-2,
                    299:       24,23,22,-2,
                    300:       24,12,23,-2,
                    301:       -3 };
                    302: OBJECT objectDiamond =
                    303:     { 25, rgpt3Diamond, NULL, rgfaceDiamond };
                    304: 
                    305: POINT3D rgpt3Disc [] =
                    306:     { { 20,  0, 0}, { 14, 14, 0}, {  0, 20, 0}, {-14, 14, 0},
                    307:       {-20,  0, 0}, {-14,-14, 0}, {  0,-20, 0}, { 14,-14, 0},
                    308:       {  0,  0, 8}, {  0,  0,-8} };
                    309: FACE rgfaceDisc [] =
                    310:     { 0,1,8,-2,
                    311:       1,2,8,-2,
                    312:       2,3,8,-2,
                    313:       3,4,8,-2,
                    314:       4,5,8,-2,
                    315:       5,6,8,-2,
                    316:       6,7,8,-2,
                    317:       7,0,8,-2,
                    318:       1,0,9,-2,
                    319:       2,1,9,-2,
                    320:       3,2,9,-2,
                    321:       4,3,9,-2,
                    322:       5,4,9,-2,
                    323:       6,5,9,-2,
                    324:       7,6,9,-2,
                    325:       0,7,9,-2,
                    326:       -3 };
                    327: OBJECT objectDisc =
                    328:     { 10, rgpt3Disc, NULL, rgfaceDisc };
                    329: 
                    330: 
                    331: /*--------------------------------------------------------*\
                    332:     Initialization Data
                    333: \*--------------------------------------------------------*/
                    334: 
                    335: INIT initDefault =
                    336:     {  1000,                      /* view distance */
                    337:        {   0,   0,   0 },         /* initial angle */
                    338:        {   2,   2,   2 },         /* angular velocity */
                    339:        { 700, 700, 700 },         /* size factor */
                    340:        { 200, 200, 200 },         /* size variation */
                    341:        {   0,   0,   0 },         /* size variation initial angle */
                    342:        {   5,   5,   5 }          /* size variation angular velocity */
                    343:     };
                    344: 
                    345: INIT initStretch =
                    346:     {  1500,                      /* view distance */
                    347:        {   0,   0,   0 },         /* initial angle */
                    348:        {   1,   1,   0 },         /* angular velocity */
                    349:        { 500, 700, 900 },         /* size factor */
                    350:        { 350, 250, 150 },         /* size variation */
                    351:        {   0, 120, 240 },         /* size variation initial angle */
                    352:        {   7,   7,   7 }          /* size variation angular velocity */
                    353:     };
                    354: 
                    355: INIT initDodeca =
                    356:     {  1500,                      /* view distance */
                    357:        {   0,  30,   0 },         /* initial angle */
                    358:        {   1,   0,   1 },         /* angular velocity */
                    359:        {  90,  90,  90 },         /* size factor */
                    360:        {  20,  20,  20 },         /* size variation */
                    361:        {   0,   0,   0 },         /* size variation initial angle */
                    362:        {   5,   5,   5 }          /* size variation angular velocity */
                    363:     };
                    364: 
                    365: INIT initIcosa =
                    366:     {  1500,                      /* view distance */
                    367:        {   0,  30,   0 },         /* initial angle */
                    368:        {   1,   0,   1 },         /* angular velocity */
                    369:        { 130, 130, 130 },         /* size factor */
                    370:        {  30,  30,  30 },         /* size variation */
                    371:        {   0,   0,   0 },         /* size variation initial angle */
                    372:        {   5,   5,   5 }          /* size variation angular velocity */
                    373:     };
                    374: 
                    375: INIT initMicro =
                    376:     {  1000,                      /* view distance */
                    377:        {   0,   0,   0 },         /* initial angle */
                    378:        {   5,   0,   0 },         /* angular velocity */
                    379:        {1300,2800,   0 },         /* size factor */
                    380:        { 300, 300,   0 },         /* size variation */
                    381:        {   0, 180,   0 },         /* size variation initial angle */
                    382:        {   5,   5,   0 }          /* size variation angular velocity */
                    383:     };
                    384: 
                    385: INIT initSpinning =
                    386:     {  1000,                      /* view distance */
                    387:        { 290,   0,   0 },         /* initial angle */
                    388:        {   0,   4,   0 },         /* angular velocity */
                    389:        { 550, 550, 550 },         /* size factor */
                    390:        { 150, 150, 150 },         /* size variation */
                    391:        {   0,   0,   0 },         /* size variation initial angle */
                    392:        {   5,   5,   5 }          /* size variation angular velocity */
                    393:     };
                    394: 
                    395: 
                    396: /*--------------------------------------------------------*\
                    397:     Main table of shapes
                    398: \*--------------------------------------------------------*/
                    399: 
                    400: extern SHAPE rgshape [] =
                    401:     { { "Cube",           &objectCube,        &initStretch    },
                    402:       { "Charlie",        &objectCharlie,     &initDefault    },
                    403:       { "Cage",           &objectCage,        &initSpinning   },
                    404:       { "Dodecahedron",    &objectDodeca,      &initDodeca     },
                    405:       { "Disc",           &objectDisc,        &initSpinning   },
                    406:       { "Die",            &objectDie,         &initDefault    },
                    407:       { "Diamond",        &objectDiamond,     &initSpinning   },
                    408:       { "Icosahedron",    &objectIcosa,       &initIcosa      },
                    409:       { "Microsoft",      &objectMicro,       &initMicro      },
                    410:       { "Pyramid",        &objectPyramid,     &initDefault    },
                    411:       { "Susan",          &objectCharlie,     &initStretch    }
                    412:     };
                    413: 
                    414: /* number of shapes in table */
                    415: 
                    416: extern INT shapeMax = (sizeof rgshape / sizeof (SHAPE));

unix.superglobalmegacorp.com

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