projects
/
platform
/
core
/
uifw
/
dali-core.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Harmonize Animation API parameter checking and add test cases for them
[platform/core/uifw/dali-core.git]
/
dali
/
internal
/
event
/
animation
/
key-frames-impl.cpp
diff --git
a/dali/internal/event/animation/key-frames-impl.cpp
b/dali/internal/event/animation/key-frames-impl.cpp
index
48bdaef
..
ac1bd93
100644
(file)
--- a/
dali/internal/event/animation/key-frames-impl.cpp
+++ b/
dali/internal/event/animation/key-frames-impl.cpp
@@
-1,5
+1,5
@@
/*
/*
- * Copyright (c) 201
4
Samsung Electronics Co., Ltd.
+ * Copyright (c) 201
8
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.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@
-46,32
+46,45
@@
void KeyFrames::CreateKeyFramesSpec(Property::Type type)
switch(type)
{
case Property::BOOLEAN:
switch(type)
{
case Property::BOOLEAN:
+ {
mKeyFrames = Internal::KeyFrameBoolean::New();
break;
mKeyFrames = Internal::KeyFrameBoolean::New();
break;
+ }
case Property::INTEGER:
case Property::INTEGER:
+ {
mKeyFrames = Internal::KeyFrameInteger::New();
break;
mKeyFrames = Internal::KeyFrameInteger::New();
break;
- case Property::UNSIGNED_INTEGER:
- mKeyFrames = Internal::KeyFrameUnsignedInteger::New();
- break;
+ }
case Property::FLOAT:
case Property::FLOAT:
+ {
mKeyFrames = Internal::KeyFrameNumber::New();
break;
mKeyFrames = Internal::KeyFrameNumber::New();
break;
+ }
case Property::VECTOR2:
case Property::VECTOR2:
+ {
mKeyFrames = Internal::KeyFrameVector2::New();
break;
mKeyFrames = Internal::KeyFrameVector2::New();
break;
+ }
case Property::VECTOR3:
case Property::VECTOR3:
+ {
mKeyFrames = Internal::KeyFrameVector3::New();
break;
mKeyFrames = Internal::KeyFrameVector3::New();
break;
+ }
case Property::VECTOR4:
case Property::VECTOR4:
+ {
mKeyFrames = Internal::KeyFrameVector4::New();
break;
mKeyFrames = Internal::KeyFrameVector4::New();
break;
+ }
case Property::ROTATION:
case Property::ROTATION:
+ {
mKeyFrames = Internal::KeyFrameQuaternion::New();
break;
mKeyFrames = Internal::KeyFrameQuaternion::New();
break;
+ }
default:
default:
- DALI_ASSERT_DEBUG(!"Type not supported");
+ {
+ DALI_ABORT( "Property type is not animatable" );
break;
break;
+ }
}
}
}
}
@@
-106,12
+119,6
@@
void KeyFrames::Add(float time, Property::Value value, AlphaFunction alpha)
kf->AddKeyFrame(time, value.Get<int>(), alpha);
break;
}
kf->AddKeyFrame(time, value.Get<int>(), alpha);
break;
}
- case Property::UNSIGNED_INTEGER:
- {
- Internal::KeyFrameUnsignedInteger* kf = static_cast<Internal::KeyFrameUnsignedInteger*>(mKeyFrames.Get());
- kf->AddKeyFrame(time, value.Get<unsigned int>(), alpha);
- break;
- }
case Property::FLOAT:
{
Internal::KeyFrameNumber* kf = static_cast<Internal::KeyFrameNumber*>(mKeyFrames.Get());
case Property::FLOAT:
{
Internal::KeyFrameNumber* kf = static_cast<Internal::KeyFrameNumber*>(mKeyFrames.Get());
@@
-153,5
+160,18
@@
KeyFrameSpec* KeyFrames::GetKeyFramesBase() const
return mKeyFrames.Get();
}
return mKeyFrames.Get();
}
+Property::Value KeyFrames::GetLastKeyFrameValue() const
+{
+ Property::Value value;
+
+ std::size_t noOfKeyFrames = mKeyFrames->GetNumberOfKeyFrames();
+ if( noOfKeyFrames )
+ {
+ mKeyFrames->GetKeyFrameAsValue( noOfKeyFrames - 1, value );
+ }
+
+ return value;
+}
+
} // Internal
} // Dali
} // Internal
} // Dali