Example #1
0
Node::NodeSP SceneLoader::_LoadElement(const QDomElement& og_element, Node::NodeSP dt_node)
{    
    QString name = og_element.nodeName();
    Node::NodeSP node = nullptr;

    if(name == SL_LIGHT)
    {
        node = _LoadLight(og_element, dt_node);                   //Light
    }
    else if(name == SL_CAMERA)
    {
        node = _LoadCamera(og_element, dt_node);                  //Camera
    }
    else if(name == SL_SOUND)
    {
        node = _LoadSound(og_element, dt_node);                   //Sound
    }
    else if(name == SL_NODE)
    {
        if(og_element.firstChildElement(SL_ENTITY).isNull() && og_element.firstChildElement(SL_PLANE).isNull())
        {
            node = _LoadNode(og_element, dt_node);                //Node
        }
        else
        {
            node = _LoadMesh(og_element, dt_node);                //Mesh
        }
    }
    return node;
}
Example #2
0
void ModelImporter_Impl::_LoadChildNodes(ModelNode* parentNode, aiNode** children)
{
	parentNode->Nodes = new ModelNode[parentNode->numChildren];

	for (unsigned int i = 0; i < parentNode->numChildren; ++i)
	{
		auto myChildNode = &parentNode->Nodes[i];
		myChildNode->ParentNode = parentNode;

		auto childNode = children[i];

		_LoadNode(myChildNode, childNode);
	}
}
Example #3
0
void ModelImporter_Impl::_LoadRootNode(ModelScene* scene, const aiScene* aiscene)
{
	if (scene == NULL || aiscene == NULL)
		return;

	ModelNode* myRootNode = NULL;

	aiNode* rootNode = aiscene->mRootNode;

	if (rootNode)
	{
		scene->RootNode = new ModelNode();
		auto myRootNode = scene->RootNode;
		myRootNode->ParentNode = NULL;

		_LoadNode(myRootNode, rootNode);
	}
}