X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Fevent%2Fanimation%2Fkey-frames-impl.cpp;h=ac1bd939ea772cd749ad4e6d99bdc25ff6e1b031;hb=41e9a0ad46f71f270f69e75a08098f5105275cd3;hp=51f05fc720298c4c270d545b4dbfcced53973591;hpb=5c66381841dd4dfd82c5a118d34104a00a2e0e1c;p=platform%2Fcore%2Fuifw%2Fdali-core.git diff --git a/dali/internal/event/animation/key-frames-impl.cpp b/dali/internal/event/animation/key-frames-impl.cpp index 51f05fc..ac1bd93 100644 --- a/dali/internal/event/animation/key-frames-impl.cpp +++ b/dali/internal/event/animation/key-frames-impl.cpp @@ -1,18 +1,19 @@ -// -// Copyright (c) 2014 Samsung Electronics Co., Ltd. -// -// Licensed under the Flora License, Version 1.0 (the License); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://floralicense.org/license/ -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an AS IS BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// +/* + * Copyright (c) 2018 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. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ // CLASS HEADER #include @@ -45,26 +46,45 @@ void KeyFrames::CreateKeyFramesSpec(Property::Type type) switch(type) { case Property::BOOLEAN: + { mKeyFrames = Internal::KeyFrameBoolean::New(); break; + } + case Property::INTEGER: + { + mKeyFrames = Internal::KeyFrameInteger::New(); + break; + } case Property::FLOAT: + { mKeyFrames = Internal::KeyFrameNumber::New(); break; + } case Property::VECTOR2: + { mKeyFrames = Internal::KeyFrameVector2::New(); break; + } case Property::VECTOR3: + { mKeyFrames = Internal::KeyFrameVector3::New(); break; + } case Property::VECTOR4: + { mKeyFrames = Internal::KeyFrameVector4::New(); break; + } case Property::ROTATION: + { mKeyFrames = Internal::KeyFrameQuaternion::New(); break; + } default: - DALI_ASSERT_DEBUG(!"Type not supported"); + { + DALI_ABORT( "Property type is not animatable" ); break; + } } } @@ -93,6 +113,12 @@ void KeyFrames::Add(float time, Property::Value value, AlphaFunction alpha) kf->AddKeyFrame(time, value.Get(), alpha); break; } + case Property::INTEGER: + { + Internal::KeyFrameInteger* kf = static_cast(mKeyFrames.Get()); + kf->AddKeyFrame(time, value.Get(), alpha); + break; + } case Property::FLOAT: { Internal::KeyFrameNumber* kf = static_cast(mKeyFrames.Get()); @@ -134,7 +160,18 @@ KeyFrameSpec* KeyFrames::GetKeyFramesBase() const return mKeyFrames.Get(); } -} // Internal -} // Dali +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