Пример #1
0
SceneNode* SceneNode::Clone(SceneNode *dstNode)
{
    if (!dstNode) 
    {
        dstNode = new SceneNode(scene);
    }
    dstNode->visible = visible;
    dstNode->defaultLocalTransform = defaultLocalTransform;
    
    dstNode->localTransform = localTransform;
    dstNode->worldTransform = worldTransform;
    dstNode->name = name;
    dstNode->tag = tag;
    dstNode->debugFlags = debugFlags;

//    Logger::Debug("Node %s clonned", name.c_str());
    
    dstNode->nodeAnimations = nodeAnimations;
    
    
//    Logger::Debug("Children +++++++++++++++++++++++++++++++");
    std::vector<SceneNode*>::iterator it = childs.begin();
    
    std::vector<SceneNode*>::iterator childsEnd = childs.end();
    for(; it != childsEnd; it++)
    {
        SceneNode *n = (*it)->Clone();
        dstNode->AddNode(n);
        n->Release();
    }
//    Logger::Debug("Children -------------------------------");
    
    return dstNode;
}
Пример #2
0
void SceneNode::RemoveAllChildren()
{
	for (std::vector<SceneNode*>::iterator t = childs.begin(); t != childs.end(); ++t)
	{
        SceneNode *node = *t;
        node->SetParent(0);
        node->Release();
	}
	childs.clear();
}