diff --git a/examples/primitive-shapes/primitive-shapes-example.cpp b/examples/primitive-shapes/primitive-shapes-example.cpp index 9120faf..38e08de 100644 --- a/examples/primitive-shapes/primitive-shapes-example.cpp +++ b/examples/primitive-shapes/primitive-shapes-example.cpp @@ -67,8 +67,7 @@ class PrimitiveShapesController : public ConnectionTracker public: PrimitiveShapesController(Application& application) : mApplication(application), - mColor(Vector4(0.3f, 0.7f, 1.0f, 1.0f)), - mRotation(Vector2::ZERO) + mColor(Vector4(0.3f, 0.7f, 1.0f, 1.0f)) { // Connect to the Application's Init signal mApplication.InitSignal().Connect(this, &PrimitiveShapesController::Create); @@ -639,13 +638,13 @@ public: case GestureState::CONTINUING: { //Rotate based off the gesture. - const Vector2& displacement = gesture.GetDisplacement(); - mRotation.x -= displacement.y / X_ROTATION_DISPLACEMENT_FACTOR; // Y displacement rotates around X axis - mRotation.y += displacement.x / Y_ROTATION_DISPLACEMENT_FACTOR; // X displacement rotates around Y axis - Quaternion rotation = Quaternion(Radian(mRotation.x), Vector3::XAXIS) * - Quaternion(Radian(mRotation.y), Vector3::YAXIS); + Vector2 displacement = gesture.GetDisplacement(); + Quaternion q0 = mModel.GetProperty(Actor::Property::ORIENTATION).Get(); + Vector2 rotation { displacement.y / X_ROTATION_DISPLACEMENT_FACTOR, // Y displacement rotates around X axis + displacement.x / Y_ROTATION_DISPLACEMENT_FACTOR }; // X displacement rotates around Y axis + Quaternion q = Quaternion(Radian(rotation.x), Radian(rotation.y), Radian(0.f)); - mModel.SetProperty(Actor::Property::ORIENTATION, rotation); + mModel.SetProperty(Actor::Property::ORIENTATION, q * q0); break; } @@ -697,12 +696,11 @@ private: Animation mRotationAnimation; ///< Automatically rotates the model, unless it is being panned. Vector4 mColor; ///< Color to set all shapes. - Vector2 mRotation; ///< Keeps track of model rotation. }; int DALI_EXPORT_API main(int argc, char** argv) { - Application application = Application::New(&argc, &argv); + Application application = Application::New(&argc, &argv, DEMO_THEME_PATH); PrimitiveShapesController test(application); application.MainLoop(); return 0;