/*
- * 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.
#include <sstream>
#include <string_view>
-namespace Dali
-{
-namespace Scene3D
-{
-namespace Loader
+namespace Dali::Scene3D::Loader
{
namespace
{
{
AnimationDefinition animationDefinition;
- animationDefinition.mName = animationName;
- animationDefinition.mDuration = frameTime * (frameCount - 1);
+ animationDefinition.SetName(animationName);
+ animationDefinition.SetDuration(frameTime * (frameCount - 1));
float keyFrameInterval = (frameCount > 1u) ? 1.0f / static_cast<float>(frameCount - 1u) : Dali::Math::MACHINE_EPSILON_10;
std::vector<std::shared_ptr<Joint>> jointList;
if(!jointList.empty())
{
- animationDefinition.mProperties.resize(jointList.size() * 2u); // translation and rotation
+ animationDefinition.ReserveSize(jointList.size() * 2u); // translation and rotation
for(uint32_t i = 0; i < jointList.size(); ++i)
{
- AnimatedProperty& translationProperty = animationDefinition.mProperties[i * 2u];
- translationProperty.mTimePeriod = Dali::TimePeriod(animationDefinition.mDuration);
+ AnimatedProperty translationProperty;
+ translationProperty.mTimePeriod = Dali::TimePeriod(animationDefinition.GetDuration());
translationProperty.mNodeName = jointList[i]->name;
translationProperty.mPropertyName = PROPERTY_NAME_POSITION.data();
- AnimatedProperty& rotationProperty = animationDefinition.mProperties[i * 2u + 1];
- rotationProperty.mTimePeriod = Dali::TimePeriod(animationDefinition.mDuration);
+ AnimatedProperty rotationProperty;
+ rotationProperty.mTimePeriod = Dali::TimePeriod(animationDefinition.GetDuration());
rotationProperty.mNodeName = jointList[i]->name;
rotationProperty.mPropertyName = PROPERTY_NAME_ORIENTATION.data();
rotationProperty.mKeyFrames = Dali::KeyFrames::New();
for(uint32_t j = 0; j < frameCount; ++j)
{
- translationProperty.mKeyFrames.Add(static_cast<float>(j) * keyFrameInterval, (jointList[i]->translations[j] / scale));
+ translationProperty.mKeyFrames.Add(static_cast<float>(j) * keyFrameInterval, (jointList[i]->translations[j] * scale));
rotationProperty.mKeyFrames.Add(static_cast<float>(j) * keyFrameInterval, jointList[i]->rotations[j]);
}
+ animationDefinition.SetProperty(i * 2u, std::move(translationProperty));
+ animationDefinition.SetProperty(i * 2u + 1, std::move(rotationProperty));
}
}
return GenerateAnimation(animationName, rootJoint, frameCount, frameTime, scale);
}
-} // namespace Loader
-} // namespace Scene3D
-} // namespace Dali
\ No newline at end of file
+} // namespace Dali::Scene3D::Loader
\ No newline at end of file