diff --git a/examples/ExampleApps/MovingCubeApp.cpp b/examples/ExampleApps/MovingCubeApp.cpp index 2fa39e3..72e91f1 100644 --- a/examples/ExampleApps/MovingCubeApp.cpp +++ b/examples/ExampleApps/MovingCubeApp.cpp @@ -14,8 +14,8 @@ #include "Scene/Vertex.hpp" #include "Scene/SimpleDrawable.hpp" #include "Scene/Camera.hpp" -#include "Scene/SimpleAnimationController.hpp" -#include "Scene/SequenceAnimationController.hpp" +#include "Scene/Animation/SimpleAnimationController.hpp" +#include "Scene/Animation/SequenceAnimationController.hpp" #include "Scene/MorphableCameraController.hpp" #include "Scene/UI/PerformanceInfo.hpp" #include "Scene/SceneIntersectionTestController.hpp" @@ -176,8 +176,7 @@ namespace OpenVulkano Math::Pose srcPose(Math::Quaternion(), Math::Vector3f_SIMD(-3, 0, 0)); Math::Pose destPose(Math::Quaternion(), Math::Vector3f_SIMD(3, 0, 0)); m_simpleAnimationController.SetPoses(srcPose, destPose); - m_simpleAnimationController.m_completionEvent += - EventHandler(this, &MovingCubeAppImpl::OnSimpleAnimationCompleted); + m_simpleAnimationController.OnCompletion += EventHandler(this, &MovingCubeAppImpl::OnSimpleAnimationCompleted); m_sequenceAnimationController.EnableLoop(true); m_sequenceAnimationController.SetNode(&m_redBox.m_node); diff --git a/openVulkanoCpp/Scene/SequenceAnimationController.cpp b/openVulkanoCpp/Scene/Animation/SequenceAnimationController.cpp similarity index 85% rename from openVulkanoCpp/Scene/SequenceAnimationController.cpp rename to openVulkanoCpp/Scene/Animation/SequenceAnimationController.cpp index 019cecc..ea67251 100644 --- a/openVulkanoCpp/Scene/SequenceAnimationController.cpp +++ b/openVulkanoCpp/Scene/Animation/SequenceAnimationController.cpp @@ -4,24 +4,23 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -#include "Scene/SequenceAnimationController.hpp" +#include "SequenceAnimationController.hpp" namespace OpenVulkano::Scene { SequenceAnimationController::SequenceAnimationController() { - m_animationController.m_completionEvent += EventHandler(this, &SequenceAnimationController::SequenceCompletedCallback); + m_animationController.OnCompletion += EventHandler(this, &SequenceAnimationController::SequenceCompletedCallback); } - const SequenceAnimationController::PoseDurationPair& SequenceAnimationController::GetStep(int index) const + const SequenceAnimationController::PoseDurationPair& SequenceAnimationController::GetStep(const int index) const { return m_steps[std::max(0, std::min(index, static_cast(m_steps.size() - 1)))]; } - void SequenceAnimationController::SequenceCompletedCallback(SimpleAnimationController *ignored) + void SequenceAnimationController::SequenceCompletedCallback(SimpleAnimationController* ignored) { - if(m_steps.empty()) - return; + if(m_steps.empty()) return; if(m_currentStep < m_steps.size() - 1) { @@ -94,7 +93,7 @@ namespace OpenVulkano::Scene } } - void SequenceAnimationController::AddAnimationSteps(std::initializer_list poses, double duration) + void SequenceAnimationController::AddAnimationSteps(const std::initializer_list poses, double duration) { for(const auto& pose : poses) { @@ -110,7 +109,7 @@ namespace OpenVulkano::Scene } } - void SequenceAnimationController::AddAnimationSteps(std::initializer_list steps) + void SequenceAnimationController::AddAnimationSteps(const std::initializer_list steps) { for(const auto& step : steps) { diff --git a/openVulkanoCpp/Scene/SequenceAnimationController.hpp b/openVulkanoCpp/Scene/Animation/SequenceAnimationController.hpp similarity index 80% rename from openVulkanoCpp/Scene/SequenceAnimationController.hpp rename to openVulkanoCpp/Scene/Animation/SequenceAnimationController.hpp index 11f7741..6fadda7 100644 --- a/openVulkanoCpp/Scene/SequenceAnimationController.hpp +++ b/openVulkanoCpp/Scene/Animation/SequenceAnimationController.hpp @@ -6,7 +6,7 @@ #pragma once -#include "Scene/SimpleAnimationController.hpp" +#include "SimpleAnimationController.hpp" #include "Base/Event.hpp" #include "Base/ITickable.hpp" #include "Math/Math.hpp" @@ -33,7 +33,7 @@ namespace OpenVulkano::Scene void SequenceCompletedCallback(SimpleAnimationController *animationController); public: - Event OnSequenceCompleted; + Event OnSequenceCompleted; SequenceAnimationController(); @@ -47,10 +47,10 @@ namespace OpenVulkano::Scene * * @param loop A boolean value to enable or disable looping. */ - void EnableLoop(bool value) { m_loop = value; } + void EnableLoop(const bool loop) { m_loop = loop; } - void SetNode(Node *node) { m_animationController.SetNode(node); } - Node* GetNode() const { return m_animationController.GetNode(); } + void SetNode(Node* node) { m_animationController.SetNode(node); } + [[nodiscard]] Node* GetNode() const { return m_animationController.GetNode(); } /** * Sets the time to transition back to the first pose when looping is enabled. @@ -62,7 +62,7 @@ namespace OpenVulkano::Scene * @param resetTime The time to transition back to the first pose. * @see GetAnimationPoseResetTime */ - void SetAnimationPoseResetTime(double resetTime) { m_resetTime = resetTime; } + void SetAnimationPoseResetTime(const double resetTime) { m_resetTime = resetTime; } /** * Gets the current reset time for transitioning back to the first pose. @@ -73,13 +73,13 @@ namespace OpenVulkano::Scene double GetAnimationPoseResetTime() const { return m_resetTime; } void Restart(); - bool IsFinished() const; + [[nodiscard]] bool IsFinished() const; void AddAnimationStep(const Math::PoseF &pose, double duration); void AddAnimationSteps(std::initializer_list poses, double duration); void AddAnimationSteps(std::initializer_list steps); - const PoseDurationPair& GetStep(int index) const; - const std::vector &GetSteps() const { return m_steps; } + [[nodiscard]] const PoseDurationPair& GetStep(int index) const; + [[nodiscard]] const std::vector& GetSteps() const { return m_steps; } void Tick() override; }; diff --git a/openVulkanoCpp/Scene/SimpleAnimationController.cpp b/openVulkanoCpp/Scene/Animation/SimpleAnimationController.cpp similarity index 95% rename from openVulkanoCpp/Scene/SimpleAnimationController.cpp rename to openVulkanoCpp/Scene/Animation/SimpleAnimationController.cpp index 82594bd..5f47503 100644 --- a/openVulkanoCpp/Scene/SimpleAnimationController.cpp +++ b/openVulkanoCpp/Scene/Animation/SimpleAnimationController.cpp @@ -29,6 +29,6 @@ namespace OpenVulkano::Scene m_node->SetMatrix(currentPose.ToMatrix()); if(m_elapsed > m_duration) - m_completionEvent.NotifyAll(this); + OnCompletion(this); } } \ No newline at end of file diff --git a/openVulkanoCpp/Scene/SimpleAnimationController.hpp b/openVulkanoCpp/Scene/Animation/SimpleAnimationController.hpp similarity index 56% rename from openVulkanoCpp/Scene/SimpleAnimationController.hpp rename to openVulkanoCpp/Scene/Animation/SimpleAnimationController.hpp index 08271b6..50f1a76 100644 --- a/openVulkanoCpp/Scene/SimpleAnimationController.hpp +++ b/openVulkanoCpp/Scene/Animation/SimpleAnimationController.hpp @@ -25,24 +25,24 @@ namespace OpenVulkano::Scene double m_elapsed = 0; public: - Event m_completionEvent; + Event OnCompletion; SimpleAnimationController() = default; void Reset() { m_elapsed = 0; } void SwapPoses() { std::swap(m_initialPose, m_targetPose); } - Node* GetNode() const { return m_node; } - void SetNode(Node *node) { m_node = node; } + [[nodiscard]] Node* GetNode() const { return m_node; } + void SetNode(Node* node) { m_node = node; } - const Math::PoseF& GetInitialPose() const { return m_initialPose; } - const Math::PoseF& GetTargetPose() const { return m_targetPose; } - void SetPoses(const Math::PoseF &initialPose, const Math::PoseF &targetPose) { m_initialPose = initialPose; m_targetPose = targetPose; } + [[nodiscard]] const Math::PoseF& GetInitialPose() const { return m_initialPose; } + [[nodiscard]] const Math::PoseF& GetTargetPose() const { return m_targetPose; } + void SetPoses(const Math::PoseF& initialPose, const Math::PoseF& targetPose) { m_initialPose = initialPose; m_targetPose = targetPose; } - double GetDuration() const { return m_duration; } - void SetDuration(double duration) { m_duration = duration; } + [[nodiscard]] double GetDuration() const { return m_duration; } + void SetDuration(const double duration) { m_duration = duration; } - double GetProgress(); + [[nodiscard]] double GetProgress(); void Tick() override; };