Tizen 2.1 base
[framework/osp/uifw.git] / src / ui / effects / inc / FUiEffects_RuntimePointLight.h
1 //
2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
4 //
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
8 //
9 //     http://floralicense.org/license/
10 //
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.
16 //
17 /**
18  * @file        FUiEffects_RuntimePointLight.h
19  * @brief               This is the header file for a point light
20  */
21
22 #ifndef _FUI_EFFECTS_INTERNAL_RUNTIME_POINT_LIGHT_H_
23 #define _FUI_EFFECTS_INTERNAL_RUNTIME_POINT_LIGHT_H_
24
25 #include <string>
26 #include <utils/FUiEffects_Utils.h>
27 #include <FUiEffects_RuntimeUnitLight.h>
28
29 namespace Tizen { namespace Ui { namespace Effects { namespace _Runtime
30 {
31
32 //tolua_begin                           <--(!do not edit!)the beginning of export part to lua
33 class PointLight
34         : public UnitLight
35 {
36 //tolua_end                                     <--(!do not edit!)the ending of export part to lua
37 public:
38
39         /**
40          * Returns a pointer to created point light
41          *
42          * @since 2.0
43          *
44          */
45         static PointLight* CreatePointLight(const std::string& name);
46 #if 0
47         static PointLight* CreatePointLight(const string& name);                //tolua_export          <--(!do not edit!)the exporting line to lua
48 #endif
49
50         /**
51          * Returns a pointer to created point light
52          *
53          * @since 2.0
54          *
55          */
56         static PointLight* CreatePointLight(bool enabled,
57                                                                                 const std::string& name,
58                                                                                 const Tizen::Ui::Effects::_Utils::Vec3f& colour,
59                                                                                 float intensity,
60                                                                                 const Tizen::Ui::Effects::_Utils::Vec3f& position);
61
62         /**
63          * Returns a position of a point light
64          *
65          * @since 2.0
66          *
67          */
68         const Tizen::Ui::Effects::_Utils::Vec3f& GetPosition(void) const;
69 #if 0
70         const Vector3& GetPosition(void) const;                                                 //tolua_export          <--(!do not edit!)the exporting line to lua
71 #endif
72
73         /**
74          * Sets a position for a point light
75          *
76          * @since 2.0
77          *
78          */
79         void SetPosition(const Tizen::Ui::Effects::_Utils::Vec3f& position);
80 #if 0
81         void SetPosition(const Vector3& position);                                              //tolua_export          <--(!do not edit!)the exporting line to lua
82 #endif
83
84         /**
85          * Sets a position for a point light
86          *
87          * @since 2.0
88          *
89          */
90         void SetPosition(float x, float y, float z);                                    //tolua_export          <--(!do not edit!)the exporting line to lua
91
92         /**
93          * Returns a type of a point light as variable of enumeration type
94          *
95          * @since 2.0
96          *
97          */
98         virtual TypeUnitLight GetType(void) const;
99
100         /**
101          * Resets all signs for this instance of class (e.g. isPositionChanged, isColourChanged)
102          *
103          * @since 2.0
104          *
105          */
106         virtual void ResetSigns(void);
107
108 protected:
109
110         /**
111          * Class constructor
112          *
113          * @since 2.0
114          *
115          * @remarks             Clients of this class can create PointLight objects with using Create methods only
116          *
117          */
118         PointLight(const std::string& name);
119
120         /**
121          * Class constructor
122          *
123          * @since 2.0
124          *
125          * @remarks             Clients of this class can create PointLight objects with using Create methods only
126          *
127          */
128         PointLight(bool enabled,
129                                 const std::string& name,
130                                 const Tizen::Ui::Effects::_Utils::Vec3f& colour,
131                                 float intensity,
132                                 const Tizen::Ui::Effects::_Utils::Vec3f& position
133                                 );
134
135         /**
136          * Class destructor
137          *
138          * @since 2.0
139          *
140          * @remarks             Clients of this class can not destroy instances of this class (for purpose to avoid the sending an invalid unit light into scene)
141          *
142          */
143         virtual ~PointLight(void);
144
145 private:
146
147         // The implementation of this copy constructor is intentionally blank and declared as private to prohibit copying of objects.
148         PointLight(const PointLight& rhs);
149         // The implementation of this assignment operator is intentionally blank and declared as private to prohibit copying of objects.
150         PointLight& operator=(const PointLight& rhs);
151
152 public:
153
154         bool isPositionChanged;
155
156 private:
157
158         Tizen::Ui::Effects::_Utils::Vec3f __position;           /**< position of a point light on a scene (scene's coordinates) */
159
160 };      //PointLight            //tolua_export          <--(!do not edit!)the exporting line to lua
161
162 } } } } // Tizen::Ui::Effects::_Runtime
163
164 #endif // _FUI_EFFECTS_INTERNAL_RUNTIME_POINT_LIGHT_H_