const char* TEST_GLTF_ANIMATION_TEST_FILE_NAME = TEST_RESOURCE_DIR "/animationTest.gltf";
const char* TEST_GLTF_MULTIPLE_PRIMITIVE_FILE_NAME = TEST_RESOURCE_DIR "/simpleMultiplePrimitiveTest.gltf";
const char* TEST_DLI_FILE_NAME = TEST_RESOURCE_DIR "/arc.dli";
+const char* TEST_DLI_EXERCISE_FILE_NAME = TEST_RESOURCE_DIR "/exercise.dli";
/**
* For the diffuse and specular cube map texture.
* These textures are based off version of Wave engine sample
END_TEST;
}
+int UtcDaliModelAnimation03(void)
+{
+ ToolkitTestApplication application;
+
+ Scene3D::Model model = Scene3D::Model::New(TEST_DLI_EXERCISE_FILE_NAME);
+ model.SetProperty(Dali::Actor::Property::SIZE, Vector2(50, 50));
+
+ application.GetScene().Add(model);
+
+ application.SendNotification();
+ application.Render();
+
+ uint32_t animationCount = model.GetAnimationCount();
+ DALI_TEST_EQUALS(18, animationCount, TEST_LOCATION);
+
+ Animation animationByIndex = model.GetAnimation(0u);
+ DALI_TEST_CHECK(animationByIndex);
+
+ Animation animationByName = model.GetAnimation("idleClip");
+ DALI_TEST_CHECK(animationByName);
+ DALI_TEST_EQUALS(animationByIndex, animationByName, TEST_LOCATION);
+
+ END_TEST;
+}
+
int UtcDaliModelMultiplePrimitives(void)
{
ToolkitTestApplication application;
if(!animations.empty())
{
- auto getActor = [&](const Scene3D::Loader::AnimatedProperty& property) {
- return mModelRoot.FindChildById(scene.GetNode(property.mNodeIndex)->mNodeId);
+ auto getActor = [&](const Scene3D::Loader::AnimatedProperty& property)
+ {
+ Dali::Actor actor;
+ if(property.mNodeIndex != Scene3D::Loader::INVALID_INDEX)
+ {
+ auto* node = scene.GetNode(property.mNodeIndex);
+ if(node != nullptr)
+ {
+ actor = mModelRoot.FindChildById(node->mNodeId);
+ }
+ }
+ else
+ {
+ actor = mModelRoot.FindChildByName(property.mNodeName);
+ }
+ return actor;
};
mAnimations.clear();
NodeDefinition* SceneDefinition::GetNode(Index iNode)
{
- return mNodes[iNode].get();
+ if(iNode != Scene3D::Loader::INVALID_INDEX && iNode < mNodes.size())
+ {
+ return mNodes[iNode].get();
+ }
+ return nullptr;
}
void SceneDefinition::Visit(Index iNode, const Customization::Choices& choices, NodeDefinition::IVisitor& v)