X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Fevent%2Fanimation%2Flinear-constrainer-impl.cpp;h=41f624887486f2624a8c83060c68c5cbcc5972fb;hb=ae9aa6c8f6feaa85138ef7ca5a13b280923989a2;hp=22c9dfe22654edb45d7af761ff0cbf4af8ca3002;hpb=b1ce4d4fcd7c85330c5fe99465c78bb8b9c42244;p=platform%2Fcore%2Fuifw%2Fdali-core.git diff --git a/dali/internal/event/animation/linear-constrainer-impl.cpp b/dali/internal/event/animation/linear-constrainer-impl.cpp index 22c9dfe..41f6248 100644 --- a/dali/internal/event/animation/linear-constrainer-impl.cpp +++ b/dali/internal/event/animation/linear-constrainer-impl.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015 Samsung Electronics Co., Ltd. + * Copyright (c) 2017 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. @@ -24,6 +24,8 @@ // INTERNAL INCLUDES #include #include +#include + namespace Dali { @@ -113,47 +115,70 @@ Property::Type LinearConstrainer::GetDefaultPropertyType(Property::Index index) Property::Value LinearConstrainer::GetDefaultProperty( Property::Index index ) const { - Property::Value value; if( index == Dali::LinearConstrainer::Property::VALUE ) { - value = Property::Value(Property::ARRAY); + Property::Value value( Property::ARRAY ); + Property::Array* array = value.GetArray(); size_t count( mValue.Size() ); - for( size_t i( 0 ); i != count; ++i ) + + if( array ) { - value.AppendItem( mValue[i] ); + array->Reserve( count ); + for( size_t i( 0 ); i != count; ++i ) + { + array->PushBack( mValue[i] ); + } } + return value; } else if( index == Dali::LinearConstrainer::Property::PROGRESS ) { - value = Property::Value(Property::ARRAY); - size_t count( mValue.Size() ); - for( size_t i( 0 ); i != count; ++i ) + Property::Value value( Property::ARRAY ); + Property::Array* array = value.GetArray(); + size_t count( mProgress.Size() ); + + if( array ) { - value.AppendItem( mProgress[i] ); + array->Reserve( count ); + for( size_t i( 0 ); i != count; ++i ) + { + array->PushBack( mProgress[i] ); + } } + return value; } - return value; + return Property::Value(); } -void LinearConstrainer::SetDefaultProperty(Property::Index index, const Property::Value& propertyValue) +Property::Value LinearConstrainer::GetDefaultPropertyCurrentValue( Property::Index index ) const { - if( index == Dali::LinearConstrainer::Property::VALUE ) + return GetDefaultProperty( index ); // Event-side only properties +} + +void LinearConstrainer::SetDefaultProperty( Property::Index index, const Property::Value& propertyValue ) +{ + const Property::Array* array = propertyValue.GetArray(); + if( array ) { - size_t propertyArrayCount = propertyValue.GetSize(); - mValue.Resize( propertyArrayCount ); - for( size_t i(0); i != propertyArrayCount; ++i ) + size_t propertyArrayCount = array->Count(); + if( index == Dali::LinearConstrainer::Property::VALUE ) { - propertyValue.GetItem(i).Get( mValue[i] ); + mValue.Clear(); // remove old values + mValue.Resize( propertyArrayCount ); + for( size_t i(0); i != propertyArrayCount; ++i ) + { + array->GetElementAt( i ).Get( mValue[ i ] ); + } } - } - else if( index == Dali::LinearConstrainer::Property::PROGRESS ) - { - size_t propertyArrayCount = propertyValue.GetSize(); - mProgress.Resize( propertyArrayCount ); - for( size_t i(0); i != propertyArrayCount; ++i ) + else if( index == Dali::LinearConstrainer::Property::PROGRESS ) { - propertyValue.GetItem(i).Get( mProgress[i] ); + mProgress.Clear(); // remove old values + mProgress.Resize( propertyArrayCount ); + for( size_t i(0); i != propertyArrayCount; ++i ) + { + array->GetElementAt( i ).Get( mProgress[ i ] ); + } } } }