void
ColladaNode::handleInstanceNode(domInstance_node *instNode,
                                InstData         &instData)
{
    ColladaInstanceNodeRefPtr colInstNode =
        getUserDataAs<ColladaInstanceNode>(instNode);
    ColladaInstInfoRefPtr     colInstInfo =
        ColladaNodeInstInfo::create(this, colInstNode, instData._bottomN);

    Node *childN = colInstNode->getTargetElem()->createInstance(colInstInfo);

    appendChild(colInstNode->getTargetDOMElem(), childN, instData);
}
void
ColladaNode::readInstanceNode(domInstance_node *instNode)
{
    ColladaInstanceNodeRefPtr colInstNode =
        getUserDataAs<ColladaInstanceNode>(instNode);

    if(colInstNode == NULL)
    {
        colInstNode = dynamic_pointer_cast<ColladaInstanceNode>(
            ColladaElementFactory::the()->create(instNode, getGlobal()));

        colInstNode->read(this);
    }
}
void
ColladaNode::handleInstanceNode(domInstance_node *instNode)
{
    ColladaInstanceNodeRefPtr colInstNode =
        getUserDataAs<ColladaInstanceNode>(instNode);

    if(colInstNode == NULL)
    {
        colInstNode = dynamic_pointer_cast<ColladaInstanceNode>(
            ColladaElementFactory::the()->create(instNode, getGlobal()));

        colInstNode->read();
    }

    NodeUnrecPtr childN = colInstNode->process(this);

    appendChild(childN);
}