2 * Copyright (c) 2017 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.
19 #include <dali/internal/event/common/property-metadata.h>
22 #include <dali/public-api/math/vector2.h>
23 #include <dali/public-api/math/vector3.h>
24 #include <dali/public-api/math/vector4.h>
25 #include <dali/public-api/object/property.h>
33 void PropertyMetadata::SetPropertyValue( const Property::Value& propertyValue )
38 case Property::RECTANGLE:
39 case Property::STRING:
42 case Property::BOOLEAN:
43 case Property::INTEGER:
45 case Property::ROTATION:
46 case Property::MATRIX:
47 case Property::MATRIX3:
49 value = propertyValue;
53 case Property::VECTOR2:
56 value.Get( vector2Value );
58 if( componentIndex == 0 )
60 vector2Value.x = propertyValue.Get< float >();
62 else if( componentIndex == 1 )
64 vector2Value.y = propertyValue.Get< float >();
68 propertyValue.Get( vector2Value );
75 case Property::VECTOR3:
78 value.Get( vector3Value );
80 if( componentIndex == 0 )
82 vector3Value.x = propertyValue.Get< float >();
84 else if( componentIndex == 1 )
86 vector3Value.y = propertyValue.Get< float >();
88 else if( componentIndex == 2 )
90 vector3Value.z = propertyValue.Get< float >();
94 propertyValue.Get( vector3Value );
101 case Property::VECTOR4:
103 Vector4 vector4Value;
104 value.Get( vector4Value );
106 if( componentIndex == 0 )
108 vector4Value.x = propertyValue.Get< float >();
110 else if( componentIndex == 1 )
112 vector4Value.y = propertyValue.Get< float >();
114 else if( componentIndex == 2 )
116 vector4Value.z = propertyValue.Get< float >();
118 else if( componentIndex == 3 )
120 vector4Value.w = propertyValue.Get< float >();
124 propertyValue.Get( vector4Value );
127 value = vector4Value;
133 Property::Value PropertyMetadata::GetPropertyValue() const
135 Property::Value propertyValue;
137 if( !IsAnimatable() )
139 propertyValue = value;
146 case Property::RECTANGLE:
147 case Property::STRING:
148 case Property::ARRAY:
150 case Property::BOOLEAN:
151 case Property::INTEGER:
152 case Property::FLOAT:
153 case Property::MATRIX:
154 case Property::MATRIX3:
155 case Property::ROTATION:
157 propertyValue = value;
161 case Property::VECTOR2:
163 Vector2 vector2Value;
164 value.Get( vector2Value );
166 if( componentIndex == 0 )
168 propertyValue = vector2Value.x;
170 else if( componentIndex == 1 )
172 propertyValue = vector2Value.y;
176 propertyValue = vector2Value;
181 case Property::VECTOR3:
183 Vector3 vector3Value;
184 value.Get( vector3Value );
186 if( componentIndex == 0 )
188 propertyValue = vector3Value.x;
190 else if( componentIndex == 1 )
192 propertyValue = vector3Value.y;
194 else if( componentIndex == 2 )
196 propertyValue = vector3Value.z;
200 propertyValue = vector3Value;
205 case Property::VECTOR4:
207 Vector4 vector4Value;
208 value.Get( vector4Value );
210 if( componentIndex == 0 )
212 propertyValue = vector4Value.x;
214 else if( componentIndex == 1 )
216 propertyValue = vector4Value.y;
218 else if( componentIndex == 2 )
220 propertyValue = vector4Value.z;
222 else if( componentIndex == 3 )
224 propertyValue = vector4Value.w;
228 propertyValue = vector4Value;
235 return propertyValue;
238 } // namespace Internal