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_PeElementSurface.h
19 * @brief This is the header file for the ElementSurface class
22 #ifndef _FUI_EFFECTS_INTERNAL_PE_ELEMENTSURFACE_H_
23 #define _FUI_EFFECTS_INTERNAL_PE_ELEMENTSURFACE_H_
26 #include "FUiEffects_RuntimeModel.h"
27 #include "FUiEffects_RuntimePropertyCast.h"
29 namespace Tizen { namespace Ui { namespace Effects { namespace _PhysicsEngine
33 * @class ElementSurface
34 * @brief Abstract class for all physics model elements
47 * @param[in] objId physical element's id. Must be unique for all objects
50 ElementSurface(long objId);
58 virtual ~ElementSurface(void);
61 * Sets object into the initial state
66 virtual void Initialize(void) = 0;
69 * Performs calculation step with given delta time
73 * @param[in] timeStep simulation time step
76 virtual void Calculate(float timeStep) = 0;
86 long GetId(void) const;
93 * @return enum value that corresponds to object's type
96 virtual Tizen::Ui::Effects::_Runtime::ESurface GetType(void) const = 0;
99 * Gets element property value
103 * @return struct that contains property type and value
104 * @param[in] property enum value for necessary property
107 virtual Tizen::Ui::Effects::_Runtime::PropertyCast GetProperty(
108 Tizen::Ui::Effects::_Runtime::ElementProperty property
112 * Sets element bool property values
116 * @return true if set successful, false if failed
117 * @param[in] property property name
118 * @param[in] boolValue new bool value for property
121 virtual bool SetProperty(
122 Tizen::Ui::Effects::_Runtime::ElementProperty property,
127 * Sets element numeric property values
131 * @return true if set successful, false if failed
132 * @param[in] property property name
133 * @param[in] numericValue new numeric value for property
136 virtual bool SetProperty(
137 Tizen::Ui::Effects::_Runtime::ElementProperty property,
138 LUA_NUMBER numericValue
142 * Sets element vector property values
146 * @return true if set successful, false if failed
147 * @param[in] property property name
148 * @param[in] vectorValue new vector value for property
151 virtual bool SetProperty(
152 Tizen::Ui::Effects::_Runtime::ElementProperty property,
153 const Tizen::Ui::Effects::_Utils::Vec3f &vectorValue
158 * Hidden copy constructor
163 ElementSurface(const ElementSurface &rhs) : __objId(0)
168 * Hidden assignment operator
173 ElementSurface& operator=(const ElementSurface &rhs) ;
185 } } } } // Tizen::Ui::Effects::_PhysicsEngine
187 #endif // _FUI_EFFECTS_INTERNAL_PE_ELEMENTSURFACE_H_