1 #ifndef DALI_DEMO_RADIAL_SWEEP_VIEW_IMPL_H
2 #define DALI_DEMO_RADIAL_SWEEP_VIEW_IMPL_H
5 * Copyright (c) 2015 Samsung Electronics Co., Ltd.
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
21 #include <dali-toolkit/dali-toolkit.h>
22 #include "radial-sweep-view.h"
25 /********************************************************************************
26 * Class to implement a layer with a radial sweep stencil mask and an actor tree
28 class RadialSweepViewImpl : public Dali::Toolkit::Internal::Control
31 static RadialSweepView New();
33 static RadialSweepView New( float duration,
35 Dali::Radian initialAngle,
36 Dali::Radian finalAngle,
37 Dali::Radian initialSector,
38 Dali::Radian finalSector );
40 RadialSweepViewImpl( float duration,
42 Dali::Radian initialAngle,
43 Dali::Radian finalAngle,
44 Dali::Radian initialSector,
45 Dali::Radian finalSector );
47 void SetDuration(float duration);
48 void SetEasingFunction( Dali::AlphaFunction easingFunction );
50 void SetDiameter(float diameter);
51 void SetInitialAngle( Dali::Radian initialAngle);
52 void SetFinalAngle( Dali::Radian finalAngle);
53 void SetInitialSector( Dali::Radian initialSector);
54 void SetFinalSector( Dali::Radian finalSector);
55 void SetInitialActorAngle( Dali::Radian initialAngle );
56 void SetFinalActorAngle( Dali::Radian finalAngle );
60 Dali::Radian GetInitialAngle( );
61 Dali::Radian GetFinalAngle( );
62 Dali::Radian GetInitialSector( );
63 Dali::Radian GetFinalSector( );
64 Dali::Radian GetInitialActorAngle( );
65 Dali::Radian GetFinalActorAngle( );
67 void RotateActorsWithStencil(bool rotate);
69 void Add( Dali::Actor actor );
71 void Activate( Dali::Animation anim = Dali::Animation(), float offsetTime=0, float duration=2.0f );
78 * Create the stencil mask
80 void CreateStencil(Dali::Radian initialSector );
84 Dali::Animation mAnim;
87 Dali::Radian mInitialAngle;
88 Dali::Radian mFinalAngle;
89 Dali::Radian mInitialSector;
90 Dali::Radian mFinalSector;
91 Dali::Radian mInitialActorAngle;
92 Dali::Radian mFinalActorAngle;
93 Dali::AlphaFunction mEasingFunction;
94 Dali::Actor mStencilActor; ///< Stencil actor which generates mask
95 Dali::Property::Index mStartAngleIndex; ///< Index of start-angle property
96 Dali::Property::Index mRotationAngleIndex; ///< Index of rotation-angle property
97 bool mRotateActorsWithStencil:1;
102 inline RadialSweepViewImpl& GetImpl( RadialSweepView& obj )
104 DALI_ASSERT_ALWAYS(obj);
105 Dali::RefObject& handle = obj.GetImplementation();
106 return static_cast<RadialSweepViewImpl&>(handle);
109 inline const RadialSweepViewImpl& GetImpl( const RadialSweepView& obj )
111 DALI_ASSERT_ALWAYS(obj);
112 const Dali::RefObject& handle = obj.GetImplementation();
113 return static_cast<const RadialSweepViewImpl&>(handle);
118 #endif // DALI_DEMO_RADIAL_SWEEP_VIEW_IMPL_H