1
/*===========================================================================*\
5
DESCRIPTION: Native Format struct definitions, tokens & functionc
9
-------------------------------------------------------------------------
11
PROPRIETARY RIGHTS NOTICE:
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.
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.
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.
32
Copyright � 1998-2001 Carbon Graphics Llc, ALL RIGHTS RESERVED
34
\*===========================================================================*/
37
#ifndef __GEO_FORMAT_H__
38
#define __GEO_FORMAT_H__
43
#define GEO_1_0_RC2 1132
44
#define GEO_1_0_RC3 1133
45
#define GEO_1_0_RC4 1134
48
#define GEO_1_1_RC1 1231
49
#define GEO_1_1_RC2 1232
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))
63
// Constants to define the Node disk records. Used in RecordToken.id
67
///////////////////////////////////////////////////////////////////////////////
71
///////////////////////////////////////////////////////////////////////////////
73
//----------------------------------------------------------------
74
// Geo 1.0 RC 2 & Below
75
//----------------------------------------------------------------
77
//const unsigned int DB_DSK_HEADER = 101;
79
//----------------------------------------------------------------
80
// Geo 1.0 RC 3 & Above
81
//----------------------------------------------------------------
82
const unsigned int DB_DSK_HEADER = 100; // NOTE File MAGIC ID *CHANGED*
84
//----------------------------------------------------------------
86
//----------------------------------------------------------------
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;
204
// Constants to define the data types supported in the format
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
241
// Constants to define sizeof() values
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);
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;
291
// Valid field size values are any value cleanly divisible by 4 & < 65536
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.
301
struct GEO_DB_API geoRecordHeader
303
unsigned int id; // e.g. DB_DSK_HEADER etc.
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
312
struct GEO_DB_API geoFieldHeader
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.
320
unsigned char id; // field ID for record
322
/** The data type of the field coming up */
323
unsigned char type; // DB_INT, etc.
325
/** How many of the data types (described above) must be read */
326
unsigned short num; // How many of them follow
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.
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...
349
* DB_UCHAR id GEO_DB_VRTX_COORDS
350
* DB_UCHAR type DB_EXTENDED_FIELD_STRUCT
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)
358
* next we find the geoExtendedFieldHeader. Id is repeated.
360
* geoExtendedFieldHeader
362
* DB_USHORT id GEO_DB_VRTX_COORDS
363
* DB_USHORT type DB_VEC3F
364
* DB_UINT num number-of-verts
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.
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...
382
* DB_UCHAR id GEO_DB_NODE_EXTENDED
383
* DB_UCHAR type DB_EXTENDED_FIELD_STRUCT
389
* geoExtendedFieldHeader
391
* DB_USHORT id GEO_DB_SOME_FUTURE_USHORT_ID
392
* DB_USHORT type DB_VEC3F
393
* DB_UINT num number_of_data_items
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
400
struct GEO_DB_API geoExtendedFieldHeader
402
/** Id of the field. This should be the same ID as the previous geoFieldHeader
403
* which indicated the existence of this record.
405
unsigned short id; // field ID for record
407
/** The data type of the field coming up */
408
unsigned short type; // DB_INT, etc.
410
/** How many of the data types (described above) must be read */
411
unsigned int num; // How many of them follow
418
///////////////////////////////////////////////////////////////////////////////
419
// Constant to define the last field types
421
const unsigned char GEO_DB_LAST_FIELD = 0;
428
///////////////////////////////////////////////////////////////////////////////
430
// Common NODE field types - can found for all SceneGraph Nodes
432
///////////////////////////////////////////////////////////////////////////////
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
442
///////////////////////////////////////////////////////////////////////////////
444
// Field ID Address Ranges...
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
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
462
// Node Property IDs 1 through 19
463
// Polygon Property IDs 20 through 79
464
// LightPt property IDs 80 through 139
466
///////////////////////////////////////////////////////////////////////////////
473
///////////////////////////////////////////////////////////////////////////////
475
// GEO_DB_HEADER Record - Field Ids
477
///////////////////////////////////////////////////////////////////////////////
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
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;
514
///////////////////////////////////////////////////////////////////////////////
516
// DB_DSK_COORD_POOL Record - Field Ids
518
///////////////////////////////////////////////////////////////////////////////
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;
529
///////////////////////////////////////////////////////////////////////////////
531
// DB_DSK_NORMAL_POOL Record - Field Ids
533
///////////////////////////////////////////////////////////////////////////////
535
const unsigned char GEO_DB_NORMAL_POOL_SIZE = 1;
536
const unsigned char GEO_DB_NORMAL_POOL_VALUES = 2;
543
///////////////////////////////////////////////////////////////////////////////
545
// DB_DSK_MATERIAL Record - Field Ids
547
///////////////////////////////////////////////////////////////////////////////
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;
561
///////////////////////////////////////////////////////////////////////////////
563
// DB_DSK_COLOR_PALETTE Record - Field Ids
565
///////////////////////////////////////////////////////////////////////////////
567
const unsigned char GEO_DB_COLOR_PALETTE_HIGHEST_INTENSITIES = 1;
570
///////////////////////////////////////////////////////////////////////////////
572
// DB_DSK_TEXTURE Record - Field Ids
574
///////////////////////////////////////////////////////////////////////////////
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;
599
///////////////////////////////////////////////////////////////////////////////
601
// Common SHADER field types - can found for all Shader Types
603
///////////////////////////////////////////////////////////////////////////////
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;
615
///////////////////////////////////////////////////////////////////////////////
617
// DB_DSK_CG_SHADER Record - Field Ids
619
///////////////////////////////////////////////////////////////////////////////
621
// All shader Fields +
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;
633
///////////////////////////////////////////////////////////////////////////////
635
// DB_DSK_CGFX_SHADER Record - Field Ids
637
///////////////////////////////////////////////////////////////////////////////
639
// All shader Fields +
641
// currently No additional fields = 20 will be first addition
647
///////////////////////////////////////////////////////////////////////////////
649
// DB_DSK_GLSL_SHADER Record - Field Ids
651
///////////////////////////////////////////////////////////////////////////////
653
// All shader Fields +
655
// currently No additional fields = 20 will be first addition
660
///////////////////////////////////////////////////////////////////////////////
662
// DB_DSK_VIEW Record - Field Ids
664
///////////////////////////////////////////////////////////////////////////////
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;
685
///////////////////////////////////////////////////////////////////////////////
687
// DB_DSK_PERSPECTIVE_GRID_INFO Record
689
// DB_DSK_XY_GRID_INFO Record
690
// DB_DSK_XZ_GRID_INFO Record
691
// DB_DSK_YZ_GRID_INFO Record - Field Ids
693
///////////////////////////////////////////////////////////////////////////////
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;
709
///////////////////////////////////////////////////////////////////////////////
711
// DB_DSK_GROUP Record - Field Ids
713
///////////////////////////////////////////////////////////////////////////////
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;
731
///////////////////////////////////////////////////////////////////////////////
733
// DB_DSK_LIGHT_GROUP Record - Field Ids
735
///////////////////////////////////////////////////////////////////////////////
738
// All Group Fields +
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;
750
///////////////////////////////////////////////////////////////////////////////
752
// DB_DSK_DCS Record - Field Ids
754
///////////////////////////////////////////////////////////////////////////////
757
// All Group Fields +
759
const unsigned char GEO_DB_DCS_ACTIVE = 80;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
825
///////////////////////////////////////////////////////////////////////////////
827
// DB_DSK_CULL_GROUP Record - Field Ids
829
///////////////////////////////////////////////////////////////////////////////
832
// All Group Fields +
834
const unsigned char GEO_DB_CULL_GRP_RADIUS = 80; // CullGroup Additions
840
///////////////////////////////////////////////////////////////////////////////
842
// DB_DSK_Z_OFFSET_GROUP Record - Field Ids
844
///////////////////////////////////////////////////////////////////////////////
847
// All Group Fields +
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;
857
///////////////////////////////////////////////////////////////////////////////
859
// DB_DSK_MULTI_SAMPLE_AA_GROUP Record - Field Ids
861
///////////////////////////////////////////////////////////////////////////////
864
// All Group Fields +
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;
874
///////////////////////////////////////////////////////////////////////////////
876
// DB_DSK_LINE_AA_GROUP Record - Field Ids
878
///////////////////////////////////////////////////////////////////////////////
882
// All Group Fields +
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;
893
///////////////////////////////////////////////////////////////////////////////
895
// DB_DSK_FADE_GROUP Record - Field Ids
897
///////////////////////////////////////////////////////////////////////////////
900
// All Group Fields +
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;
912
///////////////////////////////////////////////////////////////////////////////
914
// DB_DSK_TERRAIN Record - Field Ids
916
///////////////////////////////////////////////////////////////////////////////
919
// All Group Fields +
921
// No Terrain Additions
928
///////////////////////////////////////////////////////////////////////////////
930
// DB_DSK_DECAL_GROUP Record - Field Ids
932
///////////////////////////////////////////////////////////////////////////////
935
// All Group Fields +
937
// No Decal Group Additions
943
///////////////////////////////////////////////////////////////////////////////
945
// DB_DSK_BSP Record - Field Ids
947
///////////////////////////////////////////////////////////////////////////////
950
// All Group Fields +
952
const unsigned char GEO_DB_BSP_PLANE_EQUATION = 80; // BSP Additions
959
///////////////////////////////////////////////////////////////////////////////
961
// GEO_DB_LOD Record - Field Ids
963
///////////////////////////////////////////////////////////////////////////////
966
// All Group Fields +
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;
979
///////////////////////////////////////////////////////////////////////////////
981
// GEO_DB_SEQUENCE Record - Field Ids
983
///////////////////////////////////////////////////////////////////////////////
986
// All Group Fields +
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;
999
///////////////////////////////////////////////////////////////////////////////
1001
// GEO_DB_INSTANCE Record - Field Ids
1003
///////////////////////////////////////////////////////////////////////////////
1005
// All Node Fields +
1006
// All Group Fields +
1008
const unsigned char GEO_DB_INSTANCE_DEF = 80; // instance Additions
1016
///////////////////////////////////////////////////////////////////////////////
1018
// GEO_DB_SWITCH Record - Field Ids
1020
///////////////////////////////////////////////////////////////////////////////
1022
// All Node Fields +
1023
// All Group Fields +
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;
1037
///////////////////////////////////////////////////////////////////////////////
1039
// GEO_DB_PAGE Record - Field Ids
1041
///////////////////////////////////////////////////////////////////////////////
1043
// All Node Fields +
1044
// All Group Fields +
1046
const unsigned char GEO_DB_PAGE_ACTIVE_CHILD = 80; // page Additions
1054
///////////////////////////////////////////////////////////////////////////////
1056
// GEO_DB_BASE_GROUP Record - Field Ids
1058
///////////////////////////////////////////////////////////////////////////////
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
1064
// All Node Fields +
1065
// All Group Fields +
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;
1071
const unsigned char GEO_DB_BASE_GROUP_START_EXTERNAL = 140; // User Derived Node Additions
1080
///////////////////////////////////////////////////////////////////////////////
1081
// GEO_DB_BASE_SURFACE Record - Field Ids
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
1088
// NOT IMPLEMENTED IN GEO 1.0
1090
///////////////////////////////////////////////////////////////////////////////
1093
// All Node Fields +
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;
1099
const unsigned char GEO_DB_BASE_SURFACE_START_EXTERNAL = 80; // User Derived Node Additions
1106
///////////////////////////////////////////////////////////////////////////////
1108
// GEO_DB_RENDERGROUP Record - Field Ids
1110
///////////////////////////////////////////////////////////////////////////////
1112
// All Node Fields +
1113
// All Group Fields +
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;
1133
///////////////////////////////////////////////////////////////////////////////
1135
// GEO_DB_MULTI_TEX_SHADER Record - Field Ids
1137
///////////////////////////////////////////////////////////////////////////////
1139
// All Node Fields +
1140
// All Group Fields +
1141
// All RenderGroup Fields +
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;
1174
///////////////////////////////////////////////////////////////////////////////
1176
// GEO_DB_POLYGON Record - Field Ids
1178
///////////////////////////////////////////////////////////////////////////////
1180
// All Node Fields +
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;
1231
///////////////////////////////////////////////////////////////////
1233
// DB_DSK_PLANE_TEXTURE_MAPPING_INFO Record Field Ids
1235
///////////////////////////////////////////////////////////////////
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;
1248
///////////////////////////////////////////////////////////////////////////////
1250
// GEO_DB_LIGHTPT Record - Field Ids
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
1256
///////////////////////////////////////////////////////////////////////////////
1258
// All Node Fields +
1259
// All Poly Fields +
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;
1284
///////////////////////////////////////////////////////////////////////////////
1286
// GEO_DB_TEXT Record - Field Ids
1288
///////////////////////////////////////////////////////////////////////////////
1290
// All Node Fields +
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;
1310
///////////////////////////////////////////////////////////////////////////////
1312
// GEO_DB_MESH Record - Field Ids
1314
///////////////////////////////////////////////////////////////////////////////
1316
// All Node Fields +
1317
// All Poly Fields +
1319
const unsigned char GEO_DB_MESH_TYPE = 80; // Mesh Additions
1336
///////////////////////////////////////////////////////////////////////////////
1338
// GEO_DB_VERTEX Record - Field Ids
1340
///////////////////////////////////////////////////////////////////////////////
1342
// All Node Fields +
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;
1363
///////////////////////////////////////////////////////////////////////////////
1365
// GEO_DB_FAT_VERTEX Record - Field Ids
1367
///////////////////////////////////////////////////////////////////////////////
1370
// All Node Fields +
1371
// All VERTEX Fields +
1378
///////////////////////////////////////////////////////////////////////////////
1380
// GEO_DB_SLIM_VERTEX Record - Field Ids
1382
///////////////////////////////////////////////////////////////////////////////
1385
// All Node Fields +
1386
// All VERTEX Fields +
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
1401
///////////////////////////////////////////////////////////////////////////////
1403
// GEO_DB_EXTERNAL Record - Field Ids
1405
///////////////////////////////////////////////////////////////////////////////
1407
// All Node Fields +
1408
// All Group Fields +
1410
const unsigned char GEO_DB_EXTERNAL_FILENAME = 80; // External Additions
1417
///////////////////////////////////////////////////////////////////////////////
1419
// GEO BEHAVIOR & ARTICULATION SYSTEM RECORDS
1421
///////////////////////////////////////////////////////////////////////////////
1425
///////////////////////////////////////////////////////////////////
1426
// DB_DSK_INTERNAL_VARS Record Field Ids
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;
1452
///////////////////////////////////////////////////////////////////
1453
// DB_DSK_FLOAT_VAR Record Field Ids
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;
1466
///////////////////////////////////////////////////////////////////
1467
// DB_DSK_FLOAT3_VAR Record Field Ids
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;
1479
///////////////////////////////////////////////////////////////////
1480
// DB_DSK_INT_VAR Record Field Ids
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;
1493
///////////////////////////////////////////////////////////////////
1494
// DB_DSK_STRING_VAR Record Field Ids
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;
1502
///////////////////////////////////////////////////////////////////
1503
// DB_DSK_BOOL_VAR Record Field Ids
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;
1511
///////////////////////////////////////////////////////////////////
1512
// DB_DSK_LONG_VAR Record Field Ids
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;
1524
///////////////////////////////////////////////////////////////////
1525
// DB_DSK_DOUBLE_VAR Record Field Ids
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;
1539
///////////////////////////////////////////////////////////////////
1540
// DB_DSK_STATE_MACHINE Record Field Ids
1542
const unsigned char GEO_DB_STATE_MACHINE_NAME = 1;
1547
///////////////////////////////////////////////////////////////////
1548
// DB_DSK_STATE Record Field Ids (states of the State machine)
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;
1557
///////////////////////////////////////////////////////////////////
1558
// DB_DSK_TRANSITION Record Field Ids (transitions of the State machine)
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;
1570
///////////////////////////////////////////////////////////////////
1571
// DB_DSK_STATE_MACHINE_ACTION Record Field Ids
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)
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
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;
1612
///////////////////////////////////////////////////////////////////
1613
// DB_DSK_STATE_RULE_ACTION Record Field Ids
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
1621
///////////////////////////////////////////////////////////////////
1622
// DB_DSK_TRANSITION_RULE_ACTION Record Field Ids
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;
1631
///////////////////////////////////////////////////////////////////
1632
// GEO_DSK_BEHAVIOR Record Field Ids
1634
const unsigned char GEO_DB_BEHAVIOR_NAME = 1;
1638
///////////////////////////////////////////////////////////////////
1639
// DB_DSK_ROTATE_ACTION Record Field Ids
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;
1650
///////////////////////////////////////////////////////////////////
1651
// DB_DSK_CLAMP_ACTION Record Field Ids
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;
1660
///////////////////////////////////////////////////////////////////
1661
// DB_DSK_RANGE_ACTION Record Field Ids
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;
1672
///////////////////////////////////////////////////////////////////
1673
// DB_DSK_ARITHMETIC_ACTION Record Field Ids
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;
1683
///////////////////////////////////////////////////////////////////
1684
// DB_DSK_EQUATION_ACTION Record Field Ids
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;
1695
///////////////////////////////////////////////////////////////////
1696
// DB_DSK_PERIODIC_ACTION Record Field Ids
1698
const unsigned char GEO_DB_PERIODIC_ACTION_TYPE = 7;
1702
///////////////////////////////////////////////////////////////////
1703
// DB_DSK_TRIG_ACTION Record Field Ids
1705
const unsigned char GEO_DB_TRIG_ACTION_OP = 7;
1710
///////////////////////////////////////////////////////////////////
1711
// DB_DSK_CONTINUOUS_ACTION Record Field Ids
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;
1726
///////////////////////////////////////////////////////////////////
1727
// DB_DSK_MOMENTARY_ACTION Record Field Ids
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;
1735
///////////////////////////////////////////////////////////////////
1736
// DB_DSK_NSTATE_ACTION Record Field Ids
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;
1747
///////////////////////////////////////////////////////////////////
1748
// DB_DSK_ROTARY_DRAG_ACTION Record Field Ids
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;
1756
///////////////////////////////////////////////////////////////////
1757
// DB_DSK_TASK_ACTION Record Field Ids
1759
const unsigned char GEO_DB_TASK_ACTION_INPUT_VAR = 1;
1760
const unsigned char GEO_DB_TASK_ACTION_OUTPUT_VAR = 2;
1763
///////////////////////////////////////////////////////////////////
1764
// DB_DSK_VISIBILITY_ACTION Record Field Ids
1766
const unsigned char GEO_DB_VISIBILITY_ACTION_INPUT_VAR = 1;
1767
const unsigned char GEO_DB_VISIBILITY_ACTION_OUTPUT_VAR = 2; // Not used
1771
///////////////////////////////////////////////////////////////////
1772
// DB_DSK_COLOR_RAMP_ACTION Record Field Ids
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;
1786
///////////////////////////////////////////////////////////////////
1787
// DB_DSK_COMPARE_ACTION Record Field Ids
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;
1796
///////////////////////////////////////////////////////////////////
1797
// DB_DSK_TRANSLATE_ACTION Record Field Ids
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;
1809
///////////////////////////////////////////////////////////////////
1810
// DB_DSK_SCALE_ACTION Record Field Ids
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;
1823
///////////////////////////////////////////////////////////////////
1824
// DB_DSK_STRING_CONTENT_ACTION Record Field Ids
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;
1833
///////////////////////////////////////////////////////////////////
1834
// DB_DSK_STRING_COPY_ACTION Record Field Ids
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
1840
///////////////////////////////////////////////////////////////////
1841
// DB_DSK_CONDITIONAL_ACTION Record Field Ids
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...
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
1855
// DB_DSK_ELSE_CONDITION // all following are for Else list
1858
// DB_DSK_POP_ACTION
1860
const unsigned char GEO_DB_CONDITIONAL_ACTION_INPUT_VAR = 1;
1861
const unsigned char GEO_DB_CONDITIONAL_ACTION_OUTPUT_VAR= 2; // not used
1864
///////////////////////////////////////////////////////////////////
1865
// DB_DSK_DCS_ACTION Record Field Ids
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;
1889
///////////////////////////////////////////////////////////////////
1890
// DB_DSK_DISCRETE_ACTION Record Field Ids
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;
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.
1910
struct GEO_DB_API geoExtensionDefRec
1913
/** The Node type for which this extension exists */
1914
unsigned int nodetype; // 4 bytes
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.
1919
unsigned char datatype; // 1 byte
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
1926
unsigned char subdatatype; // 1 bytes
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.
1932
unsigned short uid; // 2 bytes
1934
/** The name of the extension.
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.
1949
char name[24]; // 24 bytes
1950
//-----------------------------
1951
}; // total: 32 bytes
1956
#endif // __GEO_FORMAT_H__