Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/physics_new/src/ogreode/OgreOdePreReqs.h @ 2119

Last change on this file since 2119 was 2119, checked in by rgrieder, 15 years ago

Merged physics branch into physics_new branch.

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.