X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Fscrollable%2Fitem-view%2Fspiral-layout.cpp;h=9c5c80bfd5854d9b26992f9d09a9772ec9f27a08;hp=9121ebec91e257a13dd830341814b12fb7f2f617;hb=f2039d47f9bed8104575da80a2ecf0bb6e37ff8d;hpb=f3e45e41c5f16ccc2538b283897ed6efb07e4ea9 diff --git a/dali-toolkit/internal/controls/scrollable/item-view/spiral-layout.cpp b/dali-toolkit/internal/controls/scrollable/item-view/spiral-layout.cpp old mode 100755 new mode 100644 index 9121ebe..9c5c80b --- a/dali-toolkit/internal/controls/scrollable/item-view/spiral-layout.cpp +++ b/dali-toolkit/internal/controls/scrollable/item-view/spiral-layout.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. + * Copyright (c) 2021 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. @@ -19,178 +19,177 @@ #include // EXTERNAL INCLUDES -#include #include #include +#include // INTERNAL INCLUDES -#include #include +#include using namespace Dali; using namespace Dali::Toolkit; namespace // unnamed namespace { - const float DEFAULT_ITEMS_PER_SPIRAL_TURN = 9.5f; -const float DEFAULT_ITEM_SPACING_RADIANS = Math::PI*2.0f/DEFAULT_ITEMS_PER_SPIRAL_TURN; +const float DEFAULT_ITEM_SPACING_RADIANS = Math::PI * 2.0f / DEFAULT_ITEMS_PER_SPIRAL_TURN; const float DEFAULT_REVOLUTION_DISTANCE = 190.0f; -const float DEFAULT_ITEM_DESCENT = DEFAULT_REVOLUTION_DISTANCE / DEFAULT_ITEMS_PER_SPIRAL_TURN; +const float DEFAULT_ITEM_DESCENT = DEFAULT_REVOLUTION_DISTANCE / DEFAULT_ITEMS_PER_SPIRAL_TURN; const float DEFAULT_TOP_ITEM_ALIGNMENT = -0.125f; -const float DEFAULT_SCROLL_SPEED_FACTOR = 0.01f; -const float DEFAULT_MAXIMUM_SWIPE_SPEED = 30.0f; +const float DEFAULT_SCROLL_SPEED_FACTOR = 0.01f; +const float DEFAULT_MAXIMUM_SWIPE_SPEED = 30.0f; const float DEFAULT_ITEM_FLICK_ANIMATION_DURATION = 0.1f; float GetDefaultSpiralRadiusFunction(const Vector3& layoutSize) { - return layoutSize.width*0.4f; + return layoutSize.width * 0.4f; } struct SpiralPositionConstraint { - SpiralPositionConstraint( unsigned int itemId, float spiralRadius, float itemSpacingRadians, float itemDescent, float topItemAlignment ) - : mItemId( itemId ), - mSpiralRadius( spiralRadius ), - mItemSpacingRadians( itemSpacingRadians ), - mItemDescent( itemDescent ), - mTopItemAlignment( topItemAlignment ) + SpiralPositionConstraint(unsigned int itemId, float spiralRadius, float itemSpacingRadians, float itemDescent, float topItemAlignment) + : mItemId(itemId), + mSpiralRadius(spiralRadius), + mItemSpacingRadians(itemSpacingRadians), + mItemDescent(itemDescent), + mTopItemAlignment(topItemAlignment) { } - inline void OrientationUp( Vector3& current, float layoutPosition, const Vector3& layoutSize ) + inline void OrientationUp(Vector3& current, float layoutPosition, const Vector3& layoutSize) { float angle = -Math::PI * 0.5f + mItemSpacingRadians * layoutPosition; - current.x = -mSpiralRadius * cosf( angle ); - current.y = ( mItemDescent * layoutPosition ) + layoutSize.height * mTopItemAlignment; - current.z = -mSpiralRadius * sinf( angle ); + current.x = -mSpiralRadius * cosf(angle); + current.y = (mItemDescent * layoutPosition) + layoutSize.height * mTopItemAlignment; + current.z = -mSpiralRadius * sinf(angle); } - inline void OrientationLeft( Vector3& current, float layoutPosition, const Vector3& layoutSize ) + inline void OrientationLeft(Vector3& current, float layoutPosition, const Vector3& layoutSize) { float angle = Math::PI * 0.5f + mItemSpacingRadians * layoutPosition; - current.x = ( mItemDescent * layoutPosition ) + layoutSize.width * mTopItemAlignment; - current.y = -mSpiralRadius * cosf( angle ); - current.z = mSpiralRadius * sinf( angle ); + current.x = (mItemDescent * layoutPosition) + layoutSize.width * mTopItemAlignment; + current.y = -mSpiralRadius * cosf(angle); + current.z = mSpiralRadius * sinf(angle); } - inline void OrientationDown( Vector3& current, float layoutPosition, const Vector3& layoutSize ) + inline void OrientationDown(Vector3& current, float layoutPosition, const Vector3& layoutSize) { float angle = Math::PI * 0.5f + mItemSpacingRadians * layoutPosition; - current.x = -mSpiralRadius * cosf( angle ); - current.y = ( -mItemDescent * layoutPosition ) - layoutSize.height * mTopItemAlignment; + current.x = -mSpiralRadius * cosf(angle); + current.y = (-mItemDescent * layoutPosition) - layoutSize.height * mTopItemAlignment; current.z = mSpiralRadius * sinf(angle); } - inline void OrientationRight( Vector3& current, float layoutPosition, const Vector3& layoutSize ) + inline void OrientationRight(Vector3& current, float layoutPosition, const Vector3& layoutSize) { - float angle = -Math::PI*0.5f + mItemSpacingRadians * layoutPosition; + float angle = -Math::PI * 0.5f + mItemSpacingRadians * layoutPosition; current.x = (-mItemDescent * layoutPosition) - layoutSize.width * mTopItemAlignment; - current.y = -mSpiralRadius * cosf( angle ); - current.z = -mSpiralRadius * sinf( angle ); + current.y = -mSpiralRadius * cosf(angle); + current.z = -mSpiralRadius * sinf(angle); } - void OrientationUp( Vector3& current, const PropertyInputContainer& inputs ) + void OrientationUp(Vector3& current, const PropertyInputContainer& inputs) { - float layoutPosition = inputs[0]->GetFloat() + static_cast< float >( mItemId ); - const Vector3& layoutSize = inputs[1]->GetVector3(); - OrientationUp( current, layoutPosition, layoutSize ); + float layoutPosition = inputs[0]->GetFloat() + static_cast(mItemId); + const Vector3& layoutSize = inputs[1]->GetVector3(); + OrientationUp(current, layoutPosition, layoutSize); } - void OrientationLeft( Vector3& current, const PropertyInputContainer& inputs ) + void OrientationLeft(Vector3& current, const PropertyInputContainer& inputs) { - float layoutPosition = inputs[0]->GetFloat() + static_cast< float >( mItemId ); - const Vector3& layoutSize = inputs[1]->GetVector3(); - OrientationLeft( current, layoutPosition, layoutSize ); + float layoutPosition = inputs[0]->GetFloat() + static_cast(mItemId); + const Vector3& layoutSize = inputs[1]->GetVector3(); + OrientationLeft(current, layoutPosition, layoutSize); } - void OrientationDown( Vector3& current, const PropertyInputContainer& inputs ) + void OrientationDown(Vector3& current, const PropertyInputContainer& inputs) { - float layoutPosition = inputs[0]->GetFloat() + static_cast< float >( mItemId ); - const Vector3& layoutSize = inputs[1]->GetVector3(); - OrientationDown( current, layoutPosition, layoutSize ); + float layoutPosition = inputs[0]->GetFloat() + static_cast(mItemId); + const Vector3& layoutSize = inputs[1]->GetVector3(); + OrientationDown(current, layoutPosition, layoutSize); } - void OrientationRight( Vector3& current, const PropertyInputContainer& inputs ) + void OrientationRight(Vector3& current, const PropertyInputContainer& inputs) { - float layoutPosition = inputs[0]->GetFloat() + static_cast< float >( mItemId ); - const Vector3& layoutSize = inputs[1]->GetVector3(); - OrientationRight( current, layoutPosition, layoutSize ); + float layoutPosition = inputs[0]->GetFloat() + static_cast(mItemId); + const Vector3& layoutSize = inputs[1]->GetVector3(); + OrientationRight(current, layoutPosition, layoutSize); } unsigned int mItemId; - float mSpiralRadius; - float mItemSpacingRadians; - float mItemDescent; - float mTopItemAlignment; + float mSpiralRadius; + float mItemSpacingRadians; + float mItemDescent; + float mTopItemAlignment; }; struct SpiralRotationConstraint { - SpiralRotationConstraint( unsigned int itemId, float itemSpacingRadians ) - : mItemId( itemId ), - mItemSpacingRadians( itemSpacingRadians ) + SpiralRotationConstraint(unsigned int itemId, float itemSpacingRadians) + : mItemId(itemId), + mItemSpacingRadians(itemSpacingRadians) { } - void OrientationUp( Quaternion& current, const PropertyInputContainer& inputs ) + void OrientationUp(Quaternion& current, const PropertyInputContainer& inputs) { - float layoutPosition = inputs[0]->GetFloat() + static_cast< float >( mItemId ); - float angle = -mItemSpacingRadians * layoutPosition; + float layoutPosition = inputs[0]->GetFloat() + static_cast(mItemId); + float angle = -mItemSpacingRadians * layoutPosition; - current = Quaternion( Radian( angle ), Vector3::YAXIS); + current = Quaternion(Radian(angle), Vector3::YAXIS); } - void OrientationLeft( Quaternion& current, const PropertyInputContainer& inputs ) + void OrientationLeft(Quaternion& current, const PropertyInputContainer& inputs) { - float layoutPosition = inputs[0]->GetFloat() + static_cast< float >( mItemId ); - float angle = -mItemSpacingRadians * layoutPosition; + float layoutPosition = inputs[0]->GetFloat() + static_cast(mItemId); + float angle = -mItemSpacingRadians * layoutPosition; - current = Quaternion( Radian( -Math::PI * 0.5f ), Vector3::ZAXIS ) * Quaternion( Radian( angle ), Vector3::YAXIS ); + current = Quaternion(Radian(-Math::PI * 0.5f), Vector3::ZAXIS) * Quaternion(Radian(angle), Vector3::YAXIS); } - void OrientationDown( Quaternion& current, const PropertyInputContainer& inputs ) + void OrientationDown(Quaternion& current, const PropertyInputContainer& inputs) { - float layoutPosition = inputs[0]->GetFloat() + static_cast< float >( mItemId ); - float angle = -mItemSpacingRadians * layoutPosition; + float layoutPosition = inputs[0]->GetFloat() + static_cast(mItemId); + float angle = -mItemSpacingRadians * layoutPosition; - current = Quaternion( Radian( -Math::PI ), Vector3::ZAXIS) * Quaternion( Radian( angle ), Vector3::YAXIS ); + current = Quaternion(Radian(-Math::PI), Vector3::ZAXIS) * Quaternion(Radian(angle), Vector3::YAXIS); } - void OrientationRight( Quaternion& current, const PropertyInputContainer& inputs ) + void OrientationRight(Quaternion& current, const PropertyInputContainer& inputs) { - float layoutPosition = inputs[0]->GetFloat() + static_cast< float >( mItemId ); - float angle = -mItemSpacingRadians * layoutPosition; + float layoutPosition = inputs[0]->GetFloat() + static_cast(mItemId); + float angle = -mItemSpacingRadians * layoutPosition; - current = Quaternion( Radian( -Math::PI * 1.5f ), Vector3::ZAXIS) * Quaternion( Radian( angle ), Vector3::YAXIS ); + current = Quaternion(Radian(-Math::PI * 1.5f), Vector3::ZAXIS) * Quaternion(Radian(angle), Vector3::YAXIS); } unsigned int mItemId; - float mItemSpacingRadians; + float mItemSpacingRadians; }; struct SpiralColorConstraint { - SpiralColorConstraint( unsigned int itemId, float itemSpacingRadians ) - : mItemId( itemId ), - mItemSpacingRadians( itemSpacingRadians ) + SpiralColorConstraint(unsigned int itemId, float itemSpacingRadians) + : mItemId(itemId), + mItemSpacingRadians(itemSpacingRadians) { } - void operator()( Vector4& current, const PropertyInputContainer& inputs ) + void operator()(Vector4& current, const PropertyInputContainer& inputs) { - float layoutPosition = inputs[0]->GetFloat() + static_cast< float >( mItemId ); - Radian angle( mItemSpacingRadians * fabsf( layoutPosition ) / Dali::ANGLE_360 ); + float layoutPosition = inputs[0]->GetFloat() + static_cast(mItemId); + Radian angle(mItemSpacingRadians * fabsf(layoutPosition) / Dali::ANGLE_360); - float progress = angle - floorf( angle ); // take fractional bit only to get between 0.0 - 1.0 - progress = (progress > 0.5f) ? 2.0f*(1.0f - progress) : progress*2.0f; + float progress = angle - floorf(angle); // take fractional bit only to get between 0.0 - 1.0 + progress = (progress > 0.5f) ? 2.0f * (1.0f - progress) : progress * 2.0f; float darkness(1.0f); { @@ -198,13 +197,13 @@ struct SpiralColorConstraint const float endMarker = 0.35f; // The progress at which darkening ends const float minDarkness = 0.15f; // The darkness at end marker - if (progress > endMarker) + if(progress > endMarker) { darkness = minDarkness; } - else if (progress > startMarker) + else if(progress > startMarker) { - darkness = 1.0f - ( (1.0f - minDarkness) * ((progress-startMarker) / (endMarker-startMarker)) ); + darkness = 1.0f - ((1.0f - minDarkness) * ((progress - startMarker) / (endMarker - startMarker))); } } @@ -212,52 +211,49 @@ struct SpiralColorConstraint } unsigned int mItemId; - float mItemSpacingRadians; + float mItemSpacingRadians; }; struct SpiralVisibilityConstraint { - SpiralVisibilityConstraint( unsigned int itemId, float itemSpacingRadians, float itemDescent, float topItemAlignment ) - : mItemId( itemId ), - mItemSpacingRadians( itemSpacingRadians ), - mItemDescent( itemDescent ), - mTopItemAlignment( topItemAlignment ) + SpiralVisibilityConstraint(unsigned int itemId, float itemSpacingRadians, float itemDescent, float topItemAlignment) + : mItemId(itemId), + mItemSpacingRadians(itemSpacingRadians), + mItemDescent(itemDescent), + mTopItemAlignment(topItemAlignment) { } - void Portrait( bool& current, const PropertyInputContainer& inputs ) + void Portrait(bool& current, const PropertyInputContainer& inputs) { - float layoutPosition = inputs[0]->GetFloat() + static_cast< float >( mItemId ); - const Vector3& layoutSize = inputs[1]->GetVector3(); - float itemsCachedBeforeTopItem = layoutSize.height*(mTopItemAlignment+0.5f) / mItemDescent; - current = ( layoutPosition >= -itemsCachedBeforeTopItem - 1.0f && layoutPosition <= ( layoutSize.height / mItemDescent ) + 1.0f ); + float layoutPosition = inputs[0]->GetFloat() + static_cast(mItemId); + const Vector3& layoutSize = inputs[1]->GetVector3(); + float itemsCachedBeforeTopItem = layoutSize.height * (mTopItemAlignment + 0.5f) / mItemDescent; + current = (layoutPosition >= -itemsCachedBeforeTopItem - 1.0f && layoutPosition <= (layoutSize.height / mItemDescent) + 1.0f); } - void Landscape( bool& current, const PropertyInputContainer& inputs ) + void Landscape(bool& current, const PropertyInputContainer& inputs) { - float layoutPosition = inputs[0]->GetFloat() + static_cast< float >( mItemId ); - const Vector3& layoutSize = inputs[1]->GetVector3(); - float itemsCachedBeforeTopItem = layoutSize.width*(mTopItemAlignment+0.5f) / mItemDescent; - current = ( layoutPosition >= -itemsCachedBeforeTopItem - 1.0f && layoutPosition <= ( layoutSize.width / mItemDescent ) + 1.0f ); + float layoutPosition = inputs[0]->GetFloat() + static_cast(mItemId); + const Vector3& layoutSize = inputs[1]->GetVector3(); + float itemsCachedBeforeTopItem = layoutSize.width * (mTopItemAlignment + 0.5f) / mItemDescent; + current = (layoutPosition >= -itemsCachedBeforeTopItem - 1.0f && layoutPosition <= (layoutSize.width / mItemDescent) + 1.0f); } unsigned int mItemId; - float mItemSpacingRadians; - float mItemDescent; - float mTopItemAlignment; + float mItemSpacingRadians; + float mItemDescent; + float mTopItemAlignment; }; } // unnamed namespace namespace Dali { - namespace Toolkit { - namespace Internal { - struct SpiralLayout::Impl { Impl() @@ -294,21 +290,21 @@ void SpiralLayout::SetItemSpacing(Radian itemSpacing) { mImpl->mItemSpacingRadians = itemSpacing; - float itemsPerSpiral = std::max(1.0f, (2.0f*(float)Math::PI) / mImpl->mItemSpacingRadians); - mImpl->mItemDescent = mImpl->mRevolutionDistance / itemsPerSpiral; + float itemsPerSpiral = std::max(1.0f, (2.0f * (float)Math::PI) / mImpl->mItemSpacingRadians); + mImpl->mItemDescent = mImpl->mRevolutionDistance / itemsPerSpiral; } Radian SpiralLayout::GetItemSpacing() const { - return Radian( mImpl->mItemSpacingRadians ); + return Radian(mImpl->mItemSpacingRadians); } void SpiralLayout::SetRevolutionDistance(float distance) { mImpl->mRevolutionDistance = distance; - float itemsPerSpiral = std::max(1.0f, (2.0f*(float)Math::PI) / mImpl->mItemSpacingRadians); - mImpl->mItemDescent = mImpl->mRevolutionDistance / itemsPerSpiral; + float itemsPerSpiral = std::max(1.0f, (2.0f * (float)Math::PI) / mImpl->mItemSpacingRadians); + mImpl->mItemDescent = mImpl->mRevolutionDistance / itemsPerSpiral; } float SpiralLayout::GetRevolutionDistance() const @@ -373,128 +369,127 @@ float SpiralLayout::GetItemScrollToPosition(unsigned int itemId) const ItemRange SpiralLayout::GetItemsWithinArea(float firstItemPosition, Vector3 layoutSize) const { - float layoutHeight = IsHorizontal( GetOrientation() ) ? layoutSize.width : layoutSize.height; - float itemsPerSpiral = layoutHeight / mImpl->mItemDescent; + float layoutHeight = IsHorizontal(GetOrientation()) ? layoutSize.width : layoutSize.height; + float itemsPerSpiral = layoutHeight / mImpl->mItemDescent; float itemsCachedBeforeTopItem = layoutHeight * (mImpl->mTopItemAlignment + 0.5f) / mImpl->mItemDescent; - float itemsViewable = std::min(itemsPerSpiral, itemsPerSpiral - itemsCachedBeforeTopItem - firstItemPosition + 1.0f); + float itemsViewable = std::min(itemsPerSpiral, itemsPerSpiral - itemsCachedBeforeTopItem - firstItemPosition + 1.0f); unsigned int firstItem = static_cast(std::max(0.0f, -firstItemPosition - itemsCachedBeforeTopItem - 1.0f)); unsigned int lastItem = static_cast(std::max(0.0f, firstItem + itemsViewable)); - return ItemRange(firstItem, lastItem+1); + return ItemRange(firstItem, lastItem + 1); } unsigned int SpiralLayout::GetReserveItemCount(Vector3 layoutSize) const { - float layoutHeight = IsHorizontal( GetOrientation() ) ? layoutSize.width : layoutSize.height; + float layoutHeight = IsHorizontal(GetOrientation()) ? layoutSize.width : layoutSize.height; return static_cast(layoutHeight / mImpl->mItemDescent); } -void SpiralLayout::GetDefaultItemSize( unsigned int itemId, const Vector3& layoutSize, Vector3& itemSize ) const +void SpiralLayout::GetDefaultItemSize(unsigned int itemId, const Vector3& layoutSize, Vector3& itemSize) const { itemSize.width = layoutSize.width * 0.25f; // 4x3 aspect ratio - itemSize.height = itemSize.depth = ( itemSize.width / 4.0f ) * 3.0f; + itemSize.height = itemSize.depth = (itemSize.width / 4.0f) * 3.0f; } Degree SpiralLayout::GetScrollDirection() const { - Degree scrollDirection(0); + Degree scrollDirection(0); const ControlOrientation::Type orientation = GetOrientation(); - if ( orientation == ControlOrientation::Up ) + if(orientation == ControlOrientation::Up) { - scrollDirection = Degree( -45.0f ); // Allow swiping horizontally & vertically + scrollDirection = Degree(-45.0f); // Allow swiping horizontally & vertically } - else if ( orientation == ControlOrientation::Left ) + else if(orientation == ControlOrientation::Left) { - scrollDirection = Degree( 45.0f ); + scrollDirection = Degree(45.0f); } - else if ( orientation == ControlOrientation::Down ) + else if(orientation == ControlOrientation::Down) { - scrollDirection = Degree( 180.0f - 45.0f ); + scrollDirection = Degree(180.0f - 45.0f); } else // orientation == ControlOrientation::Right { - scrollDirection = Degree( 270.0f - 45.0f ); + scrollDirection = Degree(270.0f - 45.0f); } return scrollDirection; } -void SpiralLayout::ApplyConstraints( Actor& actor, const int itemId, const Vector3& layoutSize, const Actor& itemViewActor ) +void SpiralLayout::ApplyConstraints(Actor& actor, const int itemId, const Vector3& layoutSize, const Actor& itemViewActor) { - // This just implements the default behaviour of constraint application. // Custom layouts can override this function to apply their custom constraints. - Dali::Toolkit::ItemView itemView = Dali::Toolkit::ItemView::DownCast( itemViewActor ); - if( itemView ) + Dali::Toolkit::ItemView itemView = Dali::Toolkit::ItemView::DownCast(itemViewActor); + if(itemView) { const ControlOrientation::Type orientation = GetOrientation(); // Position constraint - SpiralPositionConstraint positionConstraint( itemId, GetDefaultSpiralRadiusFunction( layoutSize ), mImpl->mItemSpacingRadians, mImpl->mItemDescent, mImpl->mTopItemAlignment ); - Constraint constraint; - if ( orientation == ControlOrientation::Up ) + SpiralPositionConstraint positionConstraint(itemId, GetDefaultSpiralRadiusFunction(layoutSize), mImpl->mItemSpacingRadians, mImpl->mItemDescent, mImpl->mTopItemAlignment); + Constraint constraint; + if(orientation == ControlOrientation::Up) { - constraint = Constraint::New< Vector3 >( actor, Actor::Property::POSITION, positionConstraint, &SpiralPositionConstraint::OrientationUp ); + constraint = Constraint::New(actor, Actor::Property::POSITION, positionConstraint, &SpiralPositionConstraint::OrientationUp); } - else if ( orientation == ControlOrientation::Left ) + else if(orientation == ControlOrientation::Left) { - constraint = Constraint::New< Vector3 >( actor, Actor::Property::POSITION, positionConstraint, &SpiralPositionConstraint::OrientationLeft ); + constraint = Constraint::New(actor, Actor::Property::POSITION, positionConstraint, &SpiralPositionConstraint::OrientationLeft); } - else if ( orientation == ControlOrientation::Down ) + else if(orientation == ControlOrientation::Down) { - constraint = Constraint::New< Vector3 >( actor, Actor::Property::POSITION, positionConstraint, &SpiralPositionConstraint::OrientationDown ); + constraint = Constraint::New(actor, Actor::Property::POSITION, positionConstraint, &SpiralPositionConstraint::OrientationDown); } else // orientation == ControlOrientation::Right { - constraint = Constraint::New< Vector3 >( actor, Actor::Property::POSITION, positionConstraint, &SpiralPositionConstraint::OrientationRight ); + constraint = Constraint::New(actor, Actor::Property::POSITION, positionConstraint, &SpiralPositionConstraint::OrientationRight); } - constraint.AddSource( ParentSource( Toolkit::ItemView::Property::LAYOUT_POSITION ) ); - constraint.AddSource( ParentSource( Actor::Property::SIZE ) ); + constraint.AddSource(ParentSource(Toolkit::ItemView::Property::LAYOUT_POSITION)); + constraint.AddSource(ParentSource(Actor::Property::SIZE)); constraint.Apply(); // Rotation constraint - SpiralRotationConstraint rotationConstraint( itemId, mImpl->mItemSpacingRadians ); - if ( orientation == ControlOrientation::Up ) + SpiralRotationConstraint rotationConstraint(itemId, mImpl->mItemSpacingRadians); + if(orientation == ControlOrientation::Up) { - constraint = Constraint::New< Quaternion >( actor, Actor::Property::ORIENTATION, rotationConstraint, &SpiralRotationConstraint::OrientationUp ); + constraint = Constraint::New(actor, Actor::Property::ORIENTATION, rotationConstraint, &SpiralRotationConstraint::OrientationUp); } - else if ( orientation == ControlOrientation::Left ) + else if(orientation == ControlOrientation::Left) { - constraint = Constraint::New< Quaternion >( actor, Actor::Property::ORIENTATION, rotationConstraint, &SpiralRotationConstraint::OrientationLeft ); + constraint = Constraint::New(actor, Actor::Property::ORIENTATION, rotationConstraint, &SpiralRotationConstraint::OrientationLeft); } - else if ( orientation == ControlOrientation::Down ) + else if(orientation == ControlOrientation::Down) { - constraint = Constraint::New< Quaternion >( actor, Actor::Property::ORIENTATION, rotationConstraint, &SpiralRotationConstraint::OrientationDown ); + constraint = Constraint::New(actor, Actor::Property::ORIENTATION, rotationConstraint, &SpiralRotationConstraint::OrientationDown); } else // orientation == ControlOrientation::Right { - constraint = Constraint::New< Quaternion >( actor, Actor::Property::ORIENTATION, rotationConstraint, &SpiralRotationConstraint::OrientationRight ); + constraint = Constraint::New(actor, Actor::Property::ORIENTATION, rotationConstraint, &SpiralRotationConstraint::OrientationRight); } - constraint.AddSource( ParentSource( Toolkit::ItemView::Property::LAYOUT_POSITION ) ); + constraint.AddSource(ParentSource(Toolkit::ItemView::Property::LAYOUT_POSITION)); constraint.Apply(); // Color constraint - constraint = Constraint::New< Vector4 >( actor, Actor::Property::COLOR, SpiralColorConstraint( itemId, mImpl->mItemSpacingRadians ) ); - constraint.AddSource( ParentSource( Toolkit::ItemView::Property::LAYOUT_POSITION ) ); + constraint = Constraint::New(actor, Actor::Property::COLOR, SpiralColorConstraint(itemId, mImpl->mItemSpacingRadians)); + constraint.AddSource(ParentSource(Toolkit::ItemView::Property::LAYOUT_POSITION)); constraint.SetRemoveAction(Dali::Constraint::DISCARD); constraint.Apply(); // Visibility constraint - SpiralVisibilityConstraint visibilityConstraint( itemId, mImpl->mItemSpacingRadians, mImpl->mItemDescent, mImpl->mTopItemAlignment ); - if (IsVertical( orientation ) ) + SpiralVisibilityConstraint visibilityConstraint(itemId, mImpl->mItemSpacingRadians, mImpl->mItemDescent, mImpl->mTopItemAlignment); + if(IsVertical(orientation)) { - constraint = Constraint::New< bool >( actor, Actor::Property::VISIBLE, visibilityConstraint, &SpiralVisibilityConstraint::Portrait ); + constraint = Constraint::New(actor, Actor::Property::VISIBLE, visibilityConstraint, &SpiralVisibilityConstraint::Portrait); } else // horizontal { - constraint = Constraint::New< bool >( actor, Actor::Property::VISIBLE, visibilityConstraint, &SpiralVisibilityConstraint::Landscape ); + constraint = Constraint::New(actor, Actor::Property::VISIBLE, visibilityConstraint, &SpiralVisibilityConstraint::Landscape); } - constraint.AddSource( ParentSource( Toolkit::ItemView::Property::LAYOUT_POSITION ) ); - constraint.AddSource( ParentSource( Actor::Property::SIZE ) ); + constraint.AddSource(ParentSource(Toolkit::ItemView::Property::LAYOUT_POSITION)); + constraint.AddSource(ParentSource(Actor::Property::SIZE)); constraint.SetRemoveAction(Dali::Constraint::DISCARD); constraint.Apply(); } @@ -503,9 +498,9 @@ void SpiralLayout::ApplyConstraints( Actor& actor, const int itemId, const Vecto void SpiralLayout::SetSpiralLayoutProperties(const Property::Map& properties) { // Set any properties specified for SpiralLayout. - for( unsigned int idx = 0, mapCount = properties.Count(); idx < mapCount; ++idx ) + for(unsigned int idx = 0, mapCount = properties.Count(); idx < mapCount; ++idx) { - KeyValuePair propertyPair = properties.GetKeyValue( idx ); + KeyValuePair propertyPair = properties.GetKeyValue(idx); switch(DefaultItemLayoutProperty::Property(propertyPair.first.indexKey)) { case DefaultItemLayoutProperty::SPIRAL_ITEM_SPACING: @@ -548,26 +543,26 @@ void SpiralLayout::SetSpiralLayoutProperties(const Property::Map& properties) Vector3 SpiralLayout::GetItemPosition(int itemID, float currentLayoutPosition, const Vector3& layoutSize) const { - Vector3 itemPosition = Vector3::ZERO; - const ControlOrientation::Type orientation = GetOrientation(); + Vector3 itemPosition = Vector3::ZERO; + const ControlOrientation::Type orientation = GetOrientation(); - SpiralPositionConstraint positionConstraint( itemID, GetDefaultSpiralRadiusFunction( layoutSize ), mImpl->mItemSpacingRadians, mImpl->mItemDescent, mImpl->mTopItemAlignment ); + SpiralPositionConstraint positionConstraint(itemID, GetDefaultSpiralRadiusFunction(layoutSize), mImpl->mItemSpacingRadians, mImpl->mItemDescent, mImpl->mTopItemAlignment); - if ( orientation == ControlOrientation::Up ) + if(orientation == ControlOrientation::Up) { - positionConstraint.OrientationUp( itemPosition, currentLayoutPosition + itemID, layoutSize ); + positionConstraint.OrientationUp(itemPosition, currentLayoutPosition + itemID, layoutSize); } - else if ( orientation == ControlOrientation::Left ) + else if(orientation == ControlOrientation::Left) { - positionConstraint.OrientationLeft( itemPosition, currentLayoutPosition + itemID, layoutSize ); + positionConstraint.OrientationLeft(itemPosition, currentLayoutPosition + itemID, layoutSize); } - else if ( orientation == ControlOrientation::Down ) + else if(orientation == ControlOrientation::Down) { - positionConstraint.OrientationDown( itemPosition, currentLayoutPosition + itemID, layoutSize ); + positionConstraint.OrientationDown(itemPosition, currentLayoutPosition + itemID, layoutSize); } else //orientation == ControlOrientation::Right { - positionConstraint.OrientationRight( itemPosition, currentLayoutPosition + itemID, layoutSize ); + positionConstraint.OrientationRight(itemPosition, currentLayoutPosition + itemID, layoutSize); } return itemPosition;