ruby-procedural 0.0.1-x86-linux

Sign up to get free protection for your applications and to get access to all the features.
Files changed (72) hide show
  1. data/Gemfile +4 -0
  2. data/README.md +29 -0
  3. data/Rakefile +65 -0
  4. data/bindings/procedural/interface/ProceduralBoxGenerator.i +12 -0
  5. data/bindings/procedural/interface/ProceduralCapsuleGenerator.i +12 -0
  6. data/bindings/procedural/interface/ProceduralConeGenerator.i +12 -0
  7. data/bindings/procedural/interface/ProceduralCylinderGenerator.i +12 -0
  8. data/bindings/procedural/interface/ProceduralExtruder.i +8 -0
  9. data/bindings/procedural/interface/ProceduralGeometryHelpers.i +15 -0
  10. data/bindings/procedural/interface/ProceduralHeader.i +8 -0
  11. data/bindings/procedural/interface/ProceduralIcoSphereGenerator.i +12 -0
  12. data/bindings/procedural/interface/ProceduralLathe.i +8 -0
  13. data/bindings/procedural/interface/ProceduralMeshGenerator.i +9 -0
  14. data/bindings/procedural/interface/ProceduralMultiShape.i +8 -0
  15. data/bindings/procedural/interface/ProceduralPath.i +8 -0
  16. data/bindings/procedural/interface/ProceduralPathGenerators.i +10 -0
  17. data/bindings/procedural/interface/ProceduralPlaneGenerator.i +12 -0
  18. data/bindings/procedural/interface/ProceduralPlatform.i +8 -0
  19. data/bindings/procedural/interface/ProceduralRoot.i +23 -0
  20. data/bindings/procedural/interface/ProceduralRoundedBoxGenerator.i +12 -0
  21. data/bindings/procedural/interface/ProceduralShape.i +8 -0
  22. data/bindings/procedural/interface/ProceduralShapeGenerators.i +10 -0
  23. data/bindings/procedural/interface/ProceduralSphereGenerator.i +11 -0
  24. data/bindings/procedural/interface/ProceduralSplines.i +8 -0
  25. data/bindings/procedural/interface/ProceduralStableHeaders.i +8 -0
  26. data/bindings/procedural/interface/ProceduralTorusGenerator.i +12 -0
  27. data/bindings/procedural/interface/ProceduralTorusKnotGenerator.i +12 -0
  28. data/bindings/procedural/interface/ProceduralTrack.i +8 -0
  29. data/bindings/procedural/interface/ProceduralTriangleBuffer.i +13 -0
  30. data/bindings/procedural/interface/ProceduralTriangulator.i +8 -0
  31. data/bindings/procedural/interface/ProceduralTubeGenerator.i +12 -0
  32. data/bindings/procedural/interface/ProceduralUtils.i +8 -0
  33. data/bindings/procedural/interface/Rakefile +22 -0
  34. data/bindings/procedural/interface/procedural.i +41 -0
  35. data/bindings/procedural/interface/procedural_wrap.cpp +36079 -0
  36. data/bindings/procedural/interface/procedural_wrap.h +19 -0
  37. data/bindings/procedural/interface/procedural_wrap.o +0 -0
  38. data/deps/include/OgreProcedural/Procedural.h +54 -0
  39. data/deps/include/OgreProcedural/ProceduralBoxGenerator.h +110 -0
  40. data/deps/include/OgreProcedural/ProceduralCapsuleGenerator.h +103 -0
  41. data/deps/include/OgreProcedural/ProceduralConeGenerator.h +90 -0
  42. data/deps/include/OgreProcedural/ProceduralCylinderGenerator.h +99 -0
  43. data/deps/include/OgreProcedural/ProceduralExtruder.h +131 -0
  44. data/deps/include/OgreProcedural/ProceduralGeometryHelpers.h +171 -0
  45. data/deps/include/OgreProcedural/ProceduralIcoSphereGenerator.h +76 -0
  46. data/deps/include/OgreProcedural/ProceduralLathe.h +129 -0
  47. data/deps/include/OgreProcedural/ProceduralMeshGenerator.h +286 -0
  48. data/deps/include/OgreProcedural/ProceduralMultiShape.h +126 -0
  49. data/deps/include/OgreProcedural/ProceduralPath.h +322 -0
  50. data/deps/include/OgreProcedural/ProceduralPathGenerators.h +281 -0
  51. data/deps/include/OgreProcedural/ProceduralPlaneGenerator.h +93 -0
  52. data/deps/include/OgreProcedural/ProceduralPlatform.h +54 -0
  53. data/deps/include/OgreProcedural/ProceduralRoot.h +65 -0
  54. data/deps/include/OgreProcedural/ProceduralRoundedBoxGenerator.h +118 -0
  55. data/deps/include/OgreProcedural/ProceduralShape.h +532 -0
  56. data/deps/include/OgreProcedural/ProceduralShapeGenerators.h +362 -0
  57. data/deps/include/OgreProcedural/ProceduralSphereGenerator.h +80 -0
  58. data/deps/include/OgreProcedural/ProceduralSplines.h +168 -0
  59. data/deps/include/OgreProcedural/ProceduralStableHeaders.h +28 -0
  60. data/deps/include/OgreProcedural/ProceduralTorusGenerator.h +88 -0
  61. data/deps/include/OgreProcedural/ProceduralTorusKnotGenerator.h +106 -0
  62. data/deps/include/OgreProcedural/ProceduralTrack.h +122 -0
  63. data/deps/include/OgreProcedural/ProceduralTriangleBuffer.h +328 -0
  64. data/deps/include/OgreProcedural/ProceduralTriangulator.h +173 -0
  65. data/deps/include/OgreProcedural/ProceduralTubeGenerator.h +96 -0
  66. data/deps/include/OgreProcedural/ProceduralUtils.h +185 -0
  67. data/deps/lib/libOgreProcedural.so +0 -0
  68. data/lib/procedural.so +0 -0
  69. data/lib/ruby-procedural/version.rb +5 -0
  70. data/lib/ruby-procedural.rb +27 -0
  71. data/ruby-procedural.gemspec +33 -0
  72. metadata +138 -0
@@ -0,0 +1,281 @@
1
+ /*
2
+ -----------------------------------------------------------------------------
3
+ This source file is part of ogre-procedural
4
+
5
+ For the latest info, see http://code.google.com/p/ogre-procedural/
6
+
7
+ Copyright (c) 2010 Michael Broutin
8
+
9
+ Permission is hereby granted, free of charge, to any person obtaining a copy
10
+ of this software and associated documentation files (the "Software"), to deal
11
+ in the Software without restriction, including without limitation the rights
12
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13
+ copies of the Software, and to permit persons to whom the Software is
14
+ furnished to do so, subject to the following conditions:
15
+
16
+ The above copyright notice and this permission notice shall be included in
17
+ all copies or substantial portions of the Software.
18
+
19
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25
+ THE SOFTWARE.
26
+ -----------------------------------------------------------------------------
27
+ */
28
+ #ifndef PROCEDURAL_PATH_GENERATORS_INCLUDED
29
+ #define PROCEDURAL_PATH_GENERATORS_INCLUDED
30
+
31
+ #include "ProceduralPath.h"
32
+ #include "ProceduralSplines.h"
33
+
34
+ namespace Procedural
35
+ {
36
+ //-----------------------------------------------------------------------
37
+ /// Base class for Path generators
38
+ template<class T>
39
+ class BaseSpline3
40
+ {
41
+ protected:
42
+ /// The number of segments between 2 control points
43
+ unsigned int mNumSeg;
44
+ /// Tells if the spline is closed or not
45
+ bool mClosed;
46
+ public:
47
+ BaseSpline3() : mNumSeg(4), mClosed(false) {}
48
+
49
+ /// Sets the number of segments between 2 control points
50
+ inline T& setNumSeg(int numSeg)
51
+ {
52
+ assert(numSeg>=1);
53
+ mNumSeg = numSeg;
54
+ return (T&)*this;
55
+ }
56
+
57
+ /// Closes the spline
58
+ inline T& close()
59
+ {
60
+ mClosed = true;
61
+ return (T&)*this;
62
+ }
63
+ };
64
+ //-----------------------------------------------------------------------
65
+ /**
66
+ * Builds a path from a Catmull-Rom Spline.
67
+ * Catmull-Rom Spline is the exact equivalent of Ogre's simple spline, ie
68
+ * a spline for which position is smoothly interpolated between control points
69
+ */
70
+ class _ProceduralExport CatmullRomSpline3 : public BaseSpline3<CatmullRomSpline3>
71
+ {
72
+ std::vector<Ogre::Vector3> mPoints;
73
+ public:
74
+ /// Default constructor
75
+ CatmullRomSpline3() {}
76
+
77
+ /// Copy constructor from an Ogre simplespline
78
+ CatmullRomSpline3(const Ogre::SimpleSpline& input)
79
+ {
80
+ mPoints.resize(input.getNumPoints());
81
+ for (unsigned short i=0; i<input.getNumPoints(); i++)
82
+ mPoints.push_back(input.getPoint(i));
83
+ }
84
+
85
+ /// Outputs current spline to an Ogre spline
86
+ Ogre::SimpleSpline toSimpleSpline() const
87
+ {
88
+ Ogre::SimpleSpline spline;
89
+ for (unsigned short i=0;i<mPoints.size();i++)
90
+ spline.addPoint(mPoints[i]);
91
+ return spline;
92
+ }
93
+
94
+ /// Adds a control point
95
+ inline CatmullRomSpline3& addPoint(const Ogre::Vector3& pt)
96
+ {
97
+ mPoints.push_back(pt);
98
+ return *this;
99
+ }
100
+
101
+ /// Adds a control point
102
+ inline CatmullRomSpline3& addPoint(Ogre::Real x, Ogre::Real y, Ogre::Real z)
103
+ {
104
+ mPoints.push_back(Ogre::Vector3(x,y,z));
105
+ return *this;
106
+ }
107
+
108
+ /// Safely gets a control point
109
+ inline const Ogre::Vector3& safeGetPoint(unsigned int i) const
110
+ {
111
+ if (mClosed)
112
+ return mPoints[Utils::modulo(i,mPoints.size())];
113
+ return mPoints[Utils::cap(i,0,mPoints.size()-1)];
114
+ }
115
+
116
+ /**
117
+ * Build a path from Catmull-Rom control points
118
+ */
119
+ Path realizePath();
120
+ };
121
+ //-----------------------------------------------------------------------
122
+ /**
123
+ * Produces a path from Cubic Hermite control points
124
+ */
125
+ class _ProceduralExport CubicHermiteSpline3 : public BaseSpline3<CubicHermiteSpline3>
126
+ {
127
+ typedef CubicHermiteSplineControlPoint<Ogre::Vector3> ControlPoint;
128
+
129
+ std::vector<ControlPoint> mPoints;
130
+
131
+ public:
132
+ /// Adds a control point
133
+ inline CubicHermiteSpline3& addPoint(const Ogre::Vector3& p, const Ogre::Vector3& before, const Ogre::Vector3& after)
134
+ {
135
+ mPoints.push_back(ControlPoint(p, before, after));
136
+ return *this;
137
+ }
138
+ /// Adds a control point
139
+ inline CubicHermiteSpline3& addPoint(const Ogre::Vector3& p, const Ogre::Vector3& tangent)
140
+ {
141
+ mPoints.push_back(ControlPoint(p, tangent, tangent));
142
+ return *this;
143
+ }
144
+ /// Adds a control point
145
+ inline CubicHermiteSpline3& addPoint(const Ogre::Vector3& p, CubicHermiteSplineAutoTangentMode autoTangentMode = AT_CATMULL)
146
+ {
147
+ ControlPoint cp;
148
+ cp.position = p;
149
+ cp.autoTangentBefore = autoTangentMode;
150
+ cp.autoTangentAfter = autoTangentMode;
151
+ mPoints.push_back(cp);
152
+ return *this;
153
+ }
154
+ /// Adds a control point
155
+ inline CubicHermiteSpline3& addPoint(Ogre::Real x, Ogre::Real y, Ogre::Real z, CubicHermiteSplineAutoTangentMode autoTangentMode = AT_CATMULL)
156
+ {
157
+ ControlPoint cp;
158
+ cp.position = Ogre::Vector3(x,y,z);
159
+ cp.autoTangentBefore = autoTangentMode;
160
+ cp.autoTangentAfter = autoTangentMode;
161
+ mPoints.push_back(cp);
162
+ return *this;
163
+ }
164
+ /// Safely gets a control point
165
+ inline const ControlPoint& safeGetPoint(unsigned int i) const
166
+ {
167
+ if (mClosed)
168
+ return mPoints[Utils::modulo(i,mPoints.size())];
169
+ return mPoints[Utils::cap(i,0,mPoints.size()-1)];
170
+ }
171
+
172
+ /**
173
+ * Builds a path from control points
174
+ */
175
+ Path realizePath();
176
+ };
177
+
178
+ //-----------------------------------------------------------------------
179
+ /// Builds a line Path between 2 points
180
+ class _ProceduralExport LinePath
181
+ {
182
+ Ogre::Vector3 mPoint1, mPoint2;
183
+ unsigned int mNumSeg;
184
+
185
+ public:
186
+ /// Default constructor
187
+ LinePath() : mPoint1(Ogre::Vector3::ZERO), mPoint2(Ogre::Vector3::UNIT_Y), mNumSeg(1) {}
188
+
189
+ /// Sets first point
190
+ inline LinePath& setPoint1(Ogre::Vector3 point1)
191
+ {
192
+ mPoint1 = point1;
193
+ return *this;
194
+ }
195
+
196
+ /// Sets second point
197
+ inline LinePath& setPoint2(Ogre::Vector3 point2)
198
+ {
199
+ mPoint2 = point2;
200
+ return *this;
201
+ }
202
+
203
+ /// Sets the number of segments for this line
204
+ inline LinePath& setNumSeg(unsigned int numSeg)
205
+ {
206
+ mNumSeg = numSeg;
207
+ return *this;
208
+ }
209
+
210
+ /// Builds a linepath between 2 points
211
+ inline LinePath& betweenPoints(Ogre::Vector3 point1, Ogre::Vector3 point2)
212
+ {
213
+ mPoint1 = point1;
214
+ mPoint2 = point2;
215
+ return *this;
216
+ }
217
+
218
+ /// Outputs a path
219
+ Path realizePath()
220
+ {
221
+ assert(mNumSeg > 0);
222
+ Path p;
223
+ for (unsigned int i = 0; i <= mNumSeg; ++i)
224
+ {
225
+ p.addPoint((1-i/(Ogre::Real)mNumSeg) * mPoint1 + i/(Ogre::Real)mNumSeg * mPoint2);
226
+ }
227
+ return p;
228
+ }
229
+
230
+ };
231
+ //-----------------------------------------------------------------------
232
+ /**
233
+ * Produces a path by rounding corners of a straight-lines path
234
+ */
235
+ class _ProceduralExport RoundedCornerSpline3 : public BaseSpline3<RoundedCornerSpline3>
236
+ {
237
+ Ogre::Real mRadius;
238
+
239
+ std::vector<Ogre::Vector3> mPoints;
240
+
241
+ public:
242
+ /// Default constructor
243
+ RoundedCornerSpline3() : mRadius(.1f) {}
244
+
245
+ /// Sets the radius of the corners (default = 0.1)
246
+ inline RoundedCornerSpline3& setRadius(Ogre::Real radius)
247
+ {
248
+ mRadius = radius;
249
+ return *this;
250
+ }
251
+
252
+ /// Adds a control point
253
+ inline RoundedCornerSpline3& addPoint(const Ogre::Vector3& p)
254
+ {
255
+ mPoints.push_back(p);
256
+ return *this;
257
+ }
258
+
259
+ /// Adds a control point
260
+ inline RoundedCornerSpline3& addPoint(Ogre::Real x, Ogre::Real y, Ogre::Real z)
261
+ {
262
+ mPoints.push_back(Ogre::Vector3(x,y,z));
263
+ return *this;
264
+ }
265
+
266
+ /// Safely gets a control point
267
+ inline const Ogre::Vector3& safeGetPoint(unsigned int i) const
268
+ {
269
+ if (mClosed)
270
+ return mPoints[Utils::modulo(i,mPoints.size())];
271
+ return mPoints[Utils::cap(i,0,mPoints.size()-1)];
272
+ }
273
+
274
+ /**
275
+ * Builds a shape from control points
276
+ */
277
+ Path realizePath();
278
+ };
279
+
280
+ }
281
+ #endif
@@ -0,0 +1,93 @@
1
+ /*
2
+ -----------------------------------------------------------------------------
3
+ This source file is part of ogre-procedural
4
+
5
+ For the latest info, see http://code.google.com/p/ogre-procedural/
6
+
7
+ Copyright (c) 2010 Michael Broutin
8
+
9
+ Permission is hereby granted, free of charge, to any person obtaining a copy
10
+ of this software and associated documentation files (the "Software"), to deal
11
+ in the Software without restriction, including without limitation the rights
12
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13
+ copies of the Software, and to permit persons to whom the Software is
14
+ furnished to do so, subject to the following conditions:
15
+
16
+ The above copyright notice and this permission notice shall be included in
17
+ all copies or substantial portions of the Software.
18
+
19
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25
+ THE SOFTWARE.
26
+ -----------------------------------------------------------------------------
27
+ */
28
+ #ifndef PROCEDURAL_PLANE_GENERATOR_INCLUDED
29
+ #define PROCEDURAL_PLANE_GENERATOR_INCLUDED
30
+
31
+ #include "ProceduralMeshGenerator.h"
32
+ #include "ProceduralPlatform.h"
33
+
34
+ namespace Procedural
35
+ {
36
+ /// Builds a plane mesh
37
+ class _ProceduralExport PlaneGenerator : public MeshGenerator<PlaneGenerator>
38
+ {
39
+ int mNumSegX;
40
+ int mNumSegY;
41
+ Ogre::Vector3 mNormal;
42
+ Ogre::Real mSizeX;
43
+ Ogre::Real mSizeY;
44
+ public:
45
+
46
+ PlaneGenerator(): mNumSegX(1), mNumSegY(1),
47
+ mNormal(Ogre::Vector3::UNIT_Y),
48
+ mSizeX(1), mSizeY(1)
49
+ {}
50
+
51
+ /**
52
+ * Builds the mesh into the given TriangleBuffer
53
+ * @param buffer The TriangleBuffer on where to append the mesh.
54
+ */
55
+ void addToTriangleBuffer(TriangleBuffer& buffer) const;
56
+
57
+ /** Sets the number of segements along local X axis */
58
+ inline PlaneGenerator & setNumSegX(int numSegX)
59
+ {
60
+ mNumSegX = numSegX;
61
+ return *this;
62
+ }
63
+
64
+ /** Sets the number of segments along local Y axis */
65
+ inline PlaneGenerator & setNumSegY(int numSegY)
66
+ {
67
+ mNumSegY = numSegY;
68
+ return *this;
69
+ }
70
+
71
+ /** Sets the normal of the plane */
72
+ inline PlaneGenerator & setNormal(Ogre::Vector3 normal)
73
+ {
74
+ mNormal = normal;
75
+ return *this;
76
+ }
77
+
78
+ /** Sets the size of the plane along local X axis */
79
+ inline PlaneGenerator & setSizeX(Ogre::Real sizeX)
80
+ {
81
+ mSizeX = sizeX;
82
+ return *this;
83
+ }
84
+
85
+ /** Sets the size of the plane along local Y axis */
86
+ inline PlaneGenerator & setSizeY(Ogre::Real sizeY)
87
+ {
88
+ mSizeY = sizeY;
89
+ return *this;
90
+ }
91
+ };
92
+ }
93
+ #endif
@@ -0,0 +1,54 @@
1
+ #ifndef PROCEDURAL_PLATFORM_INCLUDED
2
+ #define PROCEDURAL_PLATFORM_INCLUDED
3
+
4
+ #define PROCEDURAL_PLATFORM_WIN32 1
5
+ #define PROCEDURAL_PLATFORM_LINUX 2
6
+ #define PROCEDURAL_PLATFORM_APPLE 3
7
+ #define PROCEDURAL_PLATFORM_SYMBIAN 4
8
+ #define PROCEDURAL_PLATFORM_APPLE_IOS 5
9
+ #define PROCEDURAL_PLATFORM_ANDROID 6
10
+ #define PROCEDURAL_PLATFORM_TEGRA2 7
11
+ #define PROCEDURAL_PLATFORM_NACL 8
12
+
13
+ #if defined( __SYMBIAN32__ )
14
+ # define PROCEDURAL_PLATFORM PROCEDURAL_PLATFORM_SYMBIAN
15
+ #elif defined( __WIN32__ ) || defined( _WIN32 )
16
+ # define PROCEDURAL_PLATFORM PROCEDURAL_PLATFORM_WIN32
17
+ #elif defined( __APPLE_CC__)
18
+ # if __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 30000 || __IPHONE_OS_VERSION_MIN_REQUIRED >= 30000
19
+ # define PROCEDURAL_PLATFORM PROCEDURAL_PLATFORM_IPHONE
20
+ # else
21
+ # define PROCEDURAL_PLATFORM PROCEDURAL_PLATFORM_APPLE
22
+ # endif
23
+ #elif defined(linux) && defined(__arm__)
24
+ # define PROCEDURAL_PLATFORM PROCEDURAL_PLATFORM_TEGRA2
25
+ #elif defined(__ANDROID__)
26
+ # define PROCEDURAL_PLATFORM PROCEDURAL_PLATFORM_ANDROID
27
+ #else
28
+ # define PROCEDURAL_PLATFORM PROCEDURAL_PLATFORM_LINUX
29
+ #endif
30
+
31
+ #if PROCEDURAL_PLATFORM == PROCEDURAL_PLATFORM_LINUX || PROCEDURAL_PLATFORM == PROCEDURAL_PLATFORM_APPLE || PROCEDURAL_PLATFORM == PROCEDURAL_PLATFORM_APPLE_IOS || PROCEDURAL_PLATFORM == PROCEDURAL_PLATFORM_IPHONE || PROCEDURAL_PLATFORM == PROCEDURAL_PLATFORM_ANDROID || PROCEDURAL_PLATFORM == PROCEDURAL_PLATFORM_TEGRA2
32
+ # define _ProceduralExport
33
+ #elif PROCEDURAL_PLATFORM == PROCEDURAL_PLATFORM_WIN32 && defined(OgreProcedural_SHARED)
34
+ # if defined( OgreProcedural_EXPORTS )
35
+ # define _ProceduralExport __declspec( dllexport )
36
+ # else
37
+ # if defined( __MINGW32__ )
38
+ # define _ProceduralExport
39
+ # else
40
+ # define _ProceduralExport __declspec( dllimport )
41
+ # endif
42
+ # endif
43
+ #else
44
+ # define _ProceduralExport
45
+ #endif
46
+
47
+ # if (!defined(NDEBUG))
48
+ # define PROCEDURAL_DEBUG_MODE 1
49
+ # else
50
+ # define PROCEDURAL_DEBUG_MODE 0
51
+ # endif
52
+
53
+
54
+ #endif
@@ -0,0 +1,65 @@
1
+ /*
2
+ -----------------------------------------------------------------------------
3
+ This source file is part of ogre-procedural
4
+
5
+ For the latest info, see http://code.google.com/p/ogre-procedural/
6
+
7
+ Copyright (c) 2010 Michael Broutin
8
+
9
+ Permission is hereby granted, free of charge, to any person obtaining a copy
10
+ of this software and associated documentation files (the "Software"), to deal
11
+ in the Software without restriction, including without limitation the rights
12
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13
+ copies of the Software, and to permit persons to whom the Software is
14
+ furnished to do so, subject to the following conditions:
15
+
16
+ The above copyright notice and this permission notice shall be included in
17
+ all copies or substantial portions of the Software.
18
+
19
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25
+ THE SOFTWARE.
26
+ -----------------------------------------------------------------------------
27
+ */
28
+ #ifndef PROCEDURALROOT_H_INCLUDED
29
+ #define PROCEDURALROOT_H_INCLUDED
30
+
31
+ #include "OgreSceneManager.h"
32
+ #include "ProceduralPlatform.h"
33
+
34
+ /**
35
+ * @mainpage API reference start page
36
+ *
37
+ * This is the reference doc for OgreProcedural, containing description for all classes and function. <br>
38
+ *
39
+ * If you want to get a more complete overview of functionnality, you can also check out the manual.
40
+ */
41
+
42
+ namespace Procedural
43
+ {
44
+ /** Singleton that holds the general parameters of OgreProcedural.
45
+ * Unused for now.
46
+ */
47
+ class _ProceduralExport Root
48
+ {
49
+ static Root* instance;
50
+ Root()
51
+ {}
52
+ public:
53
+
54
+ /// Return the singleton pointer of this class
55
+ static Root* getInstance()
56
+ {
57
+ if (!instance)
58
+ instance = new Root();
59
+ return instance;
60
+ }
61
+
62
+ };
63
+ }
64
+
65
+ #endif // PROCEDURALROOT_H_INCLUDED