[dali_2.3.20] Merge branch 'devel/master'
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / visuals / gradient / radial-gradient.cpp
1 /*
2  * Copyright (c) 2015 Samsung Electronics Co., Ltd.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16  */
17
18 #include "radial-gradient.h"
19
20 namespace Dali
21 {
22 namespace Toolkit
23 {
24 namespace Internal
25 {
26 RadialGradient::RadialGradient(const Vector2& center, float radius)
27 : Gradient()
28 {
29   SetCenterAndRadius(center, radius);
30 }
31
32 RadialGradient::~RadialGradient()
33 {
34 }
35
36 void RadialGradient::SetCenterAndRadius(const Vector2& center, float radius)
37 {
38   mCenter = center;
39   mRadius = radius;
40
41   // Calculate the transform aligning to the circle
42   Matrix3 alignMatrix(mRadius, 0.f, 0.f, 0.f, mRadius, 0.f, mCenter.x, mCenter.y, 1.f);
43   alignMatrix.Invert();
44
45   mAlignmentTransform = alignMatrix;
46 }
47
48 const Vector2& RadialGradient::GetCenter() const
49 {
50   return mCenter;
51 }
52
53 float RadialGradient::GetRadius() const
54 {
55   return mRadius;
56 }
57
58 } // namespace Internal
59
60 } // namespace Toolkit
61
62 } // namespace Dali