1 /* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2006 Robert Osfield
2  *
3  * This library is open source and may be redistributed and/or modified under
4  * the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
5  * (at your option) any later version.  The full license is in LICENSE file
6  * included with this distribution, and on the openscenegraph.org website.
7  *
8  * This library is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11  * OpenSceneGraph Public License for more details.
12 */
13 
14 //
15 // OpenFlight� loader for OpenSceneGraph
16 //
17 //  Copyright (C) 2005-2007  Brede Johansen
18 //
19 
20 #ifndef FLT_OPCODES_H
21 #define FLT_OPCODES_H
22 
23 namespace flt {
24 
25 
26 // Note that INVALID_OP = -1 is not an actual opcode defined in the OpenFlight format.
27 // The purpose of INVALID_OP is to mark an opcode variable as invalid or uninitialized.
28 enum Opcodes
29 {
30     INVALID_OP                          = -1,
31     UNKNOWN_OP                          = 0,
32     HEADER_OP                           = 1,
33     GROUP_OP                            = 2,
34     OLD_LOD_OP                          = 3,
35     OBJECT_OP                           = 4,
36     FACE_OP                             = 5,
37     OLD_ABSOLUTE_VERTEX_OP              = 7,
38     OLD_SHADED_VERTEX_OP                = 8,
39     OLD_NORMAL_VERTEX_OP                = 9,
40     PUSH_LEVEL_OP                       = 10,
41     POP_LEVEL_OP                        = 11,
42     DOF_OP                              = 14,
43     PUSH_SUBFACE_OP                     = 19,
44     POP_SUBFACE_OP                      = 20,
45     PUSH_EXTENSION_OP                   = 21,
46     POP_EXTENSION_OP                    = 22,
47     CONTINUATION_OP                     = 23,
48     COMMENT_OP                          = 31,
49     COLOR_PALETTE_OP                    = 32,
50     LONG_ID_OP                          = 33,
51     OLD_TRANSLATE_OP                    = 40,
52     OLD_ROTATE_ABOUT_POINT_OP           = 41,
53     OLD_ROTATE_ABOUT_EDGE_OP            = 42,
54     OLD_SCALE_OP                        = 43,
55     OLD_TRANSLATE2_OP                   = 44,
56     OLD_NONUNIFORM_SCALE_OP             = 45,
57     OLD_ROTATE_ABOUT_POINT2_OP          = 46,
58     OLD_ROTATE_SCALE_TO_POINT_OP        = 47,
59     OLD_PUT_TRANSFORM_OP                = 48,
60     MATRIX_OP                           = 49,
61     VECTOR_OP                           = 50,
62     OLD_BOUNDING_BOX_OP                 = 51,
63     MULTITEXTURE_OP                     = 52,
64     UV_LIST_OP                          = 53,
65     BINARY_SEPARATING_PLANE_OP          = 55,
66     REPLICATE_OP                        = 60,
67     INSTANCE_REFERENCE_OP               = 61,
68     INSTANCE_DEFINITION_OP              = 62,
69     EXTERNAL_REFERENCE_OP               = 63,
70     TEXTURE_PALETTE_OP                  = 64,
71     OLD_EYEPOINT_PALETTE_OP             = 65,
72     OLD_MATERIAL_PALETTE_OP             = 66,
73     VERTEX_PALETTE_OP                   = 67,
74     VERTEX_C_OP                         = 68,
75     VERTEX_CN_OP                        = 69,
76     VERTEX_CNT_OP                       = 70,
77     VERTEX_CT_OP                        = 71,
78     VERTEX_LIST_OP                      = 72,
79     LOD_OP                              = 73,
80     BOUNDING_BOX_OP                     = 74,
81     ROTATE_ABOUT_EDGE_OP                = 76,
82     SCALE_OP                            = 77,
83     TRANSLATE_OP                        = 78,
84     NONUNIFORM_SCALE_OP                 = 79,
85     ROTATE_ABOUT_POINT_OP               = 80,
86     ROTATE_SCALE_TO_POINT_OP            = 81,
87     PUT_TRANSFORM_OP                    = 82,
88     EYEPOINT_AND_TRACKPLANE_PALETTE_OP  = 83,
89     MESH_OP                             = 84,
90     LOCAL_VERTEX_POOL_OP                = 85,
91     MESH_PRIMITIVE_OP                   = 86,
92     ROAD_SEGMENT_OP                     = 87,
93     ROAD_ZONE_OP                        = 88,
94     MORPH_VERTEX_LIST_OP                = 89,
95     LINKAGE_PALETTE_OP                  = 90,
96     SOUND_OP                            = 91,
97     ROAD_PATH_OP                        = 92,
98     SOUND_PALETTE_OP                    = 93,
99     GENERAL_MATRIX_OP                   = 94,
100     TEXT_OP                             = 95,
101     SWITCH_OP                           = 96,
102     LINE_STYLE_PALETTE_OP               = 97,
103     CLIP_REGION_OP                      = 98,
104     EXTENSION_OP                        = 100,
105     LIGHT_SOURCE_OP                     = 101,
106     LIGHT_SOURCE_PALETTE_OP             = 102,
107     BOUNDING_SPHERE_OP                  = 105,
108     BOUNDING_CYLINDER_OP                = 106,
109     BOUNDING_CONVEX_HULL_OP             = 107,
110     BOUNDING_VOLUME_CENTER_OP           = 108,
111     BOUNDING_VOLUME_ORIENTATION_OP      = 109,
112     HISTOGRAM_BOUNDING_VOLUME_OP        = 110,
113     LIGHT_POINT_OP                      = 111,
114     TEXTURE_MAPPING_PALETTE_OP          = 112,
115     MATERIAL_PALETTE_OP                 = 113,
116     NAME_TABLE_OP                       = 114,
117     CAT_OP                              = 115,
118     CAT_DATA_OP                         = 116,
119     BOUNDING_HISTOGRAM                  = 119,
120     PUSH_ATTRIBUTE_OP                   = 122,
121     POP_ATTRIBUTE_OP                    = 123,
122     ADAPTIVE_ATTRIBUTE_OP               = 125,
123     CURVE_NODE_OP                       = 126,
124     ROAD_CONSTRUCTION_OP                = 127,
125     LIGHT_POINT_APPEARANCE_PALETTE_OP   = 128,
126     LIGHT_POINT_ANIMATION_PALETTE_OP    = 129,
127     INDEXED_LIGHT_POINT_OP              = 130,
128     LIGHT_POINT_SYSTEM_OP               = 131,
129     INDEXED_STRING_OP                   = 132,
130     SHADER_PALETTE_OP                   = 133
131 };
132 
133 
134 } // end namespace
135 
136 #endif
137 
138 
139 
140 
141