The patch below fixes this:../OgreMain/include/OgreController.h:61:11: error: ‘Ogre::ControllerFunction<T>::mDeltaCount’ has incomplete type
Code: Select all
diff --git a/OgreMain/include/OgreController.h b/OgreMain/include/OgreController.h
index e990d4c..3574940 100644
--- a/OgreMain/include/OgreController.h
+++ b/OgreMain/include/OgreController.h
@@ -30,7 +30,7 @@ THE SOFTWARE.
#include "OgrePrerequisites.h"
#include "OgreMath.h"
-
+#include "OgreVector3.h"
#include "OgreSharedPtr.h"
namespace Ogre {
@@ -98,62 +98,6 @@ namespace Ogre {
virtual T calculate(T sourceValue) = 0;
};
- template <>
- float ControllerFunction<float>::getAdjustedInput(float input)
- {
- if (mDeltaInput)
- {
- mDeltaCount += input;
- // Wrap to range [0; 1)
- // i.e.
- // 0 => 0
- // 0.99 => 0.99
- // 1 => 0
- // 1.1 => 0.1
- // -0.1 => 0.9
- mDeltaCount = mDeltaCount - floorf( mDeltaCount );
-
- return mDeltaCount;
- }
- else
- {
- return input;
- }
- }
-
- template <>
- double ControllerFunction<double>::getAdjustedInput(double input)
- {
- if (mDeltaInput)
- {
- mDeltaCount += input;
- mDeltaCount = mDeltaCount - floor( mDeltaCount );
-
- return mDeltaCount;
- }
- else
- {
- return input;
- }
- }
-
- template <>
- Vector3 ControllerFunction<Vector3>::getAdjustedInput(Vector3 input)
- {
- if (mDeltaInput)
- {
- mDeltaCount += input;
- mDeltaCount.x = mDeltaCount.x - Math::Floor( mDeltaCount.x );
- mDeltaCount.y = mDeltaCount.y - Math::Floor( mDeltaCount.y );
- mDeltaCount.z = mDeltaCount.z - Math::Floor( mDeltaCount.z );
-
- return mDeltaCount;
- }
- else
- {
- return input;
- }
- }
/** Can either be used as an input or output value.
diff --git a/OgreMain/src/OgreController.cpp b/OgreMain/src/OgreController.cpp
new file mode 100644
index 0000000..bb2602d
--- /dev/null
+++ b/OgreMain/src/OgreController.cpp
@@ -0,0 +1,66 @@
+/*
+ * OgreController.cpp
+ *
+ * Created on: Apr 3, 2015
+ * Author: j
+ */
+
+#include "OgreController.h"
+
+
+template <>
+float OgreControllerFunction::ControllerFunction<float>::getAdjustedInput(float input)
+{
+ if (mDeltaInput)
+ {
+ mDeltaCount += input;
+ // Wrap to range [0; 1)
+ // i.e.
+ // 0 => 0
+ // 0.99 => 0.99
+ // 1 => 0
+ // 1.1 => 0.1
+ // -0.1 => 0.9
+ mDeltaCount = mDeltaCount - floorf( mDeltaCount );
+
+ return mDeltaCount;
+ }
+ else
+ {
+ return input;
+ }
+}
+
+template <>
+double OgreControllerFunction::ControllerFunction<double>::getAdjustedInput(double input)
+{
+ if (mDeltaInput)
+ {
+ mDeltaCount += input;
+ mDeltaCount = mDeltaCount - floor( mDeltaCount );
+
+ return mDeltaCount;
+ }
+ else
+ {
+ return input;
+ }
+}
+
+template <>
+Vector3 OgreControllerFunction::ControllerFunction<Vector3>::getAdjustedInput(Vector3 input)
+{
+ if (mDeltaInput)
+ {
+ mDeltaCount += input;
+ mDeltaCount.x = mDeltaCount.x - Math::Floor( mDeltaCount.x );
+ mDeltaCount.y = mDeltaCount.y - Math::Floor( mDeltaCount.y );
+ mDeltaCount.z = mDeltaCount.z - Math::Floor( mDeltaCount.z );
+
+ return mDeltaCount;
+ }
+ else
+ {
+ return input;
+ }
+}