DALI_TEST_EQUALS( indices.size(), light.GetPropertyCount(), TEST_LOCATION );
END_TEST;
}
+
+namespace
+{
+
+struct PropertyDetails
+{
+ Property::Index index;
+ std::string name;
+ Property::Type type;
+};
+
+const PropertyDetails DEFAULT_LIGHT_ACTOR_PROPERTY_DETAILS[] =
+{
+ // Index Name Type
+ { LightActor::LIGHT_TYPE, "light-type", Property::STRING },
+ { LightActor::ENABLE, "enable", Property::BOOLEAN },
+ { LightActor::FALL_OFF, "fall-off", Property::VECTOR2 },
+ { LightActor::SPOT_ANGLE, "spot-angle", Property::VECTOR2 },
+ { LightActor::AMBIENT_COLOR, "ambient-color", Property::VECTOR3 },
+ { LightActor::DIFFUSE_COLOR, "diffuse-color", Property::VECTOR3 },
+ { LightActor::SPECULAR_COLOR, "specular-color", Property::VECTOR3 },
+ { LightActor::DIRECTION, "direction", Property::VECTOR3 },
+};
+const int DEFAULT_LIGHT_ACTOR_PROPERTY_COUNT = sizeof( DEFAULT_LIGHT_ACTOR_PROPERTY_DETAILS ) / sizeof( PropertyDetails );
+} // unnamed namespace
+
+int UtcDaliLightActorProperties(void)
+{
+ TestApplication application;
+ Actor basicActor = Actor::New();
+ LightActor light = LightActor::New();
+
+ Property::IndexContainer indices;
+ light.GetPropertyIndices( indices );
+ DALI_TEST_EQUALS( DEFAULT_LIGHT_ACTOR_PROPERTY_COUNT, indices.size() - basicActor.GetPropertyCount(), TEST_LOCATION );
+
+ for ( int i = 0; i < DEFAULT_LIGHT_ACTOR_PROPERTY_COUNT; ++i )
+ {
+ tet_printf( "Checking: %s\n", DEFAULT_LIGHT_ACTOR_PROPERTY_DETAILS[i].name.c_str() );
+ DALI_TEST_EQUALS( light.GetPropertyIndex( DEFAULT_LIGHT_ACTOR_PROPERTY_DETAILS[i].name ), DEFAULT_LIGHT_ACTOR_PROPERTY_DETAILS[i].index, TEST_LOCATION );
+ DALI_TEST_EQUALS( light.GetPropertyName( DEFAULT_LIGHT_ACTOR_PROPERTY_DETAILS[i].index ), DEFAULT_LIGHT_ACTOR_PROPERTY_DETAILS[i].name, TEST_LOCATION );
+ DALI_TEST_EQUALS( light.GetPropertyType( DEFAULT_LIGHT_ACTOR_PROPERTY_DETAILS[i].index ), DEFAULT_LIGHT_ACTOR_PROPERTY_DETAILS[i].type, TEST_LOCATION );
+ DALI_TEST_EQUALS( light.IsPropertyWritable( DEFAULT_LIGHT_ACTOR_PROPERTY_DETAILS[i].index ), true, TEST_LOCATION );
+ DALI_TEST_EQUALS( light.IsPropertyAnimatable( DEFAULT_LIGHT_ACTOR_PROPERTY_DETAILS[i].index ), false, TEST_LOCATION );
+ DALI_TEST_EQUALS( light.IsPropertyAConstraintInput( DEFAULT_LIGHT_ACTOR_PROPERTY_DETAILS[i].index ), true, TEST_LOCATION );
+ }
+ END_TEST;
+}
TypeRegistration mType( typeid(Dali::LightActor), typeid(Dali::Actor), Create );
-const std::string DEFAULT_LIGHT_ACTOR_PROPERTY_NAMES[] =
+const Internal::PropertyDetails DEFAULT_LIGHT_ACTOR_PROPERTY_DETAILS[] =
{
- "light-type",
- "enable",
- "fall-off",
- "spot-angle",
- "ambient-color",
- "diffuse-color",
- "specular-color",
- "direction"
+ // Name Type writable animatable constraint-input
+ { "light-type", Property::STRING, true, false, true }, // LIGHT_TYPE
+ { "enable", Property::BOOLEAN, true, false, true }, // ENABLE
+ { "fall-off", Property::VECTOR2, true, false, true }, // FALL_OFF
+ { "spot-angle", Property::VECTOR2, true, false, true }, // SPOT_ANGLE
+ { "ambient-color", Property::VECTOR3, true, false, true }, // AMBIENT_COLOR
+ { "diffuse-color", Property::VECTOR3, true, false, true }, // DIFFUSE_COLOR
+ { "specular-color", Property::VECTOR3, true, false, true }, // SPECULAR_COLOR
+ { "direction", Property::VECTOR3, true, false, true }, // DIRECTION
};
-const int DEFAULT_LIGHT_ACTOR_PROPERTY_COUNT = sizeof( DEFAULT_LIGHT_ACTOR_PROPERTY_NAMES ) / sizeof( std::string );
-
-const Property::Type DEFAULT_LIGHT_ACTOR_PROPERTY_TYPES[DEFAULT_LIGHT_ACTOR_PROPERTY_COUNT] =
-{
- Property::STRING, // "light-type",
- Property::VECTOR2, // "enable",
- Property::VECTOR2, // "fall-off",
- Property::VECTOR2, // "spot-angle",
- Property::VECTOR3, // "ambient-color",
- Property::VECTOR3, // "diffuse-color",
- Property::VECTOR3, // "specular-color",
- Property::VECTOR3, // "direction",
-};
-
+const int DEFAULT_LIGHT_ACTOR_PROPERTY_COUNT = sizeof( DEFAULT_LIGHT_ACTOR_PROPERTY_DETAILS ) / sizeof( Internal::PropertyDetails );
LightType LightTypeEnum(const std::string &stringValue)
{
const int start = DEFAULT_ACTOR_PROPERTY_MAX_COUNT;
for ( int i = 0; i < DEFAULT_LIGHT_ACTOR_PROPERTY_COUNT; ++i )
{
- (*mDefaultLightActorPropertyLookup)[DEFAULT_LIGHT_ACTOR_PROPERTY_NAMES[i]] = i + start;
+ (*mDefaultLightActorPropertyLookup)[DEFAULT_LIGHT_ACTOR_PROPERTY_DETAILS[i].name] = i + start;
}
LightActor::mFirstInstance = false ;
}
if ( ( index >= 0 ) && ( index < DEFAULT_LIGHT_ACTOR_PROPERTY_COUNT ) )
{
- return DEFAULT_LIGHT_ACTOR_PROPERTY_TYPES[index];
+ return DEFAULT_LIGHT_ACTOR_PROPERTY_DETAILS[index].type;
}
else
{
if ( ( index >= 0 ) && ( index < DEFAULT_LIGHT_ACTOR_PROPERTY_COUNT ) )
{
- return DEFAULT_LIGHT_ACTOR_PROPERTY_NAMES[index];
+ return DEFAULT_LIGHT_ACTOR_PROPERTY_DETAILS[index].name;
}
else
{