Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

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

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

Added OgreODE to our source repository because already we really need the newest version. And there is no hope to find any packages under linux.
The files included should compile and link with Ogre 1.4/1.6 and ODE 0.9/0.10. I was only able to test Ogre 1.4 and ODE 0.9/.10 under msvc until now.

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