1 /*
2     Copyright (c) 2008-2009 NetAllied Systems GmbH
3 
4     This file is part of COLLADASaxFrameworkLoader.
5 
6     Licensed under the MIT Open Source License,
7     for details please see LICENSE file or the website
8     http://www.opensource.org/licenses/mit-license.php
9 */
10 
11 #include "COLLADASaxFWLStableHeaders.h"
12 #include "COLLADASaxFWLLibraryNodesLoader.h"
13 #include "COLLADASaxFWLFileLoader.h"
14 
15 #include "COLLADAFWIWriter.h"
16 #include "COLLADAFWLibraryNodes.h"
17 
18 
19 namespace COLLADASaxFWL
20 {
21 
22     //------------------------------
LibraryNodesLoader(IFilePartLoader * callingFilePartLoader)23 	LibraryNodesLoader::LibraryNodesLoader(IFilePartLoader* callingFilePartLoader)
24 		: FilePartLoader(callingFilePartLoader),
25 		mLibraryNodes(new COLLADAFW::LibraryNodes())
26 	{
27 		NodeLoader::setHandlingFilePartLoader(this);
28 	}
29 
30     //------------------------------
~LibraryNodesLoader()31 	LibraryNodesLoader::~LibraryNodesLoader()
32 	{
33 	}
34 
35     //------------------------------
getUniqueId()36     const COLLADAFW::UniqueId& LibraryNodesLoader::getUniqueId ()
37     {
38         if ( !mNodeStack.empty() )
39             return mNodeStack.top()->getUniqueId();
40         return COLLADAFW::UniqueId::INVALID;
41     }
42 
43     //------------------------------
handleRootNode(COLLADAFW::Node * rootNode)44 	void LibraryNodesLoader::handleRootNode( COLLADAFW::Node* rootNode )
45 	{
46 		mLibraryNodes->getNodes().append(rootNode);
47 	}
48 
49 	//------------------------------
begin__node(const node__AttributeData & attributeData)50 	bool LibraryNodesLoader::begin__node( const node__AttributeData& attributeData )
51 	{
52 		return beginNode(attributeData);
53 	}
54 
55 	//------------------------------
end__node()56 	bool LibraryNodesLoader::end__node()
57 	{
58 		return endNode();
59 	}
60 
61 	//------------------------------
end__library_nodes()62 	bool LibraryNodesLoader::end__library_nodes()
63 	{
64 		moveUpInSidTree();
65 		getFileLoader()->addLibraryNodes(mLibraryNodes);
66 		finish();
67 		return true;
68 	}
69 
70 } // namespace COLLADASaxFWL
71