2 * Copyright (c) 2015 Samsung Electronics Co., Ltd.
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
18 #include "linear-gradient.h"
26 LinearGradient::LinearGradient(const Vector2& startPosition, const Vector2& endPosition)
29 SetStartAndEndPosition(startPosition, endPosition);
32 LinearGradient::~LinearGradient()
36 void LinearGradient::SetStartAndEndPosition(const Vector2& startPosition, const Vector2& endPosition)
38 mStartPosition = startPosition;
39 mEndPosition = endPosition;
41 // Calculate the transform aligning to the gradient line
42 float dx = mEndPosition.x - mStartPosition.x;
43 float dy = mEndPosition.y - mStartPosition.y;
44 Matrix3 alignMatrix(dy, -dx, 0.f, dx, dy, 0.f, mStartPosition.x, mStartPosition.y, 1.f);
47 mAlignmentTransform = alignMatrix;
50 const Vector2& LinearGradient::GetStartPosition() const
52 return mStartPosition;
55 const Vector2& LinearGradient::GetEndPosition() const
60 } // namespace Internal
62 } // namespace Toolkit