~ubuntu-branches/ubuntu/trusty/openscenegraph/trusty

« back to all changes in this revision

Viewing changes to OpenSceneGraph/src/osgPlugins/geo/geoFormat.h

  • Committer: Package Import Robot
  • Author(s): Dmitrijs Ledkovs
  • Date: 2013-11-12 02:21:14 UTC
  • mfrom: (31.1.3 trusty-proposed)
  • Revision ID: package-import@ubuntu.com-20131112022114-qaxfhdnhn88vnh10
Tags: 3.2.0~rc1-1ubuntu1
Fix deprecated url_feof.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*===========================================================================*\
2
 
 
3
 
NAME:            geoFormat.h
4
 
 
5
 
DESCRIPTION:    Native Format struct definitions, tokens & functionc
6
 
 
7
 
AUTHOR:            Andy Bushnell
8
 
 
9
 
    -------------------------------------------------------------------------
10
 
 
11
 
PROPRIETARY RIGHTS NOTICE:   
12
 
    
13
 
  This software contains proprietary information and trade secrets of Carbon 
14
 
  Graphics LLC. No part or all of this software may be reproduced in any form, 
15
 
  without the written permission of Carbon Graphics LLC.
16
 
 
17
 
  Exception:
18
 
  This Software file can be used by third-party software developers (without
19
 
  using the Geo SDK libraries) for any purpose OTHER THAN loading Geo format 
20
 
  files into an application or executable (such as, though not limited to, 
21
 
  geometry Modelers & animation systems) which is primarily intended to allow for
22
 
  the CREATION or MODIFICATION of geometric or animation data. 
23
 
  
24
 
  Specifically,using this software (either all or part thereof) to aid in the 
25
 
  creation of a Geo format loader for a run-time system, game engine, toolkit 
26
 
  IG (Image Generation) System or any software where the PRIMARY purpose is
27
 
  real-time image playback and interactivity and not Model Creation and/or
28
 
  modification is permitted.
29
 
 
30
 
COPYRIGHT NOTICE: 
31
 
   
32
 
  Copyright � 1998-2001 Carbon Graphics Llc, ALL RIGHTS RESERVED
33
 
 
34
 
\*===========================================================================*/
35
 
 
36
 
 
37
 
#ifndef __GEO_FORMAT_H__
38
 
#define __GEO_FORMAT_H__
39
 
 
40
 
#include "geoCore.h"
41
 
 
42
 
 
43
 
#define GEO_1_0_RC2    1132
44
 
#define GEO_1_0_RC3    1133
45
 
#define GEO_1_0_RC4    1134    
46
 
#define GEO_1_0       1141
47
 
 
48
 
#define GEO_1_1_RC1 1231
49
 
#define GEO_1_1_RC2 1232
50
 
#define GEO_1_1        1240
51
 
 
52
 
 
53
 
 
54
 
                            // GEO_VERSION = ((GEO_LIB_MAJOR_VERSION*1000)+
55
 
                            //                (GEO_LIB_MINOR_VERSION*100) +
56
 
                            //                  (GEO_LIB_LEVEL_VERSION*10)  +
57
 
                            //                  (GEO_LIB_RELEASE_VERSION))
58
 
 
59
 
 
60
 
 
61
 
 
62
 
//
63
 
// Constants to define the Node disk records. Used in RecordToken.id
64
 
//
65
 
 
66
 
 
67
 
///////////////////////////////////////////////////////////////////////////////
68
 
//
69
 
// Record Ids
70
 
//
71
 
///////////////////////////////////////////////////////////////////////////////
72
 
 
73
 
//----------------------------------------------------------------
74
 
// Geo 1.0 RC 2 & Below
75
 
//----------------------------------------------------------------
76
 
 
77
 
//const unsigned int DB_DSK_HEADER                        = 101;
78
 
 
79
 
//----------------------------------------------------------------
80
 
// Geo 1.0 RC 3 & Above
81
 
//----------------------------------------------------------------
82
 
const unsigned int DB_DSK_HEADER                        = 100;    // NOTE File MAGIC ID *CHANGED*
83
 
 
84
 
//----------------------------------------------------------------
85
 
// 
86
 
//----------------------------------------------------------------
87
 
 
88
 
const unsigned int DB_DSK_GROUP                            = 102;
89
 
const unsigned int DB_DSK_SEQUENCE                        = 104;
90
 
const unsigned int DB_DSK_LOD                            = 105;
91
 
const unsigned int DB_DSK_RENDERGROUP                    = 106;
92
 
const unsigned int DB_DSK_POLYGON                        = 107;
93
 
const unsigned int DB_DSK_MESH                            = 108;    // Unused - Possible Future expansion
94
 
const unsigned int DB_DSK_CUBE                            = 109;    // Unused - Possible Future expansion
95
 
const unsigned int DB_DSK_SPHERE                        = 110;    // Unused - Possible Future expansion
96
 
const unsigned int DB_DSK_CONE                            = 111;    // Unused - Possible Future expansion
97
 
const unsigned int DB_DSK_CYLINDER                        = 112;    // Unused - Possible Future expansion
98
 
const unsigned int DB_DSK_VERTEX                        = 113;
99
 
const unsigned int DB_DSK_PUSH                            = 114;
100
 
const unsigned int DB_DSK_POP                            = 115;
101
 
const unsigned int DB_DSK_TEXTURE                        = 116;
102
 
const unsigned int DB_DSK_MATERIAL                        = 117;
103
 
const unsigned int DB_DSK_VIEW                            = 118;
104
 
const unsigned int DB_DSK_EXTENSION_LIST                = 119;
105
 
const unsigned int DB_DSK_SWITCH                        = 120;
106
 
const unsigned int DB_DSK_TEXT                            = 121;
107
 
const unsigned int DB_DSK_BASE_GROUP                    = 122;
108
 
const unsigned int DB_DSK_BASE_SURFACE                    = 123;
109
 
const unsigned int DB_DSK_BEHAVIOR                        = 124;
110
 
const unsigned int DB_DSK_CLAMP_ACTION                    = 125;    
111
 
const unsigned int DB_DSK_RANGE_ACTION                    = 126;        
112
 
const unsigned int DB_DSK_ROTATE_ACTION                    = 127;        
113
 
const unsigned int DB_DSK_TRANSLATE_ACTION                = 128;    
114
 
const unsigned int DB_DSK_SCALE_ACTION                    = 129;                    
115
 
const unsigned int DB_DSK_ARITHMETIC_ACTION                = 130;            
116
 
const unsigned int DB_DSK_LOGIC_ACTION                    = 131;                
117
 
const unsigned int DB_DSK_CONDITIONAL_ACTION            = 132;        
118
 
const unsigned int DB_DSK_LOOPING_ACTION                = 133;                
119
 
const unsigned int DB_DSK_COMPARE_ACTION                = 134;           
120
 
const unsigned int DB_DSK_VISIBILITY_ACTION                = 135;               
121
 
const unsigned int DB_DSK_STRING_CONTENT_ACTION            = 136;               
122
 
const unsigned int DB_DSK_INTERNAL_VARS                    = 137;                     
123
 
const unsigned int DB_DSK_LOCAL_VARS                    = 138;                    
124
 
const unsigned int DB_DSK_EXTERNAL_VARS                    = 139;               
125
 
const unsigned int DB_DSK_FLOAT_VAR                        = 140;     
126
 
const unsigned int DB_DSK_INT_VAR                        = 141; 
127
 
const unsigned int DB_DSK_LONG_VAR                        = 142; 
128
 
const unsigned int DB_DSK_DOUBLE_VAR                    = 143;     
129
 
const unsigned int DB_DSK_BOOL_VAR                        = 144;
130
 
//    unsigned int DEPRICATED                            = 145;
131
 
const unsigned int DB_DSK_IF_CONDITION                    = 146;
132
 
const unsigned int DB_DSK_ELSE_CONDITION                = 147;
133
 
//    unsigned int DEPRICATED                            = 148;
134
 
const unsigned int DB_DSK_COLOR_PALETTE                    = 149;
135
 
const unsigned int DB_DSK_COLOR_RAMP_ACTION                = 150;
136
 
const unsigned int DB_DSK_FLOAT2_VAR                    = 151; 
137
 
const unsigned int DB_DSK_FLOAT3_VAR                    = 152;     
138
 
const unsigned int DB_DSK_FLOAT4_VAR                    = 153;     
139
 
const unsigned int DB_DSK_LINEAR_ACTION                    = 154;     
140
 
const unsigned int DB_DSK_TASK_ACTION                    = 155;     
141
 
const unsigned int DB_DSK_PERIODIC_ACTION                = 156; 
142
 
//    unsigned int DEPRICATED                            = 157;
143
 
const unsigned int DB_DSK_TRIG_ACTION                    = 158;  
144
 
const unsigned int DB_DSK_INVERSE_ACTION                = 159; 
145
 
const unsigned int DB_DSK_TRUNCATE_ACTION                = 160;
146
 
const unsigned int DB_DSK_ABS_ACTION                    = 161; 
147
 
const unsigned int DB_DSK_IF_THEN_ELSE_ACTION            = 162;     // simple variable value check
148
 
const unsigned int DB_DSK_DCS_ACTION                    = 163;     
149
 
const unsigned int DB_DSK_INSTANCE                        = 164;
150
 
const unsigned int DB_DSK_COORD_POOL                    = 165;
151
 
const unsigned int DB_DSK_LIGHTPT                        = 166;
152
 
const unsigned int DB_DSK_EXTERNAL                        = 167;
153
 
const unsigned int DB_DSK_NORMAL_POOL                    = 168;
154
 
const unsigned int DB_DSK_DISCRETE_ACTION                = 169;
155
 
const unsigned int DB_DSK_STRING_VAR                    = 170;            
156
 
const unsigned int DB_DSK_STRING_COPY_ACTION            = 171;
157
 
const unsigned int DB_DSK_PAGE                            = 172;
158
 
const unsigned int DB_DSK_SQRT_ACTION                    = 173;     
159
 
const unsigned int DB_DSK_LOG_ACTION                    = 174;     
160
 
const unsigned int DB_DSK_PLANE_TEXTURE_MAPPING_INFO    = 175;
161
 
const unsigned int DB_DSK_CYLINDER_TEXTURE_MAPPING_INFO    = 176;    // not implemented in 1.0
162
 
const unsigned int DB_DSK_SPHERE_TEXTURE_MAPPING_INFO    = 177;    // not implemented in 1.0
163
 
const unsigned int DB_DSK_GRID_TEXTURE_MAPPING_INFO        = 178;    // not implemented in 1.0
164
 
const unsigned int DB_DSK_PERSPECTIVE_GRID_INFO            = 179;
165
 
const unsigned int DB_DSK_XY_GRID_INFO                    = 180;    // not implemented in 1.0
166
 
const unsigned int DB_DSK_XZ_GRID_INFO                    = 181;    // not implemented in 1.0
167
 
const unsigned int DB_DSK_YZ_GRID_INFO                    = 182;    // not implemented in 1.0
168
 
const unsigned int DB_DSK_MULTI_TEX_SHADER                = 183;
169
 
const unsigned int DB_DSK_CULL_GROUP                    = 184;
170
 
const unsigned int DB_DSK_Z_OFFSET_GROUP                = 185;
171
 
const unsigned int DB_DSK_MULTI_SAMPLE_AA_GROUP            = 186;
172
 
const unsigned int DB_DSK_LINE_AA_GROUP                    = 187;
173
 
const unsigned int DB_DSK_FADE_GROUP                    = 188;
174
 
const unsigned int DB_DSK_TERRAIN                        = 189;
175
 
const unsigned int DB_DSK_BSP                            = 190;
176
 
const unsigned int DB_DSK_DECAL_GROUP                    = 191;
177
 
const unsigned int DB_DSK_STATE_MACHINE                    = 192;
178
 
const unsigned int DB_DSK_STATE                            = 193;
179
 
const unsigned int DB_DSK_TRANSITION                    = 194;
180
 
const unsigned int DB_DSK_STATE_MACHINE_ACTION            = 195;
181
 
const unsigned int DB_DSK_STATE_RULE_ACTION                = 196;
182
 
const unsigned int DB_DSK_TRANSITION_RULE_ACTION        = 197;
183
 
const unsigned int DB_DSK_PUSH_ACTION                    = 198; // Indicates a list of child actions coming
184
 
const unsigned int DB_DSK_POP_ACTION                    = 199; // End of child action list
185
 
const unsigned int DB_DSK_LIGHT_GROUP                    = 200;
186
 
const unsigned int DB_DSK_CONTINUOUS_ACTION                = 201;  
187
 
const unsigned int DB_DSK_MOMENTARY_ACTION                = 202;  
188
 
const unsigned int DB_DSK_NSTATE_ACTION                    = 203;  
189
 
const unsigned int DB_DSK_ROTARY_DRAG_ACTION            = 204;  
190
 
const unsigned int DB_DSK_DCS                            = 205;
191
 
const unsigned int DB_DSK_FAT_VERTEX                    = 206;
192
 
const unsigned int DB_DSK_SLIM_VERTEX                    = 207;
193
 
const unsigned int DB_DSK_CG_SHADER                        = 208;
194
 
const unsigned int DB_DSK_CGFX_SHADER                    = 209;
195
 
const unsigned int DB_DSK_GLSL_SHADER                    = 210;
196
 
 
197
 
        
198
 
                    
199
 
 
200
 
 
201
 
 
202
 
 
203
 
//
204
 
// Constants to define the data types supported in the format
205
 
//
206
 
const unsigned char DB_CHAR                                = 1;
207
 
const unsigned char DB_SHORT                            = 2;
208
 
const unsigned char DB_INT                                = 3;
209
 
const unsigned char DB_FLOAT                            = 4;
210
 
const unsigned char DB_LONG                                = 5;
211
 
const unsigned char DB_DOUBLE                            = 6;
212
 
const unsigned char DB_VEC2F                            = 7;
213
 
const unsigned char DB_VEC3F                            = 8;
214
 
const unsigned char DB_VEC4F                            = 9;
215
 
const unsigned char DB_VEC2I                            = 10;
216
 
const unsigned char DB_VEC3I                            = 11;
217
 
const unsigned char DB_VEC4I                            = 12;
218
 
const unsigned char DB_VEC16F                            = 13;
219
 
const unsigned char DB_VEC2D                            = 14;
220
 
const unsigned char DB_VEC3D                            = 15;
221
 
const unsigned char DB_VEC4D                            = 16;
222
 
const unsigned char DB_VEC16D                            = 17;
223
 
const unsigned char DB_VRTX_STRUCT                        = 18; // deprecated (obsolete) after 0.982
224
 
const unsigned char DB_UINT                                = 19;
225
 
const unsigned char DB_USHORT                            = 20;
226
 
const unsigned char DB_UCHAR                            = 21;
227
 
const unsigned char DB_ULONG                            = 22;
228
 
const unsigned char DB_EXT_STRUCT                        = 23;
229
 
const unsigned char DB_SHORT_WITH_PADDING                = 24;
230
 
const unsigned char DB_CHAR_WITH_PADDING                = 25;
231
 
const unsigned char DB_USHORT_WITH_PADDING                = 26;
232
 
const unsigned char DB_UCHAR_WITH_PADDING                = 27;
233
 
const unsigned char DB_BOOL_WITH_PADDING                = 28;
234
 
const unsigned char DB_EXTENDED_FIELD_STRUCT            = 31;
235
 
const unsigned char DB_VEC4UC                            = 32; // array of 4 unsigned chars
236
 
const unsigned char DB_DISCRETE_MAPPING_STRUCT            = 33;
237
 
const unsigned char DB_BITFLAGS                            = 34;
238
 
const unsigned char DB_VEC2S                            = 35; // 2 dim array of shorts
239
 
 
240
 
//
241
 
// Constants to define sizeof() values
242
 
//
243
 
const unsigned char SIZEOF_FIELD_STRUCT                    = 4;
244
 
const unsigned char SIZEOF_EXTENDED_FIELD_STRUCT        = 8;
245
 
const unsigned char SIZEOF_CHAR                            = 1;
246
 
const unsigned char SIZEOF_SHORT                        = 2;
247
 
const unsigned char SIZEOF_INT                            = 4;
248
 
const unsigned char SIZEOF_FLOAT                        = 4;
249
 
const unsigned char SIZEOF_LONG                            = 4;
250
 
const unsigned char SIZEOF_ULONG                        = 4;
251
 
const unsigned char SIZEOF_DOUBLE                        = 8;
252
 
const unsigned char SIZEOF_VEC2F                        = (SIZEOF_FLOAT*2);
253
 
const unsigned char SIZEOF_VEC3F                        = (SIZEOF_FLOAT*3);
254
 
const unsigned char SIZEOF_VEC4F                        = (SIZEOF_FLOAT*4);
255
 
const unsigned char SIZEOF_VEC16F                        = (SIZEOF_FLOAT*16);
256
 
const unsigned char SIZEOF_VEC2I                        = (SIZEOF_INT*2);
257
 
const unsigned char SIZEOF_VEC3I                        = (SIZEOF_INT*3);
258
 
const unsigned char SIZEOF_VEC4I                        = (SIZEOF_INT*4);
259
 
const unsigned char SIZEOF_VEC2D                        = (SIZEOF_DOUBLE*2);
260
 
const unsigned char SIZEOF_VEC3D                        = (SIZEOF_DOUBLE*3);
261
 
const unsigned char SIZEOF_VEC4D                        = (SIZEOF_DOUBLE*4);
262
 
const unsigned char SIZEOF_VEC16D                        = (SIZEOF_DOUBLE*16);
263
 
const unsigned char SIZEOF_VRTX_STRUCT                    = 32;
264
 
const unsigned char SIZEOF_EXT_STRUCT                    = 32;
265
 
const unsigned char SIZEOF_UCHAR                        = (SIZEOF_CHAR);
266
 
const unsigned char SIZEOF_USHORT                        = (SIZEOF_SHORT);
267
 
const unsigned char SIZEOF_UINT                            = (SIZEOF_INT);
268
 
const unsigned char SIZEOF_VEC4UC                        = (SIZEOF_INT);
269
 
const unsigned char SIZEOF_SHORT_WITH_PADDING            = (SIZEOF_INT);
270
 
const unsigned char SIZEOF_CHAR_WITH_PADDING            = (SIZEOF_INT);
271
 
const unsigned char SIZEOF_USHORT_WITH_PADDING            = (SIZEOF_INT);
272
 
const unsigned char SIZEOF_UCHAR_WITH_PADDING            = (SIZEOF_INT);
273
 
const unsigned char SIZEOF_BOOL_WITH_PADDING            = (SIZEOF_INT);
274
 
const unsigned char SIZEOF_DISCRETE_MAPPING_STRUCT        = 12;
275
 
const unsigned char SIZEOF_BITFLAGS                        = (SIZEOF_INT);
276
 
 
277
 
 
278
 
 
279
 
const char MIN_CHAR_VAL                    = -128;
280
 
const char MAX_CHAR_VAL                        = 127;
281
 
const unsigned char MAX_UCHAR_VAL                        = 255;
282
 
const short MIN_SHORT_VAL                        = -32768;
283
 
const short MAX_SHORT_VAL                        = 32767;
284
 
const unsigned short MAX_USHORT_VAL                        = 65535;
285
 
 
286
 
 
287
 
 
288
 
 
289
 
 
290
 
//
291
 
// Valid field size values are any value cleanly divisible by 4 & < 65536
292
 
//
293
 
 
294
 
 
295
 
/** Record identifiers can be read as ints or this structure. All subsequent
296
 
 *  fields are considered part of this Node until an special EOF(ield) record
297
 
 *  is found. The only exception to this rule id DB_DSK_PUSH & DB_DSK_POP
298
 
 *  which have no fields. User parse code should expect another REcord header
299
 
 *  immediately after reading the Push/Pop record.
300
 
 */
301
 
struct GEO_DB_API geoRecordHeader
302
 
{
303
 
    unsigned int        id; // e.g. DB_DSK_HEADER etc.
304
 
};
305
 
 
306
 
 
307
 
 
308
 
 
309
 
/** When you are reading a Node's fields you read into this structure & expect
310
 
 *  a 1 byte id. When you are expecting records - you expect 4 byte int id's
311
 
 */
312
 
struct GEO_DB_API geoFieldHeader
313
 
{
314
 
    /** The Field ID for the data about to be read from disk. This Field
315
 
     *  token record in effect describes the data which is going to 
316
 
     *  follow this geoFieldToken struct. This description is sufficient to
317
 
     *  allow parsing code to step over and ignore either fields or whole
318
 
     *  records if they are unknown or unwanted.
319
 
     */
320
 
    unsigned char        id;        // field ID for record
321
 
 
322
 
    /** The data type of the field coming up */
323
 
    unsigned char        type;    // DB_INT, etc.
324
 
 
325
 
    /** How many of the data types (described above) must be read */
326
 
    unsigned short        num;    // How many of them follow
327
 
 
328
 
};
329
 
 
330
 
 
331
 
 
332
 
 
333
 
 
334
 
/** The Field ID for the data about to be read from disk. This Field
335
 
 *  token record in effect describes the data which is going to 
336
 
 *  follow this geoExtendedFieldHeader struct. This description is sufficient to
337
 
 *  allow parsing code to step over and ignore either fields or whole
338
 
 *  records if they are unknown or unwanted.
339
 
 *
340
 
 *  This field header exists only when field data items exceed the maximum
341
 
 *  number addressable by the size of an unsigned short (i.e. 65535). Typically
342
 
 *  this record will be the "data item" of a standard geoFieldHeader. Take the
343
 
 *  example of a large vertex palette...
344
 
 *
345
 
 *  on disk:
346
 
 *    
347
 
 *  geoFieldHeader
348
 
 *  {
349
 
 *      DB_UCHAR    id        GEO_DB_VRTX_COORDS
350
 
 *      DB_UCHAR    type    DB_EXTENDED_FIELD_STRUCT  
351
 
 *      DB_USHORT   num     1
352
 
 *  }
353
 
 *
354
 
 *  parse code now knows there is 1 record of an extended field struct 
355
 
 *  following the header. It just so happens that the following "data item"
356
 
 *  is itself a header (this time of the extended variety)
357
 
 *
358
 
 *  next we find the geoExtendedFieldHeader. Id is repeated.
359
 
 *
360
 
 *  geoExtendedFieldHeader
361
 
 *  {
362
 
 *      DB_USHORT    id        GEO_DB_VRTX_COORDS
363
 
 *      DB_USHORT   type    DB_VEC3F
364
 
 *      DB_UINT     num     number-of-verts
365
 
 *  }
366
 
 *
367
 
 *  Read the data items "as normal". The id should be the same as the previous
368
 
 *  geoFieldHeader. Basically you will only ever find an geoExtendedFieldHeader
369
 
 *  after being informed of such by a preceeding geoFieldHeader. This means that
370
 
 *  parse code only needs to look for geoRecordHeader & geoFieldHeader records.
371
 
 *  It also means that there is enough info grouped together, so that an
372
 
 *  ignoreField function can work - given a geoFieldHeader to ignore.   
373
 
 *
374
 
 *  The id field is also an unsigned short in this header - meaning that records
375
 
 *  will be able to have more than 255 fields (the limit of a typical
376
 
 *  geoFieldHeader field - since its "id" field is only an unsigned char). If any
377
 
 *  records have more than 255 fields then their ids will be unsigned shorts and
378
 
 *  on disk they will be represented by...
379
 
 *    
380
 
 *  geoFieldHeader
381
 
 *  {
382
 
 *      DB_UCHAR    id        GEO_DB_NODE_EXTENDED
383
 
 *      DB_UCHAR    type    DB_EXTENDED_FIELD_STRUCT  
384
 
 *      DB_USHORT   num     1
385
 
 *  }
386
 
 *
387
 
 *  followed by...
388
 
 *
389
 
 *  geoExtendedFieldHeader
390
 
 *  {
391
 
 *      DB_USHORT    id        GEO_DB_SOME_FUTURE_USHORT_ID
392
 
 *      DB_USHORT   type    DB_VEC3F
393
 
 *      DB_UINT     num     number_of_data_items
394
 
 *  }
395
 
 *
396
 
 *  The GEO_DB_EXTENDED_FIELD is a special token which indicates that the "real"
397
 
 *  id will be a ushort and be found in the following geoExtendedFieldHeader
398
 
 *
399
 
 */
400
 
struct GEO_DB_API geoExtendedFieldHeader
401
 
{
402
 
    /** Id of the field. This should be the same ID as the previous geoFieldHeader
403
 
     *  which indicated the existence of this record.
404
 
     */
405
 
    unsigned short        id;        // field ID for record
406
 
 
407
 
    /** The data type of the field coming up */
408
 
    unsigned short        type;    // DB_INT, etc.
409
 
 
410
 
    /** How many of the data types (described above) must be read */
411
 
    unsigned int        num;    // How many of them follow
412
 
 
413
 
};
414
 
 
415
 
 
416
 
 
417
 
 
418
 
///////////////////////////////////////////////////////////////////////////////
419
 
// Constant to define the last field types
420
 
//
421
 
const unsigned char GEO_DB_LAST_FIELD                = 0;
422
 
 
423
 
 
424
 
 
425
 
 
426
 
 
427
 
 
428
 
///////////////////////////////////////////////////////////////////////////////
429
 
//
430
 
// Common NODE field types - can found for all SceneGraph Nodes
431
 
//
432
 
///////////////////////////////////////////////////////////////////////////////
433
 
 
434
 
const unsigned char GEO_DB_NODE_EXT                            = 1;
435
 
const unsigned char GEO_DB_NODE_PADDING                        = 2;
436
 
const unsigned char GEO_DB_NODE_EXTENDED                    = 4;
437
 
const unsigned char GEO_DB_NODE_COMMENT                        = 5;
438
 
const unsigned char GEO_DB_NODE_NAME                        = 6;
439
 
const unsigned char GEO_DB_NODE_ID                            = 7;    // internal use only
440
 
 
441
 
 
442
 
///////////////////////////////////////////////////////////////////////////////
443
 
//
444
 
// Field ID Address Ranges...
445
 
//
446
 
//NODE                                                         1   through 19            
447
 
//    DERIVED_A : public NODE                                    20  through 79        
448
 
//        DERIVED_B : public DERIVED_A                        80  through 139    
449
 
//            DERIVED_C : public DERIVED_B                    140 through 199
450
 
//                DERIVED_D : public DERIVED_C                200 through 255
451
 
//
452
 
//Examples:
453
 
//
454
 
//GEO_DSK_MULTI_TEX_SHADER:
455
 
//            Node Property IDs                                1   through 19    
456
 
//            Group Property IDs                                20  through 79
457
 
//            RenderGroup property IDs                        80  through 139
458
 
//            MultiTexShader Property IDs                        140 through 199
459
 
//
460
 
//
461
 
//DB_DSK_LIGHTPT:
462
 
//            Node Property IDs                                1   through 19    
463
 
//            Polygon Property IDs                            20  through 79
464
 
//            LightPt property IDs                            80  through 139
465
 
//
466
 
///////////////////////////////////////////////////////////////////////////////
467
 
 
468
 
 
469
 
 
470
 
 
471
 
 
472
 
 
473
 
///////////////////////////////////////////////////////////////////////////////
474
 
//
475
 
// GEO_DB_HEADER Record - Field Ids
476
 
//
477
 
///////////////////////////////////////////////////////////////////////////////
478
 
 
479
 
const unsigned char GEO_DB_HDR_EXT                            = 1;    // From Node
480
 
const unsigned char GEO_DB_HDR_PADDING                        = 2;    // From Node
481
 
const unsigned char GEO_DB_HDR_EXTENDED                        = 4;    // From Node
482
 
const unsigned char GEO_DB_HDR_COMMENT                        = 5;    // From Node
483
 
const unsigned char GEO_DB_HDR_NAME                            = 6;    // From Node
484
 
const unsigned char GEO_DB_HDR_NODE_ID                        = 7;    // From Node
485
 
    
486
 
const unsigned char GEO_DB_HDR_UNITS                        = 20;    // Header Additions
487
 
const unsigned char GEO_DB_HDR_BBOX                            = 21;
488
 
const unsigned char GEO_DB_HDR_VERSION                        = 22;
489
 
const unsigned char GEO_DB_HDR_EXT_TEMPLATE                    = 23;
490
 
const unsigned char GEO_DB_HDR_UP_AXIS                        = 24;
491
 
const unsigned char GEO_DB_HDR_PROJ_TYPE                    = 25;
492
 
const unsigned char GEO_DB_HDR_LAMBERT1                        = 26;
493
 
const unsigned char GEO_DB_HDR_LAMBERT2                        = 27;
494
 
const unsigned char GEO_DB_HDR_UTM_ZONE                        = 28;
495
 
const unsigned char GEO_DB_HDR_SOUTHERN_HEMISPHERE            = 29;
496
 
const unsigned char GEO_DB_HDR_ELLIPSOID                    = 30;
497
 
const unsigned char GEO_DB_HDR_ORIGIN_LAT                    = 31;    
498
 
const unsigned char GEO_DB_HDR_ORIGIN_LON                    = 32;
499
 
const unsigned char GEO_DB_HDR_SW_CORNER_LAT                = 33;    
500
 
const unsigned char GEO_DB_HDR_SW_CORNER_LON                = 34;    
501
 
const unsigned char GEO_DB_HDR_NE_CORNER_LAT                = 35;    
502
 
const unsigned char GEO_DB_HDR_NE_CORNER_LON                = 36;
503
 
const unsigned char GEO_DB_HDR_SW_CORNER_X                    = 37;
504
 
const unsigned char GEO_DB_HDR_SW_CORNER_Y                    = 38;
505
 
const unsigned char GEO_DB_HDR_OFFSET_X                        = 39;
506
 
const unsigned char GEO_DB_HDR_OFFSET_Y                        = 40;    
507
 
const unsigned char GEO_DB_HDR_OFFSET_Z                        = 41;    
508
 
const unsigned char GEO_DB_HDR_MAJOR_AXIS                    = 42;    
509
 
const unsigned char GEO_DB_HDR_MINOR_AXIS                    = 43;                    
510
 
 
511
 
 
512
 
 
513
 
 
514
 
///////////////////////////////////////////////////////////////////////////////
515
 
//
516
 
// DB_DSK_COORD_POOL Record - Field Ids
517
 
//
518
 
///////////////////////////////////////////////////////////////////////////////
519
 
 
520
 
const unsigned char GEO_DB_COORD_POOL_SIZE                    = 1;
521
 
const unsigned char GEO_DB_COORD_POOL_VALUES                = 2;
522
 
const unsigned char GEO_DB_COORD_POOL_SCALE                    = 3;
523
 
const unsigned char GEO_DB_COORD_POOL_OFFSET                = 4;
524
 
 
525
 
 
526
 
 
527
 
 
528
 
 
529
 
///////////////////////////////////////////////////////////////////////////////
530
 
//
531
 
// DB_DSK_NORMAL_POOL Record - Field Ids
532
 
//
533
 
///////////////////////////////////////////////////////////////////////////////
534
 
 
535
 
const unsigned char GEO_DB_NORMAL_POOL_SIZE                    = 1;
536
 
const unsigned char GEO_DB_NORMAL_POOL_VALUES                = 2;
537
 
 
538
 
 
539
 
 
540
 
 
541
 
 
542
 
 
543
 
///////////////////////////////////////////////////////////////////////////////
544
 
//
545
 
// DB_DSK_MATERIAL Record - Field Ids
546
 
//
547
 
///////////////////////////////////////////////////////////////////////////////
548
 
 
549
 
const unsigned char GEO_DB_MAT_AMBIENT                        = 1;
550
 
const unsigned char GEO_DB_MAT_DIFFUSE                        = 2;
551
 
const unsigned char GEO_DB_MAT_SPECULAR                        = 3;
552
 
const unsigned char GEO_DB_MAT_SHININESS                    = 4;
553
 
const unsigned char GEO_DB_MAT_NAME                            = 5;
554
 
const unsigned char GEO_DB_MAT_EMISSIVE                        = 6;
555
 
 
556
 
 
557
 
 
558
 
 
559
 
 
560
 
 
561
 
///////////////////////////////////////////////////////////////////////////////
562
 
//
563
 
// DB_DSK_COLOR_PALETTE Record - Field Ids
564
 
//
565
 
///////////////////////////////////////////////////////////////////////////////
566
 
 
567
 
const unsigned char GEO_DB_COLOR_PALETTE_HIGHEST_INTENSITIES = 1;
568
 
 
569
 
 
570
 
///////////////////////////////////////////////////////////////////////////////
571
 
//
572
 
// DB_DSK_TEXTURE Record - Field Ids
573
 
//
574
 
///////////////////////////////////////////////////////////////////////////////
575
 
 
576
 
const unsigned char GEO_DB_TEX_WRAPS                        = 1;
577
 
const unsigned char GEO_DB_TEX_WRAPT                        = 2;
578
 
const unsigned char GEO_DB_TEX_MAGFILTER                    = 3;
579
 
const unsigned char GEO_DB_TEX_MINFILTER                    = 4;
580
 
const unsigned char GEO_DB_TEX_ENV                            = 5;
581
 
const unsigned char GEO_DB_TEX_FILE_NAME                    = 6;
582
 
const unsigned char GEO_DB_TEX_NAME                            = 7;
583
 
const unsigned char GEO_DB_TEX_CUBE_XP_FILE_NAME            = 8;
584
 
const unsigned char GEO_DB_TEX_CUBE_XN_FILE_NAME            = 9;
585
 
const unsigned char GEO_DB_TEX_CUBE_YP_FILE_NAME            = 10;
586
 
const unsigned char GEO_DB_TEX_CUBE_YN_FILE_NAME            = 11;
587
 
const unsigned char GEO_DB_TEX_CUBE_ZP_FILE_NAME            = 12;
588
 
const unsigned char GEO_DB_TEX_CUBE_ZN_FILE_NAME            = 13;
589
 
const unsigned char GEO_DB_TEX_INTERNAL_FORMAT                = 14;
590
 
const unsigned char GEO_DB_TEX_ANISOTROPIC_FILTER            = 15;
591
 
const unsigned char GEO_DB_TEX_REAL_WORLD_WIDTH                = 16;
592
 
const unsigned char GEO_DB_TEX_REAL_WORLD_HEIGHT            = 17;
593
 
const unsigned char GEO_DB_TEX_SENSOR_FILE_NAME                = 18;
594
 
 
595
 
 
596
 
 
597
 
 
598
 
 
599
 
///////////////////////////////////////////////////////////////////////////////
600
 
//
601
 
// Common SHADER field types - can found for all Shader Types
602
 
//
603
 
///////////////////////////////////////////////////////////////////////////////
604
 
 
605
 
const unsigned char GEO_DB_SHADER_NAME                        = 1;
606
 
const unsigned char GEO_DB_SHADER_VERTEX_PROGRAM            = 2;
607
 
const unsigned char GEO_DB_SHADER_FRAGMENT_PROGRAM            = 3;
608
 
 
609
 
 
610
 
 
611
 
 
612
 
 
613
 
 
614
 
 
615
 
///////////////////////////////////////////////////////////////////////////////
616
 
//
617
 
// DB_DSK_CG_SHADER Record - Field Ids
618
 
//
619
 
///////////////////////////////////////////////////////////////////////////////
620
 
 
621
 
// All shader Fields    +
622
 
 
623
 
const unsigned char GEO_DB_SHADER_CG_VERTEX_ENTRY            = 20;
624
 
const unsigned char GEO_DB_SHADER_CG_VERTEX_PROFILE            = 21;
625
 
const unsigned char GEO_DB_SHADER_CG_FRAGMENT_ENTRY            = 22;
626
 
const unsigned char GEO_DB_SHADER_CG_FRAGMENT_PROFILE        = 23;
627
 
 
628
 
 
629
 
 
630
 
 
631
 
 
632
 
 
633
 
///////////////////////////////////////////////////////////////////////////////
634
 
//
635
 
// DB_DSK_CGFX_SHADER Record - Field Ids
636
 
//
637
 
///////////////////////////////////////////////////////////////////////////////
638
 
 
639
 
// All shader Fields    +
640
 
 
641
 
// currently No additional fields                            = 20 will be first addition
642
 
 
643
 
 
644
 
 
645
 
 
646
 
 
647
 
///////////////////////////////////////////////////////////////////////////////
648
 
//
649
 
// DB_DSK_GLSL_SHADER Record - Field Ids
650
 
//
651
 
///////////////////////////////////////////////////////////////////////////////
652
 
 
653
 
// All shader Fields    +
654
 
 
655
 
// currently No additional fields                            = 20 will be first addition
656
 
 
657
 
 
658
 
 
659
 
 
660
 
///////////////////////////////////////////////////////////////////////////////
661
 
//
662
 
// DB_DSK_VIEW Record - Field Ids
663
 
//
664
 
///////////////////////////////////////////////////////////////////////////////
665
 
 
666
 
const unsigned char GEO_DB_VIEW_NEAR                        = 1;
667
 
const unsigned char GEO_DB_VIEW_FAR                            = 2;
668
 
const unsigned char GEO_DB_VIEW_POS                            = 3;
669
 
const unsigned char GEO_DB_VIEW_CEN                            = 4;
670
 
const unsigned char GEO_DB_VIEW_TRACKBALL                    = 5;
671
 
const unsigned char GEO_DB_VIEW_BACKFACE                    = 6;
672
 
const unsigned char GEO_DB_VIEW_TEXTURE                        = 7;
673
 
const unsigned char GEO_DB_VIEW_ILLUMINATED                    = 8;
674
 
const unsigned char GEO_DB_VIEW_ZBUFFER                        = 9;
675
 
const unsigned char GEO_DB_VIEW_SELECTIVE_ZBUFFER            = 10;
676
 
const unsigned char GEO_DB_VIEW_DRAWSTYLE                    = 11;
677
 
const unsigned char GEO_DB_VIEW_SELECTIVE_CULLFACE            = 12;
678
 
const unsigned char GEO_DB_VIEW_SELECTIVE_BLENDING            = 13;
679
 
const unsigned char GEO_DB_VIEW_SELECTIVE_SHADING            = 14;
680
 
 
681
 
 
682
 
 
683
 
 
684
 
 
685
 
///////////////////////////////////////////////////////////////////////////////
686
 
//
687
 
// DB_DSK_PERSPECTIVE_GRID_INFO Record 
688
 
//
689
 
// DB_DSK_XY_GRID_INFO Record 
690
 
// DB_DSK_XZ_GRID_INFO Record 
691
 
// DB_DSK_YZ_GRID_INFO Record - Field Ids
692
 
//
693
 
///////////////////////////////////////////////////////////////////////////////
694
 
 
695
 
const unsigned char GEO_DB_GRID_ON                            = 1;
696
 
const unsigned char GEO_DB_GRID_ZBUFFER                        = 2;
697
 
const unsigned char GEO_DB_GRID_SNAP                        = 3;
698
 
const unsigned char GEO_DB_GRID_OVER                        = 4;
699
 
const unsigned char GEO_DB_GRID_MAJOR                        = 5;
700
 
const unsigned char GEO_DB_GRID_MINOR                        = 6;
701
 
const unsigned char GEO_DB_GRID_NUM_CELLS                    = 7;
702
 
const unsigned char GEO_DB_GRID_POS                            = 8;
703
 
const unsigned char GEO_DB_GRID_MATRIX                        = 9;
704
 
 
705
 
 
706
 
 
707
 
 
708
 
 
709
 
///////////////////////////////////////////////////////////////////////////////
710
 
//
711
 
// DB_DSK_GROUP Record - Field Ids
712
 
//
713
 
///////////////////////////////////////////////////////////////////////////////
714
 
 
715
 
// All Node Fields    +
716
 
 
717
 
const unsigned char GEO_DB_GRP_BBOX                            = 20;    // Group Additions
718
 
const unsigned char GEO_DB_GRP_INSTANCE_DEF                    = 21;
719
 
const unsigned char GEO_DB_GRP_FLAG_SHOW_BBOX                = 22;
720
 
const unsigned char GEO_DB_GRP_ZBUFFER                        = 23;
721
 
const unsigned char GEO_DB_GRP_MATRIX_TRANSFORM                = 24;    
722
 
const unsigned char GEO_DB_GRP_TRANSLATE_TRANSFORM            = 25;    
723
 
const unsigned char GEO_DB_GRP_ROTATE_TRANSFORM                = 26;    
724
 
const unsigned char GEO_DB_GRP_SCALE_TRANSFORM                = 27;    
725
 
const unsigned char GEO_DB_GRP_TOD_DISPLAY                    = 28;
726
 
const unsigned char GEO_DB_GRP_NOISECT                        = 29;
727
 
 
728
 
 
729
 
 
730
 
 
731
 
///////////////////////////////////////////////////////////////////////////////
732
 
//
733
 
// DB_DSK_LIGHT_GROUP Record - Field Ids
734
 
//
735
 
///////////////////////////////////////////////////////////////////////////////
736
 
 
737
 
// All Node Fields    +
738
 
// All Group Fields +
739
 
 
740
 
const unsigned char GEO_DB_LIGHT_GROUP_ENABLED                = 80;
741
 
const unsigned char GEO_DB_LIGHT_GROUP_INTENSITY            = 81;
742
 
const unsigned char GEO_DB_LIGHT_GROUP_ANIMATION            = 82;
743
 
const unsigned char GEO_DB_LIGHT_GROUP_STABILIZED            = 83;
744
 
const unsigned char GEO_DB_LIGHT_GROUP_TYPE                    = 84;
745
 
const unsigned char GEO_DB_LIGHT_GROUP_IG_LIGHTGROUP_ID        = 85;
746
 
 
747
 
 
748
 
 
749
 
 
750
 
///////////////////////////////////////////////////////////////////////////////
751
 
//
752
 
// DB_DSK_DCS Record - Field Ids
753
 
//
754
 
///////////////////////////////////////////////////////////////////////////////
755
 
 
756
 
// All Node Fields    +
757
 
// All Group Fields +
758
 
 
759
 
const unsigned char GEO_DB_DCS_ACTIVE                        = 80;
760
 
 
761
 
const unsigned char GEO_DB_DCS_TRANSLATE_X_DEFAULT            = 81;
762
 
const unsigned char GEO_DB_DCS_TRANSLATE_X_MIN                = 82;
763
 
const unsigned char GEO_DB_DCS_TRANSLATE_X_MAX                = 83;
764
 
const unsigned char GEO_DB_DCS_TRANSLATE_X_STEP                = 84;
765
 
const unsigned char GEO_DB_DCS_TRANSLATE_X_CLAMP            = 85;
766
 
 
767
 
const unsigned char GEO_DB_DCS_TRANSLATE_Y_DEFAULT            = 86;
768
 
const unsigned char GEO_DB_DCS_TRANSLATE_Y_MIN                = 87;
769
 
const unsigned char GEO_DB_DCS_TRANSLATE_Y_MAX                = 88;
770
 
const unsigned char GEO_DB_DCS_TRANSLATE_Y_STEP                = 89;
771
 
const unsigned char GEO_DB_DCS_TRANSLATE_Y_CLAMP            = 90;
772
 
 
773
 
const unsigned char GEO_DB_DCS_TRANSLATE_Z_DEFAULT            = 91;
774
 
const unsigned char GEO_DB_DCS_TRANSLATE_Z_MIN                = 92;
775
 
const unsigned char GEO_DB_DCS_TRANSLATE_Z_MAX                = 93;
776
 
const unsigned char GEO_DB_DCS_TRANSLATE_Z_STEP                = 94;
777
 
const unsigned char GEO_DB_DCS_TRANSLATE_Z_CLAMP            = 95;
778
 
 
779
 
const unsigned char GEO_DB_DCS_ROTATE_X_DEFAULT                = 96;
780
 
const unsigned char GEO_DB_DCS_ROTATE_X_MIN                    = 97;
781
 
const unsigned char GEO_DB_DCS_ROTATE_X_MAX                    = 98;
782
 
const unsigned char GEO_DB_DCS_ROTATE_X_STEP                = 99;
783
 
const unsigned char GEO_DB_DCS_ROTATE_X_CLAMP                = 100;
784
 
 
785
 
const unsigned char GEO_DB_DCS_ROTATE_Y_DEFAULT                = 101;
786
 
const unsigned char GEO_DB_DCS_ROTATE_Y_MIN                    = 102;
787
 
const unsigned char GEO_DB_DCS_ROTATE_Y_MAX                    = 103;
788
 
const unsigned char GEO_DB_DCS_ROTATE_Y_STEP                = 104;
789
 
const unsigned char GEO_DB_DCS_ROTATE_Y_CLAMP                = 105;
790
 
 
791
 
const unsigned char GEO_DB_DCS_ROTATE_Z_DEFAULT                = 106;
792
 
const unsigned char GEO_DB_DCS_ROTATE_Z_MIN                    = 107;
793
 
const unsigned char GEO_DB_DCS_ROTATE_Z_MAX                    = 108;
794
 
const unsigned char GEO_DB_DCS_ROTATE_Z_STEP                = 109;
795
 
const unsigned char GEO_DB_DCS_ROTATE_Z_CLAMP                = 110;
796
 
 
797
 
const unsigned char GEO_DB_DCS_SCALE_X_DEFAULT                = 111;
798
 
const unsigned char GEO_DB_DCS_SCALE_X_MIN                    = 112;
799
 
const unsigned char GEO_DB_DCS_SCALE_X_MAX                    = 113;
800
 
const unsigned char GEO_DB_DCS_SCALE_X_STEP                    = 114;
801
 
const unsigned char GEO_DB_DCS_SCALE_X_CLAMP                = 115;
802
 
 
803
 
const unsigned char GEO_DB_DCS_SCALE_Y_DEFAULT                = 116;
804
 
const unsigned char GEO_DB_DCS_SCALE_Y_MIN                    = 117;
805
 
const unsigned char GEO_DB_DCS_SCALE_Y_MAX                    = 118;
806
 
const unsigned char GEO_DB_DCS_SCALE_Y_STEP                    = 119;
807
 
const unsigned char GEO_DB_DCS_SCALE_Y_CLAMP                = 120;
808
 
 
809
 
const unsigned char GEO_DB_DCS_SCALE_Z_DEFAULT                = 121;
810
 
const unsigned char GEO_DB_DCS_SCALE_Z_MIN                    = 122;
811
 
const unsigned char GEO_DB_DCS_SCALE_Z_MAX                    = 123;
812
 
const unsigned char GEO_DB_DCS_SCALE_Z_STEP                    = 124;
813
 
const unsigned char GEO_DB_DCS_SCALE_Z_CLAMP                = 125;
814
 
 
815
 
const unsigned char GEO_DB_DCS_ORIGIN                        = 126;
816
 
const unsigned char GEO_DB_DCS_XPOS                            = 127;
817
 
const unsigned char GEO_DB_DCS_ZPOS                            = 128;
818
 
const unsigned char GEO_DB_DCS_VECTOR                        = 129;
819
 
 
820
 
 
821
 
 
822
 
 
823
 
 
824
 
 
825
 
///////////////////////////////////////////////////////////////////////////////
826
 
//
827
 
// DB_DSK_CULL_GROUP Record - Field Ids
828
 
//
829
 
///////////////////////////////////////////////////////////////////////////////
830
 
 
831
 
// All Node Fields    +
832
 
// All Group Fields +
833
 
              
834
 
const unsigned char GEO_DB_CULL_GRP_RADIUS                    = 80;    // CullGroup Additions    
835
 
 
836
 
 
837
 
 
838
 
 
839
 
 
840
 
///////////////////////////////////////////////////////////////////////////////
841
 
//
842
 
// DB_DSK_Z_OFFSET_GROUP Record - Field Ids
843
 
//
844
 
///////////////////////////////////////////////////////////////////////////////
845
 
 
846
 
// All Node Fields    +
847
 
// All Group Fields +
848
 
                                          
849
 
const unsigned char GEO_DB_Z_GRP_DEPTH_OFFSET                = 80;    // ZOffsetGroup Additions
850
 
const unsigned char GEO_DB_Z_GRP_DEPTH_OFFSET_CONSTANT        = 81;    
851
 
const unsigned char GEO_DB_Z_GRP_TYPE                        = 82;    
852
 
 
853
 
 
854
 
 
855
 
 
856
 
 
857
 
///////////////////////////////////////////////////////////////////////////////
858
 
//
859
 
// DB_DSK_MULTI_SAMPLE_AA_GROUP Record - Field Ids
860
 
//
861
 
///////////////////////////////////////////////////////////////////////////////
862
 
 
863
 
// All Node Fields    +
864
 
// All Group Fields +
865
 
                                                  
866
 
const unsigned char GEO_DB_MULTI_SAMPLE_AA_GRP_NUM_SAMPLES    = 80;    // MultiSampleAAGroup Additions
867
 
const unsigned char GEO_DB_MULTI_SAMPLE_AA_GRP_JITTER_RADIUS= 81;
868
 
const unsigned char GEO_DB_MULTI_SAMPLE_AA_GRP_ALPHA_CLAMP    = 82;
869
 
 
870
 
 
871
 
 
872
 
 
873
 
 
874
 
///////////////////////////////////////////////////////////////////////////////
875
 
//
876
 
// DB_DSK_LINE_AA_GROUP Record - Field Ids
877
 
//
878
 
///////////////////////////////////////////////////////////////////////////////
879
 
 
880
 
 
881
 
// All Node Fields    +
882
 
// All Group Fields +
883
 
                                      
884
 
const unsigned char GEO_DB_LINE_AA_GRP_RANGE                = 80;    // LineAAGroup Additions 
885
 
const unsigned char GEO_DB_LINE_AA_GRP_ALPHA_FACTOR            = 81;
886
 
 
887
 
 
888
 
 
889
 
 
890
 
 
891
 
 
892
 
 
893
 
///////////////////////////////////////////////////////////////////////////////
894
 
//
895
 
// DB_DSK_FADE_GROUP Record - Field Ids
896
 
//
897
 
///////////////////////////////////////////////////////////////////////////////
898
 
 
899
 
// All Node Fields    +
900
 
// All Group Fields +
901
 
                                          
902
 
const unsigned char GEO_DB_FADE_GRP_NEAR_RANGE                = 80;    // FadeGroup Additions
903
 
const unsigned char GEO_DB_FADE_GRP_NEAR_TRANSITION            = 81;
904
 
const unsigned char GEO_DB_FADE_GRP_FAR_RANGE                = 82;
905
 
const unsigned char GEO_DB_FADE_GRP_FAR_TRANSITION            = 83;
906
 
 
907
 
 
908
 
 
909
 
 
910
 
 
911
 
 
912
 
///////////////////////////////////////////////////////////////////////////////
913
 
//
914
 
// DB_DSK_TERRAIN Record - Field Ids
915
 
//
916
 
///////////////////////////////////////////////////////////////////////////////
917
 
 
918
 
// All Node Fields    +
919
 
// All Group Fields +
920
 
 
921
 
                                                                    // No Terrain Additions
922
 
 
923
 
 
924
 
 
925
 
 
926
 
 
927
 
 
928
 
///////////////////////////////////////////////////////////////////////////////
929
 
//
930
 
// DB_DSK_DECAL_GROUP Record - Field Ids
931
 
//
932
 
///////////////////////////////////////////////////////////////////////////////
933
 
 
934
 
// All Node Fields    +
935
 
// All Group Fields +
936
 
 
937
 
// No Decal Group Additions
938
 
 
939
 
 
940
 
 
941
 
 
942
 
 
943
 
///////////////////////////////////////////////////////////////////////////////
944
 
//
945
 
// DB_DSK_BSP Record - Field Ids
946
 
//
947
 
///////////////////////////////////////////////////////////////////////////////
948
 
 
949
 
// All Node Fields    +
950
 
// All Group Fields +
951
 
 
952
 
const unsigned char GEO_DB_BSP_PLANE_EQUATION                = 80;    // BSP Additions
953
 
 
954
 
 
955
 
 
956
 
 
957
 
 
958
 
 
959
 
///////////////////////////////////////////////////////////////////////////////
960
 
//
961
 
// GEO_DB_LOD Record - Field Ids
962
 
//
963
 
///////////////////////////////////////////////////////////////////////////////
964
 
 
965
 
// All Node Fields    +
966
 
// All Group Fields +
967
 
 
968
 
const unsigned char GEO_DB_LOD_IN                            = 80;    // LOD Additions
969
 
const unsigned char GEO_DB_LOD_OUT                            = 81;
970
 
const unsigned char GEO_DB_LOD_CENTER                        = 82;
971
 
const unsigned char GEO_DB_LOD_CALC                            = 83; 
972
 
const unsigned char GEO_DB_LOD_FREEZE_CENTER                = 84;
973
 
 
974
 
 
975
 
 
976
 
 
977
 
 
978
 
 
979
 
///////////////////////////////////////////////////////////////////////////////
980
 
//
981
 
// GEO_DB_SEQUENCE Record - Field Ids
982
 
//
983
 
///////////////////////////////////////////////////////////////////////////////
984
 
 
985
 
// All Node Fields    +
986
 
// All Group Fields +
987
 
 
988
 
const unsigned char GEO_DB_SEQUENCE_MODE                    = 80;    // Sequence Additions
989
 
const unsigned char GEO_DB_SEQUENCE_ACTIVE                    = 81;
990
 
const unsigned char GEO_DB_SEQUENCE_FRAME_TIME                = 82;
991
 
const unsigned char GEO_DB_SEQUENCE_USE_FRAME_TIME            = 83;
992
 
const unsigned char GEO_DB_SEQUENCE_SWING                    = 84;
993
 
 
994
 
 
995
 
 
996
 
 
997
 
 
998
 
 
999
 
///////////////////////////////////////////////////////////////////////////////
1000
 
//
1001
 
// GEO_DB_INSTANCE Record - Field Ids
1002
 
//
1003
 
///////////////////////////////////////////////////////////////////////////////
1004
 
 
1005
 
// All Node Fields    +
1006
 
// All Group Fields +
1007
 
 
1008
 
const unsigned char GEO_DB_INSTANCE_DEF                        = 80;    // instance Additions
1009
 
 
1010
 
 
1011
 
 
1012
 
 
1013
 
 
1014
 
 
1015
 
 
1016
 
///////////////////////////////////////////////////////////////////////////////
1017
 
//
1018
 
// GEO_DB_SWITCH Record - Field Ids
1019
 
//
1020
 
///////////////////////////////////////////////////////////////////////////////
1021
 
 
1022
 
// All Node Fields    +
1023
 
// All Group Fields +
1024
 
    
1025
 
const unsigned char GEO_DB_SWITCH_CURRENT_MASK                = 80;    // switch Additions
1026
 
const unsigned char GEO_DB_SWITCH_MASK_WIDTH                = 81;    
1027
 
const unsigned char GEO_DB_SWITCH_NUM_MASKS                    = 82; 
1028
 
const unsigned char GEO_DB_SWITCH_MASKS                        = 83;
1029
 
 
1030
 
 
1031
 
 
1032
 
 
1033
 
 
1034
 
 
1035
 
 
1036
 
 
1037
 
///////////////////////////////////////////////////////////////////////////////
1038
 
//
1039
 
// GEO_DB_PAGE Record - Field Ids
1040
 
//
1041
 
///////////////////////////////////////////////////////////////////////////////
1042
 
 
1043
 
// All Node Fields    +
1044
 
// All Group Fields +
1045
 
    
1046
 
const unsigned char GEO_DB_PAGE_ACTIVE_CHILD                = 80;    // page Additions
1047
 
 
1048
 
 
1049
 
 
1050
 
 
1051
 
 
1052
 
 
1053
 
 
1054
 
///////////////////////////////////////////////////////////////////////////////
1055
 
//
1056
 
// GEO_DB_BASE_GROUP Record - Field Ids
1057
 
//
1058
 
///////////////////////////////////////////////////////////////////////////////
1059
 
 
1060
 
// It is important to note that user extended Group fields begin with a field
1061
 
// ID of 140 (GEO_DB_BASE_GROUP_START_EXTERNAL). This allows Geo to add 
1062
 
// additional fields to the BaseGroup class 
1063
 
 
1064
 
// All Node Fields    +
1065
 
// All Group Fields +
1066
 
    
1067
 
const unsigned char GEO_DB_BASE_GROUP_CLASSNAME                = 80;    // BaseGroup Additions
1068
 
const unsigned char GEO_DB_BASE_GROUP_EXTENDED_TYPE            = 81;
1069
 
const unsigned char GEO_DB_BASE_GROUP_PLUGIN_REQUIRED        = 82;
1070
 
    
1071
 
const unsigned char GEO_DB_BASE_GROUP_START_EXTERNAL        = 140;    // User Derived Node Additions    
1072
 
 
1073
 
 
1074
 
 
1075
 
 
1076
 
 
1077
 
 
1078
 
 
1079
 
 
1080
 
///////////////////////////////////////////////////////////////////////////////
1081
 
// GEO_DB_BASE_SURFACE Record - Field Ids
1082
 
//
1083
 
// It is important to note that user extended Surface fields begin with a field
1084
 
// ID of 80 (GEO_DB_BASE_SURFACE_START_EXTERNAL). This allows Geo to add 
1085
 
// additional fields which will be common to all derived groups up to this
1086
 
// number
1087
 
//
1088
 
// NOT IMPLEMENTED IN GEO 1.0
1089
 
//
1090
 
///////////////////////////////////////////////////////////////////////////////
1091
 
 
1092
 
 
1093
 
// All Node Fields    +
1094
 
    
1095
 
const unsigned char GEO_DB_BASE_SURFACE_CLASSNAME            = 20;    // BaseSurface Additions
1096
 
const unsigned char GEO_DB_BASE_SURFACE_EXTENDED_TYPE        = 21;
1097
 
const unsigned char GEO_DB_BASE_SURFACE_PLUGIN_REQUIRED        = 22;
1098
 
    
1099
 
const unsigned char GEO_DB_BASE_SURFACE_START_EXTERNAL        = 80;    // User Derived Node Additions    
1100
 
 
1101
 
 
1102
 
 
1103
 
 
1104
 
 
1105
 
 
1106
 
///////////////////////////////////////////////////////////////////////////////
1107
 
//
1108
 
// GEO_DB_RENDERGROUP Record - Field Ids
1109
 
//
1110
 
///////////////////////////////////////////////////////////////////////////////
1111
 
 
1112
 
// All Node Fields    +
1113
 
// All Group Fields +
1114
 
 
1115
 
const unsigned char GEO_DB_RENDERGROUP_MAT                    = 80;    // RenderGroup Additions
1116
 
const unsigned char GEO_DB_RENDERGROUP_TERRAIN                = 81;   
1117
 
const unsigned char GEO_DB_RENDERGROUP_BILLBOARD            = 82;   
1118
 
const unsigned char GEO_DB_RENDERGROUP_LIGHTING                = 83;    
1119
 
const unsigned char GEO_DB_RENDERGROUP_FOG                    = 84;    
1120
 
const unsigned char GEO_DB_RENDERGROUP_GAIN                    = 85;   
1121
 
const unsigned char GEO_DB_RENDERGROUP_TRANSPARENCY            = 86;  
1122
 
const unsigned char GEO_DB_RENDERGROUP_CULLING                = 87;    
1123
 
const unsigned char GEO_DB_RENDERGROUP_BLENDING                = 88;   
1124
 
const unsigned char GEO_DB_RENDERGROUP_ALPHA_REF            = 89;  
1125
 
const unsigned char GEO_DB_RENDERGROUP_LIGHTPTS                = 90;   
1126
 
 
1127
 
 
1128
 
 
1129
 
 
1130
 
 
1131
 
 
1132
 
 
1133
 
///////////////////////////////////////////////////////////////////////////////
1134
 
//
1135
 
// GEO_DB_MULTI_TEX_SHADER Record - Field Ids
1136
 
//
1137
 
///////////////////////////////////////////////////////////////////////////////
1138
 
 
1139
 
// All Node Fields    +
1140
 
// All Group Fields +
1141
 
// All RenderGroup Fields +
1142
 
 
1143
 
const unsigned char GEO_DB_MULTI_TEX_SHADER_TEX0            = 140;    // MultiTexShader Additions
1144
 
const unsigned char GEO_DB_MULTI_TEX_SHADER_TEX1            = 141;
1145
 
const unsigned char GEO_DB_MULTI_TEX_SHADER_TEX2            = 142;
1146
 
const unsigned char GEO_DB_MULTI_TEX_SHADER_TEX3            = 143;
1147
 
const unsigned char GEO_DB_MULTI_TEX_SHADER_TEX4            = 144;
1148
 
const unsigned char GEO_DB_MULTI_TEX_SHADER_TEX5            = 145;
1149
 
const unsigned char GEO_DB_MULTI_TEX_SHADER_TEX6            = 146;
1150
 
const unsigned char GEO_DB_MULTI_TEX_SHADER_TEX7            = 147;
1151
 
const unsigned char GEO_DB_MULTI_TEX_SHADER_TEX0_FUNCTION    = 148;
1152
 
const unsigned char GEO_DB_MULTI_TEX_SHADER_TEX1_FUNCTION    = 149;
1153
 
const unsigned char GEO_DB_MULTI_TEX_SHADER_TEX2_FUNCTION    = 150;
1154
 
const unsigned char GEO_DB_MULTI_TEX_SHADER_TEX3_FUNCTION    = 151;
1155
 
const unsigned char GEO_DB_MULTI_TEX_SHADER_TEX4_FUNCTION    = 152;
1156
 
const unsigned char GEO_DB_MULTI_TEX_SHADER_TEX5_FUNCTION    = 153;
1157
 
const unsigned char GEO_DB_MULTI_TEX_SHADER_TEX6_FUNCTION    = 154;
1158
 
const unsigned char GEO_DB_MULTI_TEX_SHADER_TEX7_FUNCTION    = 155;
1159
 
const unsigned char GEO_DB_MULTI_TEX_SHADER_TEX0_BLEND_COLOR= 156;
1160
 
const unsigned char GEO_DB_MULTI_TEX_SHADER_TEX1_BLEND_COLOR= 157;
1161
 
const unsigned char GEO_DB_MULTI_TEX_SHADER_TEX2_BLEND_COLOR= 158;
1162
 
const unsigned char GEO_DB_MULTI_TEX_SHADER_TEX3_BLEND_COLOR= 159;
1163
 
const unsigned char GEO_DB_MULTI_TEX_SHADER_TEX4_BLEND_COLOR= 160;
1164
 
const unsigned char GEO_DB_MULTI_TEX_SHADER_TEX5_BLEND_COLOR= 161;
1165
 
const unsigned char GEO_DB_MULTI_TEX_SHADER_TEX6_BLEND_COLOR= 162;
1166
 
const unsigned char GEO_DB_MULTI_TEX_SHADER_TEX7_BLEND_COLOR= 163;
1167
 
 
1168
 
 
1169
 
 
1170
 
 
1171
 
 
1172
 
 
1173
 
 
1174
 
///////////////////////////////////////////////////////////////////////////////
1175
 
//
1176
 
// GEO_DB_POLYGON Record - Field Ids
1177
 
//
1178
 
///////////////////////////////////////////////////////////////////////////////
1179
 
 
1180
 
// All Node Fields    +
1181
 
 
1182
 
const unsigned char GEO_DB_POLY_NORMAL                        = 20;    // Polygon Additions 
1183
 
const unsigned char GEO_DB_POLY_CENTER                        = 21;
1184
 
const unsigned char GEO_DB_POLY_PACKED_COLOR                = 22;
1185
 
const unsigned char GEO_DB_POLY_DSTYLE                        = 23;
1186
 
const unsigned char GEO_DB_POLY_SHADEMODEL                    = 24;
1187
 
const unsigned char GEO_DB_POLY_USE_MATERIAL_DIFFUSE        = 25;
1188
 
const unsigned char GEO_DB_POLY_USE_VERTEX_COLORS            = 26;
1189
 
const unsigned char GEO_DB_POLY_COLOR_INDEX                    = 27;
1190
 
const unsigned char GEO_DB_POLY_PT_SIZE                        = 28;
1191
 
const unsigned char GEO_DB_POLY_LINE_WIDTH                    = 29;
1192
 
const unsigned char GEO_DB_POLY_TEX0                        = 30;
1193
 
const unsigned char GEO_DB_POLY_TEX1                        = 31;
1194
 
const unsigned char GEO_DB_POLY_TEX2                        = 32;
1195
 
const unsigned char GEO_DB_POLY_TEX3                        = 33;
1196
 
const unsigned char GEO_DB_POLY_TEX4                        = 34;
1197
 
const unsigned char GEO_DB_POLY_TEX5                        = 35;
1198
 
const unsigned char GEO_DB_POLY_TEX6                        = 36;
1199
 
const unsigned char GEO_DB_POLY_TEX7                        = 37;
1200
 
const unsigned char GEO_DB_POLY_TEX0_FUNCTION                = 38;
1201
 
const unsigned char GEO_DB_POLY_TEX1_FUNCTION                = 39;
1202
 
const unsigned char GEO_DB_POLY_TEX2_FUNCTION                = 40;
1203
 
const unsigned char GEO_DB_POLY_TEX3_FUNCTION                = 41;
1204
 
const unsigned char GEO_DB_POLY_TEX4_FUNCTION                = 42;
1205
 
const unsigned char GEO_DB_POLY_TEX5_FUNCTION                = 43;
1206
 
const unsigned char GEO_DB_POLY_TEX6_FUNCTION                = 44;
1207
 
const unsigned char GEO_DB_POLY_TEX7_FUNCTION                = 45;
1208
 
const unsigned char GEO_DB_POLY_TEX0_BLEND_COLOR            = 46;
1209
 
const unsigned char GEO_DB_POLY_TEX1_BLEND_COLOR            = 47;
1210
 
const unsigned char GEO_DB_POLY_TEX2_BLEND_COLOR            = 48;
1211
 
const unsigned char GEO_DB_POLY_TEX3_BLEND_COLOR            = 49;
1212
 
const unsigned char GEO_DB_POLY_TEX4_BLEND_COLOR            = 50;
1213
 
const unsigned char GEO_DB_POLY_TEX5_BLEND_COLOR            = 51;
1214
 
const unsigned char GEO_DB_POLY_TEX6_BLEND_COLOR            = 52;
1215
 
const unsigned char GEO_DB_POLY_TEX7_BLEND_COLOR            = 53;
1216
 
const unsigned char GEO_DB_POLY_WHITE_IF_TEXTURED            = 54;
1217
 
const unsigned char GEO_DB_POLY_BASE                        = 55;
1218
 
const unsigned char GEO_DB_POLY_DECAL                        = 56;
1219
 
const unsigned char GEO_DB_POLY_HIDDEN                        = 57;
1220
 
const unsigned char GEO_DB_POLY_HELPER_TYPE                    = 58;
1221
 
const unsigned char GEO_DB_POLY_BINORMAL                    = 59;
1222
 
const unsigned char GEO_DB_POLY_TANGENT                        = 60;
1223
 
const unsigned char GEO_DB_POLY_SHADER                        = 61;
1224
 
const unsigned char GEO_DB_POLY_SMC                            = 62;
1225
 
const unsigned char GEO_DB_POLY_FID                            = 63;
1226
 
const unsigned char GEO_DB_POLY_FOOTPRINT                    = 64;
1227
 
 
1228
 
 
1229
 
 
1230
 
 
1231
 
///////////////////////////////////////////////////////////////////
1232
 
//
1233
 
// DB_DSK_PLANE_TEXTURE_MAPPING_INFO  Record Field Ids
1234
 
//
1235
 
///////////////////////////////////////////////////////////////////
1236
 
 
1237
 
const unsigned char GEO_DB_PLANE_TEXTURE_MAPPING_INFO_ORIGIN_PT        = 1;
1238
 
const unsigned char GEO_DB_PLANE_TEXTURE_MAPPING_INFO_U_AXIS_PT        = 2;
1239
 
const unsigned char GEO_DB_PLANE_TEXTURE_MAPPING_INFO_V_AXIS_PT        = 3;
1240
 
const unsigned char GEO_DB_PLANE_TEXTURE_MAPPING_INFO_TEXTURE_UNIT    = 4;
1241
 
 
1242
 
 
1243
 
 
1244
 
 
1245
 
 
1246
 
 
1247
 
 
1248
 
///////////////////////////////////////////////////////////////////////////////
1249
 
//
1250
 
// GEO_DB_LIGHTPT Record - Field Ids
1251
 
//
1252
 
// Many of the possible LightPt fields do not make sense in the context of a
1253
 
// Light point - namely most of the Polygon rendering & texturing properties.
1254
 
// These will likely not be present in a Geo file - if they are they can be 
1255
 
// ignored.
1256
 
///////////////////////////////////////////////////////////////////////////////
1257
 
 
1258
 
// All Node Fields    +
1259
 
// All Poly Fields +
1260
 
 
1261
 
const unsigned char GEO_DB_LIGHTPT_TYPE                        = 80;    // LightPt Additions
1262
 
const unsigned char GEO_DB_LIGHTPT_DIRECTION_VECTOR            = 81;
1263
 
const unsigned char GEO_DB_LIGHTPT_BACK_PACKED_COLOR        = 82;
1264
 
const unsigned char GEO_DB_LIGHTPT_MIN_PIXEL_SIZE            = 83;
1265
 
const unsigned char GEO_DB_LIGHTPT_MAX_PIXEL_SIZE            = 84;
1266
 
const unsigned char GEO_DB_LIGHTPT_HORIZ_LOBE_ANGLE            = 85;
1267
 
const unsigned char GEO_DB_LIGHTPT_VERT_LOBE_ANGLE            = 86;
1268
 
const unsigned char GEO_DB_LIGHTPT_DAY_DISPLAY                = 87;
1269
 
const unsigned char GEO_DB_LIGHTPT_DUSK_DISPLAY                = 88;
1270
 
const unsigned char GEO_DB_LIGHTPT_NIGHT_DISPLAY            = 89;
1271
 
const unsigned char GEO_DB_LIGHTPT_BACK_COLOR_INDEX            = 90;
1272
 
const unsigned char GEO_DB_LIGHTPT_SPECIAL_FX                = 91;
1273
 
const unsigned char GEO_DB_LIGHTPT_ANIM_FRAME_COUNT            = 92;
1274
 
const unsigned char GEO_DB_LIGHTPT_ANIM_ACTUAL_COUNT        = 93;
1275
 
const unsigned char GEO_DB_LIGHTPT_IG_LIGHTGROUP_ID            = 94;
1276
 
const unsigned char GEO_DB_LIGHTPT_ANIM_PHASE_DELAY            = 95;
1277
 
const unsigned char GEO_DB_LIGHTPT_OPTIMIZATION                = 96;
1278
 
 
1279
 
 
1280
 
 
1281
 
 
1282
 
 
1283
 
 
1284
 
///////////////////////////////////////////////////////////////////////////////
1285
 
//
1286
 
// GEO_DB_TEXT Record - Field Ids
1287
 
//
1288
 
///////////////////////////////////////////////////////////////////////////////
1289
 
 
1290
 
// All Node Fields    +
1291
 
 
1292
 
const unsigned char GEO_DB_TEXT_TYPE                        = 20;    // Text Additions
1293
 
const unsigned char GEO_DB_TEXT_STRING                        = 21;
1294
 
const unsigned char GEO_DB_TEXT_JUSTIFICATION                = 22;
1295
 
const unsigned char GEO_DB_TEXT_DIRECTION                    = 23;
1296
 
const unsigned char GEO_DB_TEXT_LINEWIDTH                    = 24;
1297
 
const unsigned char GEO_DB_TEXT_PACKED_COLOR                = 25;
1298
 
const unsigned char GEO_DB_TEXT_SCALE_X                        = 26;
1299
 
const unsigned char GEO_DB_TEXT_SCALE_Y                        = 27;
1300
 
const unsigned char GEO_DB_TEXT_MATRIX                        = 28;
1301
 
const unsigned char GEO_DB_TEXT_EXPANSION                    = 29;
1302
 
const unsigned char GEO_DB_TEXT_COLOR_INDEX                    = 30;
1303
 
const unsigned char GEO_DB_TEXT_FONT                        = 31;
1304
 
 
1305
 
 
1306
 
 
1307
 
 
1308
 
 
1309
 
 
1310
 
///////////////////////////////////////////////////////////////////////////////
1311
 
//
1312
 
// GEO_DB_MESH Record - Field Ids            
1313
 
//
1314
 
///////////////////////////////////////////////////////////////////////////////
1315
 
 
1316
 
// All Node Fields    +
1317
 
// All Poly Fields  +
1318
 
 
1319
 
const unsigned char GEO_DB_MESH_TYPE                        = 80;    // Mesh Additions
1320
 
 
1321
 
 
1322
 
 
1323
 
 
1324
 
 
1325
 
 
1326
 
 
1327
 
 
1328
 
 
1329
 
 
1330
 
 
1331
 
 
1332
 
 
1333
 
 
1334
 
 
1335
 
 
1336
 
///////////////////////////////////////////////////////////////////////////////
1337
 
//
1338
 
// GEO_DB_VERTEX Record - Field Ids
1339
 
//
1340
 
///////////////////////////////////////////////////////////////////////////////
1341
 
 
1342
 
// All Node Fields    +
1343
 
 
1344
 
const unsigned char GEO_DB_VRTX_COORD_INDEX                    = 20;    // Vertex Additions
1345
 
const unsigned char GEO_DB_VRTX_UV_SET_0                    = 21;
1346
 
const unsigned char GEO_DB_VRTX_UV_SET_1                    = 22;    
1347
 
const unsigned char GEO_DB_VRTX_UV_SET_2                    = 23;    
1348
 
const unsigned char GEO_DB_VRTX_UV_SET_3                    = 24;    
1349
 
const unsigned char GEO_DB_VRTX_UV_SET_4                    = 25;    
1350
 
const unsigned char GEO_DB_VRTX_UV_SET_5                    = 26;    
1351
 
const unsigned char GEO_DB_VRTX_UV_SET_6                    = 27;    
1352
 
const unsigned char GEO_DB_VRTX_UV_SET_7                    = 28;    
1353
 
const unsigned char GEO_DB_VRTX_NORMAL                        = 29;
1354
 
const unsigned char GEO_DB_VRTX_PACKED_COLOR                = 30;
1355
 
const unsigned char GEO_DB_VRTX_COLOR_INDEX                    = 31;
1356
 
const unsigned char GEO_DB_VRTX_COORD                        = 32;
1357
 
const unsigned char GEO_DB_VRTX_HARD_EDGE                    = 33;
1358
 
const unsigned char GEO_DB_VRTX_FREEZE_NORMAL                = 34;
1359
 
const unsigned char GEO_DB_VRTX_BINORMAL                    = 59;
1360
 
const unsigned char GEO_DB_VRTX_TANGENT                        = 60;
1361
 
 
1362
 
 
1363
 
///////////////////////////////////////////////////////////////////////////////
1364
 
//
1365
 
// GEO_DB_FAT_VERTEX Record - Field Ids
1366
 
//
1367
 
///////////////////////////////////////////////////////////////////////////////
1368
 
 
1369
 
 
1370
 
// All Node Fields        +
1371
 
// All VERTEX Fields    +
1372
 
 
1373
 
 
1374
 
 
1375
 
 
1376
 
 
1377
 
 
1378
 
///////////////////////////////////////////////////////////////////////////////
1379
 
//
1380
 
// GEO_DB_SLIM_VERTEX Record - Field Ids
1381
 
//
1382
 
///////////////////////////////////////////////////////////////////////////////
1383
 
 
1384
 
 
1385
 
// All Node Fields        +
1386
 
// All VERTEX Fields    +
1387
 
 
1388
 
const unsigned char GEO_DB_VRTX_FLAGS                        = 80;
1389
 
/* packed 32-bit flags with following format...
1390
 
        bit 0 GEO_DB_VRTX_UV_SET_0 is set
1391
 
        bit 1 GEO_DB_VRTX_UV_SET_1 is set
1392
 
        bit 2 spare
1393
 
        bit 3 spare
1394
 
        bit 4 hard_edge
1395
 
        bit 5 freeze_normal
1396
 
        bits 6-31 spare */
1397
 
 
1398
 
 
1399
 
 
1400
 
 
1401
 
///////////////////////////////////////////////////////////////////////////////
1402
 
//
1403
 
// GEO_DB_EXTERNAL Record - Field Ids
1404
 
//
1405
 
///////////////////////////////////////////////////////////////////////////////
1406
 
 
1407
 
// All Node Fields    +
1408
 
// All Group Fields +
1409
 
 
1410
 
const unsigned char GEO_DB_EXTERNAL_FILENAME                = 80;    // External Additions
1411
 
 
1412
 
 
1413
 
 
1414
 
 
1415
 
 
1416
 
 
1417
 
///////////////////////////////////////////////////////////////////////////////
1418
 
//
1419
 
// GEO BEHAVIOR & ARTICULATION SYSTEM RECORDS
1420
 
//
1421
 
///////////////////////////////////////////////////////////////////////////////
1422
 
 
1423
 
 
1424
 
 
1425
 
///////////////////////////////////////////////////////////////////
1426
 
// DB_DSK_INTERNAL_VARS  Record Field Ids
1427
 
//
1428
 
const unsigned char GEO_DB_INTERNAL_VAR_FRAMECOUNT    = 1;
1429
 
const unsigned char GEO_DB_INTERNAL_VAR_CURRENT_TIME= 2;
1430
 
const unsigned char GEO_DB_INTERNAL_VAR_ELAPSED_TIME= 3;
1431
 
const unsigned char GEO_DB_INTERNAL_VAR_SINE        = 4;
1432
 
const unsigned char GEO_DB_INTERNAL_VAR_COSINE        = 5;
1433
 
const unsigned char GEO_DB_INTERNAL_VAR_TANGENT        = 6;
1434
 
const unsigned char GEO_DB_INTERNAL_VAR_MOUSE_X        = 7;
1435
 
const unsigned char GEO_DB_INTERNAL_VAR_MOUSE_Y        = 8;
1436
 
const unsigned char GEO_DB_INTERNAL_VAR_LEFT_MOUSE    = 9;
1437
 
const unsigned char GEO_DB_INTERNAL_VAR_MIDDLE_MOUSE= 10;
1438
 
const unsigned char GEO_DB_INTERNAL_VAR_RIGHT_MOUSE    = 11;
1439
 
const unsigned char GEO_DB_INTERNAL_VAR_KEYBOARD    = 12;
1440
 
const unsigned char GEO_DB_INTERNAL_VAR_TEMP_FLOAT    = 13;
1441
 
const unsigned char GEO_DB_INTERNAL_VAR_TEMP_INT    = 14;
1442
 
const unsigned char GEO_DB_INTERNAL_VAR_TEMP_BOOL    = 15;
1443
 
const unsigned char GEO_DB_INTERNAL_VAR_TEMP_STRING    = 16;
1444
 
const unsigned char GEO_DB_INTERNAL_VAR_TRIGGER1    = 17;
1445
 
const unsigned char GEO_DB_INTERNAL_VAR_TRIGGER2    = 18;
1446
 
const unsigned char GEO_DB_INTERNAL_VAR_TRIGGER3    = 19;
1447
 
const unsigned char GEO_DB_INTERNAL_VAR_TRIGGER4    = 20;
1448
 
 
1449
 
 
1450
 
 
1451
 
 
1452
 
///////////////////////////////////////////////////////////////////
1453
 
// DB_DSK_FLOAT_VAR  Record Field Ids
1454
 
//
1455
 
const unsigned char GEO_DB_FLOAT_VAR_NAME            = 1;
1456
 
const unsigned char GEO_DB_FLOAT_VAR_VALUE            = 2;
1457
 
const unsigned char GEO_DB_FLOAT_VAR_DEFAULT        = 3;
1458
 
const unsigned char GEO_DB_FLOAT_VAR_FID            = 4;
1459
 
const unsigned char GEO_DB_FLOAT_VAR_CONSTRAINED    = 5;
1460
 
const unsigned char GEO_DB_FLOAT_VAR_MIN            = 6;
1461
 
const unsigned char GEO_DB_FLOAT_VAR_MAX            = 7;
1462
 
const unsigned char GEO_DB_FLOAT_VAR_STEP            = 8;
1463
 
 
1464
 
 
1465
 
 
1466
 
///////////////////////////////////////////////////////////////////
1467
 
// DB_DSK_FLOAT3_VAR  Record Field Ids
1468
 
//
1469
 
const unsigned char GEO_DB_FLOAT3_VAR_NAME            = 1;
1470
 
const unsigned char GEO_DB_FLOAT3_VAR_VALUE            = 2;
1471
 
const unsigned char GEO_DB_FLOAT3_VAR_DEFAULT        = 3;
1472
 
const unsigned char GEO_DB_FLOAT3_VAR_FID            = 4;
1473
 
const unsigned char GEO_DB_FLOAT3_VAR_CONSTRAINED    = 5;
1474
 
const unsigned char GEO_DB_FLOAT3_VAR_MIN            = 6;
1475
 
const unsigned char GEO_DB_FLOAT3_VAR_MAX            = 7;
1476
 
const unsigned char GEO_DB_FLOAT3_VAR_STEP            = 8;
1477
 
 
1478
 
 
1479
 
///////////////////////////////////////////////////////////////////
1480
 
// DB_DSK_INT_VAR  Record Field Ids
1481
 
//
1482
 
const unsigned char GEO_DB_INT_VAR_NAME                = 1;
1483
 
const unsigned char GEO_DB_INT_VAR_VALUE            = 2;
1484
 
const unsigned char GEO_DB_INT_VAR_DEFAULT            = 3;
1485
 
const unsigned char GEO_DB_INT_VAR_FID                = 4;
1486
 
const unsigned char GEO_DB_INT_VAR_CONSTRAINED        = 5;
1487
 
const unsigned char GEO_DB_INT_VAR_MIN                = 6;
1488
 
const unsigned char GEO_DB_INT_VAR_MAX                = 7;
1489
 
const unsigned char GEO_DB_INT_VAR_STEP                = 8;
1490
 
 
1491
 
 
1492
 
 
1493
 
///////////////////////////////////////////////////////////////////
1494
 
// DB_DSK_STRING_VAR  Record Field Ids
1495
 
//
1496
 
const unsigned char GEO_DB_STRING_VAR_NAME            = 1;
1497
 
const unsigned char GEO_DB_STRING_VAR_VALUE            = 2;
1498
 
const unsigned char GEO_DB_STRING_VAR_DEFAULT        = 3;
1499
 
const unsigned char GEO_DB_STRING_VAR_FID            = 4;
1500
 
 
1501
 
 
1502
 
///////////////////////////////////////////////////////////////////
1503
 
// DB_DSK_BOOL_VAR  Record Field Ids
1504
 
//
1505
 
const unsigned char GEO_DB_BOOL_VAR_NAME            = 1;
1506
 
const unsigned char GEO_DB_BOOL_VAR_VALUE            = 2;
1507
 
const unsigned char GEO_DB_BOOL_VAR_DEFAULT            = 3;
1508
 
const unsigned char GEO_DB_BOOL_VAR_FID                = 4;
1509
 
 
1510
 
 
1511
 
///////////////////////////////////////////////////////////////////
1512
 
// DB_DSK_LONG_VAR  Record Field Ids
1513
 
//
1514
 
const unsigned char GEO_DB_LONG_VAR_NAME            = 1;
1515
 
const unsigned char GEO_DB_LONG_VAR_VALUE            = 2;
1516
 
const unsigned char GEO_DB_LONG_VAR_DEFAULT            = 3;
1517
 
const unsigned char GEO_DB_LONG_VAR_FID                = 4;
1518
 
const unsigned char GEO_DB_LONG_VAR_CONSTRAINED        = 5;
1519
 
const unsigned char GEO_DB_LONG_VAR_MIN                = 6;
1520
 
const unsigned char GEO_DB_LONG_VAR_MAX                = 7;
1521
 
const unsigned char GEO_DB_LONG_VAR_STEP            = 8;
1522
 
 
1523
 
 
1524
 
///////////////////////////////////////////////////////////////////
1525
 
// DB_DSK_DOUBLE_VAR  Record Field Ids
1526
 
//
1527
 
const unsigned char GEO_DB_DOUBLE_VAR_NAME                = 1;
1528
 
const unsigned char GEO_DB_DOUBLE_VAR_VALUE                = 2;
1529
 
const unsigned char GEO_DB_DOUBLE_VAR_DEFAULT            = 3;
1530
 
const unsigned char GEO_DB_DOUBLE_VAR_FID                = 4;
1531
 
const unsigned char GEO_DB_DOUBLE_VAR_CONSTRAINED        = 5;
1532
 
const unsigned char GEO_DB_DOUBLE_VAR_MIN                = 6;
1533
 
const unsigned char GEO_DB_DOUBLE_VAR_MAX                = 7;
1534
 
const unsigned char GEO_DB_DOUBLE_VAR_STEP                = 8;
1535
 
 
1536
 
 
1537
 
 
1538
 
 
1539
 
///////////////////////////////////////////////////////////////////
1540
 
// DB_DSK_STATE_MACHINE  Record Field Ids
1541
 
//
1542
 
const unsigned char GEO_DB_STATE_MACHINE_NAME            = 1;
1543
 
 
1544
 
 
1545
 
 
1546
 
 
1547
 
///////////////////////////////////////////////////////////////////
1548
 
// DB_DSK_STATE  Record Field Ids (states of the State machine)
1549
 
//
1550
 
const unsigned char GEO_DB_STATE_NAME                    = 1;
1551
 
const unsigned char GEO_DB_STATE_DEFAULT                = 2;
1552
 
const unsigned char GEO_DB_STATE_POSITION                = 3;
1553
 
const unsigned char GEO_DB_STATE_DEFAULT_TRANSITION        = 4;
1554
 
 
1555
 
 
1556
 
 
1557
 
///////////////////////////////////////////////////////////////////
1558
 
// DB_DSK_TRANSITION  Record Field Ids (transitions of the State machine)
1559
 
//
1560
 
const unsigned char GEO_DB_TRANSITION_NAME                = 1;
1561
 
const unsigned char GEO_DB_TRANSITION_SOURCE            = 2;
1562
 
const unsigned char GEO_DB_TRANSITION_DESTINATION        = 3;
1563
 
const unsigned char GEO_DB_TRANSITION_DURATION            = 4;
1564
 
const unsigned char GEO_DB_TRANSITION_TRIGGER            = 5;
1565
 
const unsigned char GEO_DB_TRANSITION_CONNECTORS        = 6;
1566
 
const unsigned char GEO_DB_TRANSITION_RATIO                = 7;
1567
 
 
1568
 
 
1569
 
 
1570
 
///////////////////////////////////////////////////////////////////
1571
 
// DB_DSK_STATE_MACHINE_ACTION  Record Field Ids
1572
 
//
1573
 
// Record structure for a State Machine Action with 2 States & 2 Transitions
1574
 
// (where the 1st transition rule used a rotation & the second a translation)
1575
 
// would be:
1576
 
//        DB_DSK_STATE_MACHINE_ACTION
1577
 
//        DB_DSK_PUSH_ACTION
1578
 
//            DB_DSK_STATE_RULE_ACTION
1579
 
//            DB_DSK_STATE_RULE_ACTION
1580
 
//            DB_DSK_TRANSITION_RULE_ACTION
1581
 
//            DB_DSK_PUSH_ACTION
1582
 
//                DB_DSK_ROTATE_ACTION
1583
 
//            DB_DSK_POP_ACTION
1584
 
//            DB_DSK_TRANSITION_RULE_ACTION
1585
 
//            DB_DSK_PUSH_ACTION
1586
 
//                DB_DSK_TRANSLATE_ACTION
1587
 
//            DB_DSK_POP_ACTION
1588
 
//        DB_DSK_POP_ACTION
1589
 
//
1590
 
// if the first state had an optional set of actions to perform when 
1591
 
// active it would have the following construct...
1592
 
//        DB_DSK_STATE_MACHINE_ACTION
1593
 
//        DB_DSK_PUSH_ACTION
1594
 
//            DB_DSK_STATE_RULE_ACTION
1595
 
//                DB_DSK_PUSH_ACTION
1596
 
//                    DB_DSK_ARITHMETIC
1597
 
//                    DB_DSK_VISIBILITY
1598
 
//                DB_DSK_POP_ACTION
1599
 
//            DB_DSK_STATE_RULE_ACTION
1600
 
//            DB_DSK_TRANSITION_RULE_ACTION
1601
 
//            DB_DSK_PUSH_ACTION
1602
 
//                DB_DSK_ROTATE_ACTION
1603
 
//            DB_DSK_POP_ACTION
1604
 
//            DB_DSK_TRANSITION_RULE_ACTION
1605
 
//            DB_DSK_PUSH_ACTION
1606
 
//                DB_DSK_TRANSLATE_ACTION
1607
 
//            DB_DSK_POP_ACTION
1608
 
//        DB_DSK_POP_ACTION
1609
 
const unsigned char GEO_DB_STATE_MACHINE_ACTION_NAME                    = 1;
1610
 
 
1611
 
 
1612
 
///////////////////////////////////////////////////////////////////
1613
 
// DB_DSK_STATE_RULE_ACTION  Record Field Ids
1614
 
//
1615
 
const unsigned char GEO_DB_STATE_RULE_ACTION_STATE_MACHINE_NAME            = 1;
1616
 
const unsigned char GEO_DB_STATE_RULE_ACTION_STATE_NAME                    = 2;
1617
 
const unsigned char GEO_DB_STATE_RULE_ACTION_HIDDEN                        = 3;
1618
 
const unsigned char GEO_DB_STATE_RULE_ACTION_IDENTITY                    = 4;    // deprecated
1619
 
 
1620
 
 
1621
 
///////////////////////////////////////////////////////////////////
1622
 
// DB_DSK_TRANSITION_RULE_ACTION  Record Field Ids
1623
 
//
1624
 
const unsigned char GEO_DB_TRANSITION_RULE_ACTION_STATE_MACHINE_NAME    = 1;
1625
 
const unsigned char GEO_DB_TRANSITION_RULE_ACTION_TRANSITION_NAME        = 2;
1626
 
const unsigned char GEO_DB_TRANSITION_RULE_ACTION_HIDDEN                = 3;
1627
 
 
1628
 
 
1629
 
 
1630
 
 
1631
 
///////////////////////////////////////////////////////////////////
1632
 
// GEO_DSK_BEHAVIOR  Record Field Ids
1633
 
//
1634
 
const unsigned char GEO_DB_BEHAVIOR_NAME                = 1;
1635
 
 
1636
 
 
1637
 
 
1638
 
///////////////////////////////////////////////////////////////////
1639
 
// DB_DSK_ROTATE_ACTION  Record Field Ids
1640
 
//
1641
 
const unsigned char GEO_DB_ROTATE_ACTION_INPUT_VAR          = 1;
1642
 
const unsigned char GEO_DB_ROTATE_ACTION_OUTPUT_VAR         = 2; // not used
1643
 
const unsigned char GEO_DB_ROTATE_ACTION_ORIGIN             = 3;
1644
 
const unsigned char GEO_DB_ROTATE_ACTION_VECTOR             = 4;
1645
 
const unsigned char GEO_DB_ROTATE_ACTION_DIR                = 5;
1646
 
const unsigned char GEO_DB_ROTATE_ACTION_MAX                = 6;
1647
 
 
1648
 
 
1649
 
 
1650
 
///////////////////////////////////////////////////////////////////
1651
 
// DB_DSK_CLAMP_ACTION  Record Field Ids
1652
 
//
1653
 
const unsigned char GEO_DB_CLAMP_ACTION_INPUT_VAR           = 1;
1654
 
const unsigned char GEO_DB_CLAMP_ACTION_OUTPUT_VAR          = 2; 
1655
 
const unsigned char GEO_DB_CLAMP_ACTION_MIN_VAL             = 3;
1656
 
const unsigned char GEO_DB_CLAMP_ACTION_MAX_VAL             = 4;
1657
 
 
1658
 
 
1659
 
 
1660
 
///////////////////////////////////////////////////////////////////
1661
 
// DB_DSK_RANGE_ACTION  Record Field Ids
1662
 
//
1663
 
const unsigned char GEO_DB_RANGE_ACTION_INPUT_VAR           = 1;
1664
 
const unsigned char GEO_DB_RANGE_ACTION_OUTPUT_VAR          = 2; 
1665
 
const unsigned char GEO_DB_RANGE_ACTION_IN_MIN_VAL          = 3;
1666
 
const unsigned char GEO_DB_RANGE_ACTION_IN_MAX_VAL          = 4;
1667
 
const unsigned char GEO_DB_RANGE_ACTION_OUT_MIN_VAL         = 5;
1668
 
const unsigned char GEO_DB_RANGE_ACTION_OUT_MAX_VAL         = 6;
1669
 
 
1670
 
 
1671
 
 
1672
 
///////////////////////////////////////////////////////////////////
1673
 
// DB_DSK_ARITHMETIC_ACTION  Record Field Ids
1674
 
//
1675
 
const unsigned char GEO_DB_ARITHMETIC_ACTION_INPUT_VAR    = 1;
1676
 
const unsigned char GEO_DB_ARITHMETIC_ACTION_OUTPUT_VAR    = 2; 
1677
 
const unsigned char GEO_DB_ARITHMETIC_ACTION_OP_TYPE    = 3;
1678
 
const unsigned char GEO_DB_ARITHMETIC_ACTION_OPERAND_VALUE    = 4;
1679
 
const unsigned char GEO_DB_ARITHMETIC_ACTION_OPERAND_VAR    = 5;
1680
 
 
1681
 
 
1682
 
 
1683
 
///////////////////////////////////////////////////////////////////
1684
 
// DB_DSK_EQUATION_ACTION  Record Field Ids
1685
 
//
1686
 
const unsigned char GEO_DB_EQUATION_ACTION_INPUT_VAR    = 1;
1687
 
const unsigned char GEO_DB_EQUATION_ACTION_OUTPUT_VAR   = 2; 
1688
 
const unsigned char GEO_DB_EQUATION_ACTION_A_VAL        = 3;
1689
 
const unsigned char GEO_DB_EQUATION_ACTION_C_VAL        = 4;
1690
 
const unsigned char GEO_DB_EQUATION_ACTION_A_VAR        = 5;
1691
 
const unsigned char GEO_DB_EQUATION_ACTION_C_VAR        = 6;
1692
 
 
1693
 
 
1694
 
 
1695
 
///////////////////////////////////////////////////////////////////
1696
 
// DB_DSK_PERIODIC_ACTION  Record Field Ids
1697
 
//
1698
 
const unsigned char GEO_DB_PERIODIC_ACTION_TYPE            = 7;
1699
 
 
1700
 
 
1701
 
 
1702
 
///////////////////////////////////////////////////////////////////
1703
 
// DB_DSK_TRIG_ACTION  Record Field Ids
1704
 
//
1705
 
const unsigned char GEO_DB_TRIG_ACTION_OP                = 7;
1706
 
 
1707
 
 
1708
 
 
1709
 
 
1710
 
///////////////////////////////////////////////////////////////////
1711
 
// DB_DSK_CONTINUOUS_ACTION  Record Field Ids
1712
 
//
1713
 
const unsigned char GEO_DB_CONTINUOUS_ACTION_INPUT_VAR              = 1;    // Not used
1714
 
const unsigned char GEO_DB_CONTINUOUS_ACTION_OUTPUT_VAR             = 2; 
1715
 
const unsigned char GEO_DB_CONTINUOUS_ACTION_UPDATE_TYPE            = 4;
1716
 
const unsigned char GEO_DB_CONTINUOUS_ACTION_UPDATE_VAL             = 5;
1717
 
const unsigned char GEO_DB_CONTINUOUS_ACTION_DEFAULT_VAL            = 6;
1718
 
const unsigned char GEO_DB_CONTINUOUS_ACTION_MIN_VAL                = 7;
1719
 
const unsigned char GEO_DB_CONTINUOUS_ACTION_MAX_VAL                = 8;
1720
 
const unsigned char GEO_DB_CONTINUOUS_ACTION_DIRECTION              = 9;
1721
 
const unsigned char GEO_DB_CONTINUOUS_ACTION_MINMAX_BEHAVIOR        = 10;
1722
 
 
1723
 
 
1724
 
 
1725
 
 
1726
 
///////////////////////////////////////////////////////////////////
1727
 
// DB_DSK_MOMENTARY_ACTION  Record Field Ids
1728
 
//
1729
 
const unsigned char GEO_DB_MOMENTARY_ACTION_INPUT_VAR               = 1;    // Not used
1730
 
const unsigned char GEO_DB_MOMENTARY_ACTION_OUTPUT_VAR              = 2; 
1731
 
const unsigned char GEO_DB_MOMENTARY_ACTION_DEFAULT_VAL             = 3;
1732
 
const unsigned char GEO_DB_MOMENTARY_ACTION_VAL                     = 4;
1733
 
 
1734
 
 
1735
 
///////////////////////////////////////////////////////////////////
1736
 
// DB_DSK_NSTATE_ACTION  Record Field Ids
1737
 
//
1738
 
const unsigned char GEO_DB_NSTATE_ACTION_INPUT_VAR                  = 1;    // Not used
1739
 
const unsigned char GEO_DB_NSTATE_ACTION_OUTPUT_VAR                 = 2; 
1740
 
const unsigned char GEO_DB_NSTATE_ACTION_DIRECTION                  = 3;
1741
 
const unsigned char GEO_DB_NSTATE_ACTION_BEHAVIOR                   = 4;
1742
 
const unsigned char GEO_DB_NSTATE_ACTION_NUM_ITEMS                  = 5;
1743
 
const unsigned char GEO_DB_NSTATE_ACTION_OUTPUT_VAR_TYPE            = 6;
1744
 
const unsigned char GEO_DB_NSTATE_ACTION_VALS                       = 7;
1745
 
 
1746
 
 
1747
 
///////////////////////////////////////////////////////////////////
1748
 
// DB_DSK_ROTARY_DRAG_ACTION  Record Field Ids
1749
 
//
1750
 
const unsigned char GEO_DB_ROTARY_DRAG_ACTION_INPUT_VAR             = 1;    // Not used
1751
 
const unsigned char GEO_DB_ROTARY_DRAG_ACTION_OUTPUT_VAR            = 2; 
1752
 
const unsigned char GEO_DB_ROTARY_DRAG_ACTION_BEHAVIOR              = 3;
1753
 
const unsigned char GEO_DB_ROTARY_DRAG_ACTION_ORIGIN                = 4;
1754
 
 
1755
 
 
1756
 
///////////////////////////////////////////////////////////////////
1757
 
// DB_DSK_TASK_ACTION  Record Field Ids
1758
 
//
1759
 
const unsigned char GEO_DB_TASK_ACTION_INPUT_VAR                    = 1;
1760
 
const unsigned char GEO_DB_TASK_ACTION_OUTPUT_VAR                   = 2; 
1761
 
 
1762
 
 
1763
 
///////////////////////////////////////////////////////////////////
1764
 
// DB_DSK_VISIBILITY_ACTION  Record Field Ids
1765
 
//
1766
 
const unsigned char GEO_DB_VISIBILITY_ACTION_INPUT_VAR              = 1;
1767
 
const unsigned char GEO_DB_VISIBILITY_ACTION_OUTPUT_VAR             = 2; // Not used
1768
 
 
1769
 
 
1770
 
 
1771
 
///////////////////////////////////////////////////////////////////
1772
 
// DB_DSK_COLOR_RAMP_ACTION  Record Field Ids
1773
 
//
1774
 
const unsigned char GEO_DB_COLOR_RAMP_ACTION_INPUT_VAR              = 1;
1775
 
const unsigned char GEO_DB_COLOR_RAMP_ACTION_OUTPUT_VAR             = 2; // Not used
1776
 
const unsigned char GEO_DB_COLOR_RAMP_ACTION_COLOR_FROM_PALETTE     = 3;
1777
 
const unsigned char GEO_DB_COLOR_RAMP_ACTION_TOP_COLOR_INDEX        = 4;
1778
 
const unsigned char GEO_DB_COLOR_RAMP_ACTION_BOTTOM_COLOR_INDEX     = 5;
1779
 
const unsigned char GEO_DB_COLOR_RAMP_ACTION_NUM_RAMPS              = 6;
1780
 
const unsigned char GEO_DB_COLOR_RAMP_ACTION_TOP_COLOR              = 7;
1781
 
const unsigned char GEO_DB_COLOR_RAMP_ACTION_BOTTOM_COLOR           = 8;
1782
 
const unsigned char GEO_DB_COLOR_RAMP_ACTION_MATCH_COLUMNS          = 9;
1783
 
 
1784
 
 
1785
 
 
1786
 
///////////////////////////////////////////////////////////////////
1787
 
// DB_DSK_COMPARE_ACTION  Record Field Ids
1788
 
//
1789
 
const unsigned char GEO_DB_COMPARE_ACTION_INPUT_VAR     = 1;
1790
 
const unsigned char GEO_DB_COMPARE_ACTION_OUTPUT_VAR    = 2; 
1791
 
const unsigned char GEO_DB_COMPARE_ACTION_OP_TYPE       = 3;
1792
 
const unsigned char GEO_DB_COMPARE_ACTION_OPERAND_VALUE = 4;
1793
 
const unsigned char GEO_DB_COMPARE_ACTION_OPERAND_VAR   = 5;
1794
 
 
1795
 
 
1796
 
///////////////////////////////////////////////////////////////////
1797
 
// DB_DSK_TRANSLATE_ACTION  Record Field Ids
1798
 
//
1799
 
const unsigned char GEO_DB_TRANSLATE_ACTION_INPUT_VAR   = 1;
1800
 
const unsigned char GEO_DB_TRANSLATE_ACTION_OUTPUT_VAR  = 2; // not used
1801
 
const unsigned char GEO_DB_TRANSLATE_ACTION_ORIGIN      = 3;
1802
 
const unsigned char GEO_DB_TRANSLATE_ACTION_VECTOR      = 4;
1803
 
const unsigned char GEO_DB_TRANSLATE_ACTION_DIR         = 5;
1804
 
const unsigned char GEO_DB_TRANSLATE_ACTION_SCALAR      = 6;
1805
 
const unsigned char GEO_DB_TRANSLATE_ACTION_MAX         = 7;
1806
 
 
1807
 
 
1808
 
 
1809
 
///////////////////////////////////////////////////////////////////
1810
 
// DB_DSK_SCALE_ACTION  Record Field Ids
1811
 
//
1812
 
const unsigned char GEO_DB_SCALE_ACTION_INPUT_VAR       = 1;
1813
 
const unsigned char GEO_DB_SCALE_ACTION_OUTPUT_VAR      = 2; // not used
1814
 
const unsigned char GEO_DB_SCALE_ACTION_ORIGIN          = 3;
1815
 
const unsigned char GEO_DB_SCALE_ACTION_VECTOR          = 4;
1816
 
const unsigned char GEO_DB_SCALE_ACTION_DIR             = 5;
1817
 
const unsigned char GEO_DB_SCALE_ACTION_SCALAR          = 6;
1818
 
const unsigned char GEO_DB_SCALE_ACTION_SCALE_ALL       = 7;
1819
 
const unsigned char GEO_DB_SCALE_ACTION_MAX             = 8;
1820
 
 
1821
 
 
1822
 
 
1823
 
///////////////////////////////////////////////////////////////////
1824
 
// DB_DSK_STRING_CONTENT_ACTION  Record Field Ids
1825
 
//
1826
 
const unsigned char GEO_DB_STRING_CONTENT_ACTION_INPUT_VAR      = 1;
1827
 
const unsigned char GEO_DB_STRING_CONTENT_ACTION_OUTPUT_VAR     = 2; // not used
1828
 
const unsigned char GEO_DB_STRING_CONTENT_ACTION_PADDING_TYPE   = 3;
1829
 
const unsigned char GEO_DB_STRING_CONTENT_ACTION_PAD_FOR_SIGN   = 4;
1830
 
const unsigned char GEO_DB_STRING_CONTENT_ACTION_FORMAT         = 5;
1831
 
 
1832
 
 
1833
 
///////////////////////////////////////////////////////////////////
1834
 
// DB_DSK_STRING_COPY_ACTION  Record Field Ids
1835
 
//
1836
 
const unsigned char GEO_DB_STRING_COPY_ACTION_INPUT_VAR            = 1;
1837
 
const unsigned char GEO_DB_STRING_COPY_ACTION_OUTPUT_VAR        = 2; // not used
1838
 
 
1839
 
 
1840
 
///////////////////////////////////////////////////////////////////
1841
 
// DB_DSK_CONDITIONAL_ACTION  Record Field Ids
1842
 
//
1843
 
// Record structure for compound if-the-else block of Actions
1844
 
// The conditional action has an optional list of actions if the
1845
 
// input var passes the conditional test (Not equal zero) and an
1846
 
// alternative list of actions if the input var does not pass
1847
 
// the conditional test (the else selction). In a simple case
1848
 
// where the conditional action had one rotate action on pass &
1849
 
// a range & rotate on fail the disk rep would be...
1850
 
// would be:
1851
 
//        DB_DSK_CONDITIONAL_ACTION
1852
 
//      DB_DSK_PUSH_ACTION              // indicates list of child actions
1853
 
//            DB_DSK_IF_CONDITION       // all following are for If list
1854
 
//            DB_DSK_ROTATE
1855
 
//            DB_DSK_ELSE_CONDITION     // all following are for Else list
1856
 
//            DB_DSK_RANGE
1857
 
//            DB_DSK_ROTATE
1858
 
//        DB_DSK_POP_ACTION
1859
 
//
1860
 
const unsigned char GEO_DB_CONDITIONAL_ACTION_INPUT_VAR    = 1;
1861
 
const unsigned char GEO_DB_CONDITIONAL_ACTION_OUTPUT_VAR= 2; // not used
1862
 
 
1863
 
 
1864
 
///////////////////////////////////////////////////////////////////
1865
 
// DB_DSK_DCS_ACTION  Record Field Ids
1866
 
//
1867
 
const unsigned char GEO_DB_DCS_ACTION_INPUT_VAR                 = 1; // not used
1868
 
const unsigned char GEO_DB_DCS_ACTION_OUTPUT_VAR                = 2; // not used
1869
 
const unsigned char GEO_DB_DCS_ACTION_ORIGIN                    = 3;
1870
 
const unsigned char GEO_DB_DCS_ACTION_XPOS                      = 4;
1871
 
const unsigned char GEO_DB_DCS_ACTION_ZPOS                      = 5;
1872
 
const unsigned char GEO_DB_DCS_ACTION_VECTOR                    = 6;
1873
 
const unsigned char GEO_DB_DCS_ACTION_TRANSLATE_X_VAR           = 7;
1874
 
const unsigned char GEO_DB_DCS_ACTION_TRANSLATE_Y_VAR           = 8;
1875
 
const unsigned char GEO_DB_DCS_ACTION_TRANSLATE_Z_VAR           = 9;
1876
 
const unsigned char GEO_DB_DCS_ACTION_ROTATE_X_VAR              = 10;
1877
 
const unsigned char GEO_DB_DCS_ACTION_ROTATE_Y_VAR              = 11;
1878
 
const unsigned char GEO_DB_DCS_ACTION_ROTATE_Z_VAR              = 12;
1879
 
const unsigned char GEO_DB_DCS_ACTION_SCALE_X_VAR               = 13;
1880
 
const unsigned char GEO_DB_DCS_ACTION_SCALE_Y_VAR               = 14;
1881
 
const unsigned char GEO_DB_DCS_ACTION_SCALE_Z_VAR               = 15;
1882
 
 
1883
 
 
1884
 
 
1885
 
 
1886
 
 
1887
 
 
1888
 
 
1889
 
///////////////////////////////////////////////////////////////////
1890
 
// DB_DSK_DISCRETE_ACTION  Record Field Ids
1891
 
//
1892
 
const unsigned char GEO_DB_DISCRETE_ACTION_INPUT_VAR            = 1;
1893
 
const unsigned char GEO_DB_DISCRETE_ACTION_OUTPUT_VAR           = 2; 
1894
 
const unsigned char GEO_DB_DISCRETE_ACTION_NUM_ITEMS            = 3;
1895
 
const unsigned char GEO_DB_DISCRETE_ACTION_OUTPUT_VAR_TYPE      = 4;
1896
 
const unsigned char GEO_DB_DISCRETE_ACTION_MIN_VALS             = 5;
1897
 
const unsigned char GEO_DB_DISCRETE_ACTION_MAX_VALS             = 6;
1898
 
const unsigned char GEO_DB_DISCRETE_ACTION_MAP_VALS             = 7;
1899
 
 
1900
 
 
1901
 
 
1902
 
 
1903
 
 
1904
 
/** Record identifiers can be read as ints or this structure. All subsequent
1905
 
 *  fields are considered part of this Node until an special EOF(ield) record
1906
 
 *  is found. The only exception to this rule id DB_DSK_PUSH & DB_DSK_POP
1907
 
 *  which have no fields. User parse code should expect another REcord header
1908
 
 *  immediately after reading the Push/Pop record.
1909
 
 */
1910
 
struct GEO_DB_API geoExtensionDefRec
1911
 
{
1912
 
 
1913
 
    /** The Node type for which this extension exists */
1914
 
    unsigned int            nodetype;                    //  4 bytes 
1915
 
 
1916
 
    /** The data type of the extension - defined in terms of GEO_DB_DATATYPE_INT
1917
 
     *  GEO_DB_DATATYPE_FLOAT, GEO_DB_DATATYPE_BOOL etc.
1918
 
     */
1919
 
    unsigned char            datatype;                   //  1 byte
1920
 
 
1921
 
    /** The extension can have a special "sub type" value. This could be
1922
 
     *  values like GEO_DB_EXT_MENU_ITEM which (when associated with a datatype
1923
 
     *  of GEO_DB_DATATYPE_BOOL means that this extension will be accessed as one
1924
 
     *  of many in an option menu
1925
 
     */
1926
 
    unsigned char            subdatatype;                //  1 bytes 
1927
 
 
1928
 
    /** The User ID (uid) is the optional value provided (in code) by the user 
1929
 
     *  to identify this particular extension. Users can search & retrieve 
1930
 
     *  extension values based on this user ID number.
1931
 
     */
1932
 
    unsigned short            uid;                        //  2 bytes
1933
 
 
1934
 
    /** The name of the extension.
1935
 
     *
1936
 
     *  Note that the "name" field is sized for the Geo 1.0 maximum property
1937
 
     *  label length that can be accomodated. The name field is also used to
1938
 
     *  encode the name/label of the option menu when the extension is flagged
1939
 
     *  as one of those. The following rules should be taken into consideration:
1940
 
     *  1. When the extension is an option menu (datatype=GEO_DB_DATATYPE_BOOL
1941
 
     *     and subdatatype=GEO_DB_EXT_MENU_ITEM) then the name field is
1942
 
     *     divided up as 15 chars for the option menu title, 8 chars for
1943
 
     *     this particular option menu's label and 1 char for the terminator
1944
 
     * 2.  When the extension is a text field or boolean toggle value - it is
1945
 
     *     recommended that only the 15 chars for the field label be used - 
1946
 
     *     setting a 23 char-length  label for a text input field will be a 
1947
 
     *     waste of time, as it will get truncated on display anyway.
1948
 
     */
1949
 
    char                    name[24];       // 24 bytes
1950
 
                                            //-----------------------------
1951
 
};                                          // total:       32 bytes
1952
 
 
1953
 
 
1954
 
 
1955
 
 
1956
 
#endif // __GEO_FORMAT_H__
1957