X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-scene3d%2Fpublic-api%2Floader%2Fscene-definition.cpp;h=f41422e1580265f632f7c2c82ed779c3cf97dc12;hb=e4c8362431523550a745b190c67c0c8e3f25ac4d;hp=a117e1ef950d03e4a3fc8ea2e5c44fa2841c03e2;hpb=92440595066877ace09a343f87ee875a927732b4;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-scene3d/public-api/loader/scene-definition.cpp b/dali-scene3d/public-api/loader/scene-definition.cpp index a117e1e..f41422e 100644 --- a/dali-scene3d/public-api/loader/scene-definition.cpp +++ b/dali-scene3d/public-api/loader/scene-definition.cpp @@ -45,7 +45,7 @@ namespace Loader { namespace { -const std::string JOINT_MATRIX{"jointMatrix"}; +const char* JOINT_MATRIX{"jointMatrix"}; const std::map sConstraintFactory = { {Property::Type::BOOLEAN, @@ -164,7 +164,7 @@ void AddJointDebugVisual(Actor aJoint) } #endif //DEBUG_JOINTS -class ActorCreatorVisitor : public NodeDefinition::IConstVisitor +class ActorCreatorVisitor : public NodeDefinition::IVisitor { public: ActorCreatorVisitor(NodeDefinition::CreateParams& params) @@ -172,7 +172,7 @@ public: { } - void Start(const NodeDefinition& n) + void Start(NodeDefinition& n) { mCreationContext.mXforms.modelStack.Push(n.GetLocalSpace()); @@ -188,7 +188,7 @@ public: mActorStack.push_back(a); } - void Finish(const NodeDefinition& n) + void Finish(NodeDefinition& n) { mActorStack.pop_back(); mCreationContext.mXforms.modelStack.Pop(); @@ -305,7 +305,7 @@ void ConfigureBoneMatrix(const Matrix& ibm, Actor joint, Shader& shader, Index& { // Register bone transform on shader. char propertyNameBuffer[32]; - snprintf(propertyNameBuffer, sizeof(propertyNameBuffer), "%s[%d]", Skinning::BONE_UNIFORM_NAME.c_str(), boneIdx); + snprintf(propertyNameBuffer, sizeof(propertyNameBuffer), "%s[%d]", Skinning::BONE_UNIFORM_NAME, boneIdx); DALI_ASSERT_DEBUG(shader.GetPropertyIndex(propertyNameBuffer) == Property::INVALID_INDEX); auto propBoneXform = shader.RegisterProperty(propertyNameBuffer, Matrix{false}); @@ -422,7 +422,11 @@ const NodeDefinition* SceneDefinition::GetNode(Index iNode) const 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) @@ -469,7 +473,7 @@ void SceneDefinition::CountResourceRefs(Index iNode, const Customization::Choice Visit(iNode, choices, refCounterVisitor); } -Actor SceneDefinition::CreateNodes(Index iNode, const Customization::Choices& choices, NodeDefinition::CreateParams& params) const +Actor SceneDefinition::CreateNodes(Index iNode, const Customization::Choices& choices, NodeDefinition::CreateParams& params) { ActorCreatorVisitor actorCreatorVisitor(params); @@ -526,11 +530,6 @@ void SceneDefinition::GetCustomizationOptions(const Customization::Choices& choi NodeDefinition* SceneDefinition::AddNode(std::unique_ptr&& nodeDef) { - if(!nodeDef->mName.empty() && FindNode(nodeDef->mName)) - { - return nullptr; - } - // add next index (to which we're about to push) as a child to the designated parent, if any. if(nodeDef->mParentIdx != INVALID_INDEX) { @@ -962,7 +961,7 @@ void SceneDefinition::ConfigureSkeletonJoints(uint32_t iRoot, const SkeletonDefi } // 3, For each root, register joint matrices and constraints - for(auto r : rootsJoints) + for(const auto& r : rootsJoints) { auto node = GetNode(r.first); auto rootJoint = root.FindChildByName(node->mName); @@ -977,7 +976,7 @@ void SceneDefinition::ConfigureSkeletonJoints(uint32_t iRoot, const SkeletonDefi constraint.AddSource(Source(rootJoint, Actor::Property::POSITION)); constraint.Apply(); - for(auto j : r.second) + for(const auto j : r.second) { node = GetNode(j); auto joint = rootJoint.FindChildByName(node->mName);