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