Browse Source

- Applying some requested changes

Sergio 5 years ago
parent
commit
4edad1be90

+ 5 - 9
samples/common/Framework.cpp

@@ -41,10 +41,10 @@ Error SampleApp::init(int argc, char** argv, CString sampleName)
 	return Error::NONE;
 }
 
-Error SampleApp::userMainLoop(Bool& quit, F64 elapsedTime)
+Error SampleApp::userMainLoop(Bool& quit, Second elapsedTime)
 {
 	const F32 ROTATE_ANGLE = toRad(2.5f);
-	const F32 MOUSE_SENSITIVITY = 6.0f;
+	const F32 MOUSE_SENSITIVITY = 5.0f;
 	quit = false;
 
 	SceneGraph& scene = getSceneGraph();
@@ -210,16 +210,12 @@ Error SampleApp::userMainLoop(Bool& quit, F64 elapsedTime)
 		if(in.getMousePosition() != Vec2(0.0))
 		{
 			static Vec2 sEulerYawPitch = Vec2(0.0f);
-			static Vec2 sDeadArea = Vec2(0.0f, 0.25f); // Define smooth transition area
+			static Vec2 sDeadArea = Vec2(0.0f, 0.01f); // Define smooth transition area (TODO: Read this from config)
 
 			Vec2 velocity = in.getMousePosition();
-			Vec2 velSign = Vec2(sign(velocity.x()), sign(velocity.y()));
-			velocity = velocity.abs();
-			velocity = Vec2(smoothstep(sDeadArea.x(), sDeadArea.y(), velocity.x()),
-							smoothstep(sDeadArea.x(), sDeadArea.y(), velocity.y())) * velSign;
-			sEulerYawPitch += velocity * Vec2(360.0f, 90.0f) * elapsedTime * MOUSE_SENSITIVITY;
+			sEulerYawPitch += velocity * Vec2(360.0f) * elapsedTime * MOUSE_SENSITIVITY;
 			sEulerYawPitch.y() = clamp(sEulerYawPitch.y(), -90.0f, 90.0f); // Avoid cycle in Y axis
-			mover->SetPitchYawRoll(toRad(sEulerYawPitch.y()), toRad(sEulerYawPitch.x()), 0.0f);
+			mover->setPitchYawRoll(toRad(sEulerYawPitch.y()), toRad(sEulerYawPitch.x()), 0.0f);
 		}
 	}
 	else

+ 2 - 2
samples/physics_playground/Main.cpp

@@ -102,7 +102,7 @@ class MyApp : public SampleApp
 {
 public:
 	Error sampleExtraInit() override;
-	Error userMainLoop(Bool& quit, F64 elapsedTime) override;
+	Error userMainLoop(Bool& quit, Second elapsedTime) override;
 };
 
 Error MyApp::sampleExtraInit()
@@ -193,7 +193,7 @@ Error MyApp::sampleExtraInit()
 	return Error::NONE;
 }
 
-Error MyApp::userMainLoop(Bool& quit, F64 elapsedTime)
+Error MyApp::userMainLoop(Bool& quit, Second elapsedTime)
 {
 	// ANKI_CHECK(SampleApp::userMainLoop(quit));
 

+ 1 - 1
samples/skeletal_animation/Main.cpp

@@ -38,7 +38,7 @@ public:
 		return Error::NONE;
 	}
 
-	Error userMainLoop(Bool& quit, F64 elapsedTime) override
+	Error userMainLoop(Bool& quit, Second elapsedTime) override
 	{
 		if(getInput().getKey(KeyCode::H) == 1)
 		{

+ 2 - 2
sandbox/Main.cpp

@@ -19,7 +19,7 @@ public:
 	Bool m_profile = false;
 
 	Error init(int argc, char* argv[]);
-	Error userMainLoop(Bool& quit, F64 elapsedTime) override;
+	Error userMainLoop(Bool& quit, Second elapsedTime) override;
 };
 
 MyApp* app = nullptr;
@@ -87,7 +87,7 @@ Error MyApp::init(int argc, char* argv[])
 	return Error::NONE;
 }
 
-Error MyApp::userMainLoop(Bool& quit, F64 elapsedTime)
+Error MyApp::userMainLoop(Bool& quit, Second elapsedTime)
 {
 	F32 ang = toRad(2.5f);
 	F32 scale = 0.01f;

+ 1 - 1
src/anki/core/App.h

@@ -97,7 +97,7 @@ public:
 	ANKI_USE_RESULT Error mainLoop();
 
 	/// The user code to run along with the other main loop code.
-	virtual ANKI_USE_RESULT Error userMainLoop(Bool& quit, F64 elapsedTime)
+	virtual ANKI_USE_RESULT Error userMainLoop(Bool& quit, Second elapsedTime)
 	{
 		// Do nothing
 		return Error::NONE;

+ 23 - 0
src/anki/math/Functions.h

@@ -149,6 +149,29 @@ inline T toDegrees(const T rad)
 	return rad * (T(180) / PI);
 }
 
+/// Returns 1 or -1 based on the sign
+template <typename T>
+inline T sign(T v) 
+{
+	return v > 0 ? 1 : -1;
+}
+
+/// When a value goes out of bounds it cycles rom the other side
+template <typename T>
+inline T wrap(T value, T min, T max) 
+{
+	ANKI_ASSERT(min < max);
+	return (value < min) ? (max - (min - value)) : ((value > max) ? (min + (value - max)) : value);
+}
+
+/// Same as smoothstep in glsl
+template <typename T>
+inline T smoothstep(T edge0, T edge1, T value) 
+{
+	value = clamp((value - edge0) / (edge1 - edge0), T(0), T(1));
+	return value * value * (3 - 2 * value);
+}
+
 /// Linear interpolation between values
 /// @param[in] from Starting value
 /// @param[in] to Ending value

+ 2 - 2
src/anki/scene/components/MoveComponent.h

@@ -154,9 +154,9 @@ public:
 		markForUpdate();
 	}
 
-	void SetPitchYawRoll(F32 radPitch, F32 radYaw, F32 radRoll) 
+	void setPitchYawRoll(F32 radPitch, F32 radYaw, F32 radRoll) 
 	{
-		Vec4 forward = Vec4(	cos(radYaw) * cos(radPitch),
+		const Vec4 forward = Vec4(	cos(radYaw) * cos(radPitch),
 								sin(radPitch),
 								sin(radYaw) * cos(radPitch), 0.0f).getNormalized();
 		lookAtPoint(m_ltrf.getOrigin() + forward);

+ 0 - 23
src/anki/util/Functions.h

@@ -151,13 +151,6 @@ inline T max(T a, T b)
 	return (a > b) ? a : b;
 }
 
-/// Returns 1 or -1 based on the sign
-template <typename T>
-inline T sign(T v) 
-{
-	return v > 0 ? 1 : -1;
-}
-
 template<typename T>
 inline T clamp(T v, T minv, T maxv)
 {
@@ -165,22 +158,6 @@ inline T clamp(T v, T minv, T maxv)
 	return min<T>(max<T>(minv, v), maxv);
 }
 
-/// When a value goes out of bounds it cycles rom the other side
-template <typename T>
-inline T wrap(T value, T min, T max) 
-{
-	ANKI_ASSERT(min < max);
-	return (value < min) ? (max - (min - value)) : ((value > max) ? (min + (value - max)) : value);
-}
-
-/// Same as smoothstep in glsl
-template <typename T>
-inline T smoothstep(T edge0, T edge1, T value) 
-{
-	value = clamp((value - edge0) / (edge1 - edge0), (T)0, (T)1);
-	return value * value * (3 - 2 * value);
-}
-
 /// Check if a number is a power of 2
 template<typename Int, ANKI_ENABLE(std::is_integral<Int>::value)>
 inline Bool isPowerOfTwo(Int x)