X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-scene3d%2Fpublic-api%2Floader%2Fanimation-definition.cpp;h=d9ee5dd6efc5bc9361fc8ae9691b9b76c9e08085;hb=2116ad7b1ce51093a891ca6b3e83419b0b5b79dd;hp=6f24d9e431f9d9cd4fcffac22d07940be3650b64;hpb=f2ee13ccda8c768fddc68f5208b7dcfa54c07242;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-scene3d/public-api/loader/animation-definition.cpp b/dali-scene3d/public-api/loader/animation-definition.cpp index 6f24d9e..d9ee5dd 100644 --- a/dali-scene3d/public-api/loader/animation-definition.cpp +++ b/dali-scene3d/public-api/loader/animation-definition.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 Samsung Electronics Co., Ltd. + * Copyright (c) 2023 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,13 +14,11 @@ * limitations under the License. * */ -#include "dali-scene3d/public-api/loader/animation-definition.h" -namespace Dali -{ -namespace Scene3D -{ -namespace Loader +// CLASS HEADER +#include + +namespace Dali::Scene3D::Loader { const float AnimationDefinition::DEFAULT_DURATION_SECONDS = 1.f; const float AnimationDefinition::MIN_DURATION_SECONDS = 1e-2f; @@ -47,44 +45,141 @@ AnimationDefinition::AnimationDefinition(AnimationDefinition&& other) { } +AnimationDefinition& AnimationDefinition::operator=(AnimationDefinition&& other) +{ + AnimationDefinition tmp(std::move(other)); + mName = std::move(tmp.mName); + mDuration = tmp.mDuration; + mLoopCount = tmp.mLoopCount; + mDisconnectAction = tmp.mDisconnectAction; + mEndAction = tmp.mEndAction; + mSpeedFactor = tmp.mSpeedFactor; + mPlayRange = tmp.mPlayRange; + mProperties.swap(tmp.mProperties); + return *this; +} + void AnimationDefinition::Animate(Animation& animation, AnimatedProperty::GetActor getActor) { DALI_ASSERT_ALWAYS(animation); - for(auto& ap : mProperties) + for(auto& property : mProperties) { - ap.Animate(animation, getActor); + property.Animate(animation, getActor); } } Animation AnimationDefinition::ReAnimate(AnimatedProperty::GetActor getActor) { // Create and configure new animation. - Animation a = Animation::New(mDuration); - a.SetLoopCount(mLoopCount); - a.SetDisconnectAction(mDisconnectAction); - a.SetEndAction(mEndAction); + Animation animation = Animation::New(mDuration); + animation.SetLoopCount(mLoopCount); + animation.SetDisconnectAction(mDisconnectAction); + animation.SetEndAction(mEndAction); - a.SetSpeedFactor(mSpeedFactor); - a.SetPlayRange(mPlayRange); + animation.SetSpeedFactor(mSpeedFactor); + animation.SetPlayRange(mPlayRange); - Animate(a, getActor); - return a; + Animate(animation, getActor); + return animation; } -AnimationDefinition& AnimationDefinition::operator=(AnimationDefinition&& other) +void AnimationDefinition::SetName(const std::string& name) { - AnimationDefinition tmp(std::move(other)); - mName = std::move(tmp.mName); - mDuration = tmp.mDuration; - mLoopCount = tmp.mLoopCount; - mDisconnectAction = tmp.mDisconnectAction; - mEndAction = tmp.mEndAction; - mSpeedFactor = tmp.mSpeedFactor; - mPlayRange = tmp.mPlayRange; - mProperties.swap(tmp.mProperties); - return *this; + mName = name; +} + +const std::string& AnimationDefinition::GetName() const +{ + return mName; +} + +void AnimationDefinition::SetDuration(float duration) +{ + mDuration = duration; +} + +float AnimationDefinition::GetDuration() const +{ + return mDuration; +} + +void AnimationDefinition::SetLoopCount(int32_t loopCount) +{ + mLoopCount = loopCount; +} + +int AnimationDefinition::GetLoopCount() const +{ + return mLoopCount; +} + +void AnimationDefinition::SetDisconnectAction(Animation::EndAction disconnectAction) +{ + mDisconnectAction = disconnectAction; +} + +Animation::EndAction AnimationDefinition::GetDisconnectAction() const +{ + return mDisconnectAction; +} + +void AnimationDefinition::SetEndAction(Animation::EndAction endAction) +{ + mEndAction = endAction; +} + +Animation::EndAction AnimationDefinition::GetEndAction() const +{ + return mEndAction; +} + +void AnimationDefinition::SetSpeedFactor(float speedFactor) +{ + mSpeedFactor = speedFactor; +} + +float AnimationDefinition::GetSpeedFactor() const +{ + return mSpeedFactor; +} + +void AnimationDefinition::SetPlayRange(const Vector2& playRange) +{ + mPlayRange = playRange; +} + +Vector2 AnimationDefinition::GetPlayRange() const +{ + return mPlayRange; +} + +void AnimationDefinition::ReserveSize(uint32_t size) +{ + mProperties.reserve(size); +} + +uint32_t AnimationDefinition::GetPropertyCount() const +{ + return static_cast(mProperties.size()); +} + +void AnimationDefinition::SetProperty(uint32_t index, AnimatedProperty&& property) +{ + if(mProperties.size() <= index) + { + mProperties.resize(index + 1); + } + mProperties[index] = std::move(property); +} + +AnimatedProperty& AnimationDefinition::GetPropertyAt(uint32_t index) +{ + return mProperties[index]; +} + +const AnimatedProperty& AnimationDefinition::GetPropertyAt(uint32_t index) const +{ + return mProperties[index]; } -} // namespace Loader -} // namespace Scene3D -} // namespace Dali +} // namespace Dali::Scene3D::Loader