2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
5 // Licensed under the Flora License, Version 1.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
9 // http://floralicense.org/license/
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an AS IS BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
18 * @file FUiEffects_RuntimeDirectionalLight.cpp
19 * @brief This file contains an implementation of DirectionalLight class methods
23 #include <FBaseDataType.h>
24 #include <FUiEffects_RuntimeDirectionalLight.h>
26 using namespace Tizen::Ui::Effects::_Utils;
29 namespace Tizen { namespace Ui { namespace Effects { namespace _Runtime
32 DirectionalLight::DirectionalLight(const string& name)
34 , isDirectionChanged(false)
35 , __direction(0.f, 0.f, -1.f)
40 DirectionalLight::DirectionalLight(bool enabled,
44 const Vec3f& direction)
45 : UnitLight(enabled, name, colour, intensity)
46 , isDirectionChanged(false)
47 , __direction(direction)
53 DirectionalLight::~DirectionalLight(void)
59 DirectionalLight::CreateDirectionalLight(const string& name)
61 DirectionalLight* pDirectionalLight = new (std::nothrow) DirectionalLight(name);
62 AddUnitLightToPool(pDirectionalLight);
63 return pDirectionalLight;
67 DirectionalLight::CreateDirectionalLight(bool isEnabled,
71 const Vec3f& direction)
73 DirectionalLight* pDirectionalLight = new (std::nothrow) DirectionalLight(isEnabled,
78 AddUnitLightToPool(pDirectionalLight);
79 return pDirectionalLight;
83 DirectionalLight::GetDirection(void) const
89 DirectionalLight::SetDirection(const Tizen::Ui::Effects::_Utils::Vec3f& direction)
91 SetDirection(direction.x, direction.y, direction.z);
96 DirectionalLight::SetDirection(float x, float y, float z)
98 if (fabs(__direction.x - x) > EFFECT_EPSILONF
99 || fabs(__direction.y - y) > EFFECT_EPSILONF
100 || fabs(__direction.z - z) > EFFECT_EPSILONF)
105 isDirectionChanged = true;
106 isSomethingChanged = true;
112 DirectionalLight::GetType(void) const
114 return TYPE_UNIT_LIGHT_DIRECTIONAL;
118 DirectionalLight::ResetSigns(void)
120 UnitLight::ResetSigns();
121 isDirectionChanged = false;
124 } } } } // Tizen::Ui::Effects::_Runtime