TAPs 0.7.7.3
TAPsEnumList.hpp
Go to the documentation of this file.
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----+----
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines