![]() |
TAPs 0.7.7.3
|
00001 /****************************************************************************** 00002 TAPsEnumList.hpp 00003 00004 Enumeration List 00005 00006 SUKITTI PUNAK (01/12/2006) 00007 UPDATE (09/23/2010) 00008 ******************************************************************************/ 00009 #ifndef TAPs_ENUM_LIST_HPP 00010 #define TAPs_ENUM_LIST_HPP 00011 00012 #include "../Core/TAPsDef.hpp" 00013 00014 BEGIN_NAMESPACE_TAPs__Enum 00015 //============================================================================= 00016 // TYPE OF FILE OPEN 00017 // Used by Read Model 00018 enum ModelType { 00019 00020 // Geometry Type 00021 MODEL_TYPE_POLYGONAL = 1, 00022 MODEL_TYPE_XPOLYGONAL, 00023 MODEL_TYPE_HALFEDGE, 00024 00025 // Simulation Type 00026 MODEL_FIXED, 00027 MODEL_RIGID, 00028 MODEL_DEFORM_PLASTIC, 00029 MODEL_DEFORM_ELASTIC, 00030 MODEL_DEFORM, 00031 00032 // Inheritance Type 00033 MODEL_BASED_ON_MSS, 00034 MODEL_BASED_ON_ER, 00035 MODEL_BASED_ON_FEM, 00036 MODEL_BASED_ON_IPG_RBD, // rigid body dynamics model based on interaction point group 00037 00038 MODEL_TYPE_UNDEFINED 00039 }; 00040 //============================================================================= 00041 // TYPE OF FILE OPEN 00042 // Used by TAPsTextFile class 00043 enum OpenFile { 00044 READ = 95, // read only 00045 WRITE, // write only 00046 READ_AND_WRITE // read and write 00047 }; 00048 //============================================================================= 00049 // TYPE OF COLLISION DETECTION 00050 //enum Type { 00051 // UNDEFINED = -1 // undefined 00052 //}; 00053 //============================================================================= 00054 // TYPE OF COLLISION DETECTION 00055 //enum CDType { 00056 enum CD { 00057 UNDEFINED_TYPE = -1, // undefined type 00058 UNDEFINED_OBJECT = -1, // undefined object 00059 UNDEFINED_TREE = -1, // undefined tree type 00060 UNDEFINED_NODE = -1, // undefined node type 00061 //=============================================================== 00062 // Bounding Volume Hierarchy Tree Type 00063 //--------------------------------------------------------------- 00064 // From 91 to 100 00065 BOUNDING_SPHERE = 91, // Bounding Sphere 00066 BOUNDING_CYLINDER, // Bounding Cylinder 00067 BOUNDING_BOX, // Bounding Box 00068 BOUNDING_ELLIPSOID, // Bounding Ellipsoid 00069 BOUNDING_HALF_SPHERE, // Bounding Half Sphere 00070 BOUNDING_HALF_ELLIPSOID, // Bounding Half Ellipsoid 00071 BOUNDING_CONE, // Bounding Cone 00072 BOUNDING_CAPSULE, // Bounding Capsule 00073 BOUNDING_POLYTOPE = 100, // Bounding Polytope 00074 //=============================================================== 00075 // Bounding Volume Hierarchy Tree Type 00076 //--------------------------------------------------------------- 00077 // From 101 to 400 00078 BVH_TREE_BINARY_SPHERE = 102, // Binary Sphere BVH Tree 00079 BVH_TREE_QUAD_SPHERE = 104, // Quad Sphere BVH Tree 00080 BVH_TREE_OCTANT_SPHERE = 108, // Octant Sphere BVH Tree 00081 BVH_TREE_GENERIC_SPHERE = 199, // Generic Sphere BVH Tree 00082 00083 BVH_TREE_BINARY_AABB = 202, // Binary AABB BVH Tree 00084 BVH_TREE_QUAD_AABB = 204, // Quad AABB BVH Tree 00085 BVH_TREE_OCTANT_AABB = 208, // Octant AABB BVH Tree 00086 BVH_TREE_GENERIC_AABB = 299, // Generic AABB BVH Tree 00087 00088 BVH_TREE_BINARY_OBB = 302, // Binary OBB BVH Tree 00089 BVH_TREE_QUAD_OBB = 304, // Quad OBB BVH Tree 00090 BVH_TREE_OCTANT_OBB = 308, // Octant OBB BVH Tree 00091 BVH_TREE_GENERIC_OBB = 399, // Generic OBB BVH Tree 00092 //--------------------------------------------------------------- 00093 // Generic BVH Tree 00094 BVH_TREE_GENERIC = 400, // Generic BVH Tree 00095 //=============================================================== 00096 // Bounding Volume Hierarchy Node Type (Not a Leaf Node) 00097 //--------------------------------------------------------------- 00098 // From 401 to 500 00099 //----------------------------------------------------- 00100 // Sphere Node 00101 BVH_NODE_BINARY_SPHERE = 402, // Binary Sphere BVH Node 00102 BVH_NODE_QUAD_SPHERE = 404, // Quad Sphere BVH Node 00103 BVH_NODE_OCTANT_SPHERE = 408, // Octant Sphere BVH Node 00104 BVH_NODE_GENERIC_SPHERE = 409, // Generic Sphere BVH Node 00105 //----------------------------------------------------- 00106 // AABB Node 00107 BVH_NODE_BINARY_AABB = 412, // Binary AABB BVH Node 00108 BVH_NODE_QUAD_AABB = 414, // Quad AABB BVH Node 00109 BVH_NODE_OCTANT_AABB = 418, // Octant AABB BVH Node 00110 BVH_NODE_GENERIC_AABB = 419, // Generic AABB BVH Node 00111 //----------------------------------------------------- 00112 // OBB Node 00113 BVH_NODE_BINARY_OBB = 422, // Binary OBB BVH Node 00114 BVH_NODE_QUAD_OBB = 424, // Quad OBB BVH Node 00115 BVH_NODE_OCTANT_OBB = 428, // Octant OBB BVH Node 00116 BVH_NODE_GENERIC_OBB = 429, // Generic OBB BVH Node 00117 //=============================================================== 00118 // Bounding Volume Hierarchy Leaf Node Type 00119 //--------------------------------------------------------------- 00120 // From 451 to 500 00121 //----------------------------------------------------- 00122 // Sphere Node 00123 //------------------------------------------- 00124 // Sphere BVH Leaf Node contains nothing 00125 BVH_NODE_LEAF_SPHERE = 451, 00126 //------------------------------------------- 00127 // Sphere BVH Leaf Node contains one primitive of half-edge model 00128 BVH_NODE_LEAF_SPHERE_HALFEDGE_APRIM, 00129 // Sphere BVH Leaf Node contains one primitive or more of half-edge model 00130 BVH_NODE_LEAF_SPHERE_HALFEDGE_PRIMS, 00131 //--------------------------------- 00132 // Sphere BVH Leaf Node contains one primitive of xpolygonal model 00133 BVH_NODE_LEAF_SPHERE_XPOLYGON_APRIM, 00134 // Sphere BVH Leaf Node contains one primitive or more of xpolygonal model 00135 BVH_NODE_LEAF_SPHERE_XPOLYGON_PRIMS, 00136 //--------------------------------- 00137 // Sphere BVH Leaf Node contains one primitive of polygonal model 00138 BVH_NODE_LEAF_SPHERE_POLYGON_APRIM, 00139 // Sphere BVH Leaf Node contains one primitive or more of polygonal model 00140 BVH_NODE_LEAF_SPHERE_POLYGON_PRIMS, 00141 //--------------------------------- 00142 // Sphere BVH Leaf Node contains two primitives, i.e. nodes, of elastic rod 00143 BVH_NODE_LEAF_SPHERE_TWO_ELASTIC_ROD_NODES, 00144 //--------------------------------- 00145 // Sphere BVH Leaf Node contains two point masses (PointMass<T>) 00146 BVH_NODE_LEAF_SPHERE_TWO_POINT_MASSES, 00147 //--------------------------------- 00148 // Sphere BVH Leaf Node contains unspecified primitives 00149 BVH_NODE_LEAF_SPHERE_UNSPECIFIED_PRIMS, 00150 //----------------------------------------------------- 00151 // AABB Node 00152 //------------------------------------------- 00153 // AABB BVH Leaf Node contains nothing 00154 BVH_NODE_LEAF_AABB, 00155 //------------------------------------------- 00156 // AABB BVH Leaf Node contains one primitive of half-edge model 00157 BVH_NODE_LEAF_AABB_HALFEDGE_APRIM, 00158 // AABB BVH Leaf Node contains one primitive or more of half-edge model 00159 BVH_NODE_LEAF_AABB_HALFEDGE_PRIMS, 00160 //--------------------------------- 00161 // AABB BVH Leaf Node contains one primitive of xpolygonal model 00162 BVH_NODE_LEAF_AABB_XPOLYGON_APRIM, 00163 // AABB BVH Leaf Node contains one primitive or more of xpolygonal model 00164 BVH_NODE_LEAF_AABB_XPOLYGON_PRIMS, 00165 //--------------------------------- 00166 // AABB BVH Leaf Node contains one primitive of polygonal model 00167 BVH_NODE_LEAF_AABB_POLYGON_APRIM, 00168 // AABB BVH Leaf Node contains one primitive or more of polygonal model 00169 BVH_NODE_LEAF_AABB_POLYGON_PRIMS, 00170 //--------------------------------- 00171 // Sphere BVH Leaf Node contains two primitives, i.e. nodes, of elastic rod 00172 BVH_NODE_LEAF_AABB_TWO_ELASTIC_ROD_NODES, 00173 //--------------------------------- 00174 // Sphere BVH Leaf Node contains two point masses (PointMass<T>) 00175 BVH_NODE_LEAF_AABB_TWO_POINT_MASSES, 00176 //--------------------------------- 00177 // AABB BVH Leaf Node contains unspecified primitives 00178 BVH_NODE_LEAF_AABB_UNSPECIFIED_PRIMS, 00179 //----------------------------------------------------- 00180 // OBB Node 00181 //------------------------------------------- 00182 // OBB BVH Leaf Node contains nothing 00183 BVH_NODE_LEAF_OBB, 00184 //------------------------------------------- 00185 // OBB BVH Leaf Node contains one primitive of half-edge model 00186 BVH_NODE_LEAF_OBB_HALFEDGE_APRIM, 00187 // OBB BVH Leaf Node contains one primitive or more of half-edge model 00188 BVH_NODE_LEAF_OBB_HALFEDGE_PRIMS, 00189 //--------------------------------- 00190 // OBB BVH Leaf Node contains one primitive of xpolygonal model 00191 BVH_NODE_LEAF_OBB_XPOLYGON_APRIM, 00192 // OBB BVH Leaf Node contains one primitive or more of xpolygonal model 00193 BVH_NODE_LEAF_OBB_XPOLYGON_PRIMS, 00194 //--------------------------------- 00195 // OBB BVH Leaf Node contains one primitive of polygonal model 00196 BVH_NODE_LEAF_OBB_POLYGON_APRIM, 00197 // OBB BVH Leaf Node contains one primitive or more of polygonal model 00198 BVH_NODE_LEAF_OBB_POLYGON_PRIMS, 00199 //--------------------------------- 00200 // Sphere BVH Leaf Node contains two primitives, i.e. nodes, of elastic rod 00201 BVH_NODE_LEAF_OBB_TWO_ELASTIC_ROD_NODES, 00202 //--------------------------------- 00203 // Sphere BVH Leaf Node contains two point masses (PointMass<T>) 00204 BVH_NODE_LEAF_OBB_TWO_POINT_MASSES, 00205 //--------------------------------- 00206 // OBB BVH Leaf Node contains unspecified primitives 00207 BVH_NODE_LEAF_OBB_UNSPECIFIED_PRIMS, 00208 //=============================================================== 00209 END_ENUM_CD // Dummy Enum 00210 //--------------------------------------------------------------- 00211 }; 00212 00213 //============================================================================= 00214 // TYPE OF IMPLICIT OBJECTS 00215 // Used by TAPs/Model/TAPsListOfImplicitObjects.hpp 00216 enum Shape { 00217 BOX, 00218 CYLINDER, 00219 CONE, 00220 SPHERE, 00221 TORUS, 00222 UNDEFINED_SHAPE 00223 }; 00224 std::string StrEnumShape ( Shape shape ) 00225 { 00226 switch ( shape ) { 00227 case BOX: return std::string( "BOX" ); 00228 case CYLINDER: return std::string( "CYLINDER" ); 00229 case CONE: return std::string( "CONE" ); 00230 case SPHERE: return std::string( "SPHERE" ); 00231 case TORUS: return std::string( "TORUS" ); 00232 case UNDEFINED_SHAPE: return std::string( "UNDEFINED_SHAPE" ); 00233 default: return std::string( "unknown" ); 00234 } 00235 } 00236 00237 //============================================================================= 00238 // TYPE OF FILE OPEN 00239 // Used by TAPsTextFile class 00240 enum ODESolver { 00241 EULER, 00242 MIDPOINT, 00243 RUNGE_KUTTA_4 00244 }; 00245 00246 //============================================================================= 00247 namespace AddOn { 00248 //=============================================================== 00249 // SIMULATION CONSTRAINTS 00250 enum SimConstraints { 00251 CLEARED = 0, 00252 FIXED = 1, 00253 ATTACHED = 1 << 1, 00254 PUNCTURED = 1 << 2, 00255 SLIDABLE = 1 << 3, 00256 CLUSTERED = 1 << 4, 00257 COLLIDED = 1 << 5, 00258 IGNORE_CD_FORCE = 1 << 6, 00259 }; 00260 }; 00261 //============================================================================= 00262 00263 //============================================================================= 00264 namespace Render { 00265 //=============================================================== 00266 // TYPE OF TEXTURE MAPPING 00267 enum TextureMapping { 00268 BUMP = 1, 00269 COLOR_AMBIENT = 1 << 1, 00270 COLOR_DIFFUSE = 1 << 2, 00271 COLOR_SPECULAR = 1 << 3, 00272 DISPLACEMENT = 1 << 4, 00273 FILTER_COLOR = 1 << 5, 00274 GLOSSINESS = 1 << 6, 00275 OPACITY = 1 << 7, 00276 REFLECTION = 1 << 8, 00277 REFRACTION = 1 << 9, 00278 SELF_ILLUMINATION = 1 << 10, 00279 SPECULAR_LEVEL = 1 << 11, 00280 }; 00281 }; 00282 //============================================================================= 00283 00284 //============================================================================= 00285 END_NAMESPACE_TAPs__Enum 00286 //----------------------------------------------------------------------------- 00287 #endif 00288 //34567890123456789012345678901234567890123456789012345678901234567890123456789 00289 //--+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----