Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/physics/src/ogreode/OgreOdePreReqs.h @ 1933

Last change on this file since 1933 was 1923, checked in by rgrieder, 16 years ago

Cleaned up the heavy mess with header file includes in OgreOde. It should now compile a lot faster.

File size: 2.8 KB
Line 
1#ifndef _OGREODEPREREQS_H_
2#define _OGREODEPREREQS_H_
3
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.
7#include "ode/ode.h"
8#include <OgrePrerequisites.h>
9
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
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
36namespace OgreOde
37{
38#if ODE_VERSION_MINOR < 10
39#  ifndef dTriIndex
40#    if dTRIMESH_16BIT_INDICES
41#      if dTRIMESH_GIMPACT
42
43    typedef uint32 dTriIndex;
44
45#      else // dTRIMESH_GIMPACT
46
47    typedef uint16 dTriIndex;
48
49#      endif // dTRIMESH_GIMPACT
50#    else // dTRIMESH_16BIT_INDICES
51
52    typedef int dTriIndex;
53
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
Note: See TracBrowser for help on using the repository browser.