[1919] | 1 | #ifndef _OGREODEPREREQS_H_ |
---|
| 2 | #define _OGREODEPREREQS_H_ |
---|
| 3 | |
---|
[1923] | 4 | // we have to include the entire ode.h because the config file can either be |
---|
| 5 | // config.h or odeconfig.h and it takes these files to determine the version |
---|
| 6 | // in the first place. |
---|
[1919] | 7 | #include "ode/ode.h" |
---|
[1923] | 8 | #include <OgrePrerequisites.h> |
---|
[1919] | 9 | |
---|
[1923] | 10 | #if OGRE_PLATFORM == OGRE_PLATFORM_WIN32 |
---|
| 11 | # if defined( OGREODE_EXPORTS ) |
---|
| 12 | # define _OgreOdeExport __declspec( dllexport ) |
---|
| 13 | # else |
---|
| 14 | # if defined( __MINGW32__ ) |
---|
| 15 | # define _OgreOdeExport |
---|
| 16 | # else |
---|
| 17 | # define _OgreOdeExport __declspec(dllimport) |
---|
| 18 | # endif |
---|
| 19 | # endif |
---|
| 20 | #elif defined ( OGRE_GCC_VISIBILITY ) |
---|
| 21 | # define _OgreOdeExport __attribute__ ((visibility("default"))) |
---|
| 22 | #else |
---|
| 23 | # define _OgreOdeExport |
---|
| 24 | #endif |
---|
[1919] | 25 | |
---|
| 26 | // determine ODE version. In 0.10 and following, ODE uses odeconfig.h in the headers and |
---|
| 27 | // out-"sourced" config.h to hide it from the include folder. So there is a new macro for the |
---|
| 28 | // header: ODECONFIG_H instead of _ODE_CONFIG_H_ |
---|
| 29 | #ifdef ODECONFIG_H |
---|
| 30 | # define ODE_VERSION_MINOR 10 // or larger |
---|
| 31 | #else |
---|
| 32 | # define ODE_VERSION_MINOR 9 // or smaller |
---|
| 33 | #endif |
---|
| 34 | |
---|
| 35 | |
---|
[1923] | 36 | namespace OgreOde |
---|
| 37 | { |
---|
[1919] | 38 | #if ODE_VERSION_MINOR < 10 |
---|
| 39 | # ifndef dTriIndex |
---|
| 40 | # if dTRIMESH_16BIT_INDICES |
---|
| 41 | # if dTRIMESH_GIMPACT |
---|
[1923] | 42 | |
---|
| 43 | typedef uint32 dTriIndex; |
---|
| 44 | |
---|
[1919] | 45 | # else // dTRIMESH_GIMPACT |
---|
[1923] | 46 | |
---|
| 47 | typedef uint16 dTriIndex; |
---|
| 48 | |
---|
[1919] | 49 | # endif // dTRIMESH_GIMPACT |
---|
| 50 | # else // dTRIMESH_16BIT_INDICES |
---|
[1923] | 51 | |
---|
| 52 | typedef int dTriIndex; |
---|
| 53 | |
---|
[1919] | 54 | # endif // dTRIMESH_16BIT_INDICES |
---|
| 55 | # endif |
---|
| 56 | #endif |
---|
| 57 | |
---|
| 58 | typedef dTriIndex TriangleIndex; |
---|
| 59 | |
---|
| 60 | |
---|
| 61 | class World; |
---|
| 62 | class Space; |
---|
| 63 | |
---|
| 64 | class Body; |
---|
| 65 | class Mass; |
---|
| 66 | |
---|
| 67 | class JointGroup; |
---|
| 68 | class Joint; |
---|
| 69 | |
---|
| 70 | class Geometry; |
---|
| 71 | typedef std::list<Geometry*> GeometryList; |
---|
| 72 | typedef std::vector<Geometry*> GeometryArray; |
---|
| 73 | |
---|
| 74 | class RayGeometry; |
---|
| 75 | class CylinderGeometry; |
---|
| 76 | class SphereGeometry; |
---|
| 77 | class InfinitePlaneGeometry; |
---|
| 78 | class TransformGeometry; |
---|
| 79 | |
---|
| 80 | class TriangleMeshData; |
---|
| 81 | class TriangleMeshDataPtr; |
---|
| 82 | class TriangleMeshGeometry; |
---|
| 83 | class BoxGeometry; |
---|
| 84 | class CapsuleGeometry; |
---|
| 85 | |
---|
| 86 | |
---|
| 87 | class Contact; |
---|
| 88 | |
---|
| 89 | class StepListener; |
---|
| 90 | |
---|
| 91 | class StepHandler; |
---|
| 92 | class BasicStepper; |
---|
| 93 | class QuickStepper; |
---|
| 94 | class FastStepper; |
---|
| 95 | |
---|
| 96 | class StepMode; |
---|
| 97 | class BasicStepMode; |
---|
| 98 | class QuickStepMode; |
---|
| 99 | class FastStepMode; |
---|
| 100 | |
---|
| 101 | |
---|
| 102 | |
---|
| 103 | class CollisionListener; |
---|
| 104 | class CollisionCallback; |
---|
| 105 | class MaintainedItem; |
---|
| 106 | |
---|
| 107 | |
---|
| 108 | class EntityInformer; |
---|
| 109 | typedef std::vector<Ogre::Vector3> Vector3Array; |
---|
| 110 | typedef std::map<unsigned char,Vector3Array* > BoneMapping; |
---|
| 111 | typedef std::pair<unsigned short,Vector3Array* > BoneMappingKey; |
---|
| 112 | |
---|
| 113 | typedef size_t MaterialID; |
---|
| 114 | typedef std::map<MaterialID,Contact*> MaterialMap; |
---|
| 115 | typedef std::pair<MaterialID,MaterialMap* > MaterialMapPair; |
---|
| 116 | |
---|
| 117 | class DebugObject; |
---|
| 118 | class DebugContact; |
---|
| 119 | class DebugContactText; |
---|
| 120 | class DebugNormal; |
---|
| 121 | } |
---|
| 122 | |
---|
| 123 | |
---|
| 124 | #endif |
---|
| 125 | |
---|