2
Copyright (c) 2008-2009 NetAllied Systems GmbH
4
This file is part of DAE2MA.
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
11
#include "DAE2MAStableHeaders.h"
12
#include "DAE2MAExtraDataCallbackHandler.h"
14
#include "generated14/COLLADASaxFWLColladaParserAutoGen14Attributes.h"
20
//------------------------------
21
ExtraDataCallbackHandler::ExtraDataCallbackHandler()
22
: mIsOriginalIdField (false)
26
//------------------------------
27
ExtraDataCallbackHandler::~ExtraDataCallbackHandler()
31
//------------------------------
32
const ExtraInfo* ExtraDataCallbackHandler::findExtraInfo (
33
const COLLADAFW::UniqueId& uniqueId,
34
const StringHash& hashElement ) const
36
ExtraInfosMap::const_iterator it = mExtraInfos.find ( uniqueId );
37
if ( it != mExtraInfos.end () )
39
const std::vector<ExtraInfo>& extraInfos = it->second;
40
size_t numInfos = extraInfos.size ();
41
for ( size_t i=0; i<numInfos; ++i )
43
if ( extraInfos[i].getElementHash () == hashElement )
44
return &extraInfos[i];
50
//------------------------------
51
bool ExtraDataCallbackHandler::parseElement (
52
const GeneratedSaxParser::ParserChar* profileName,
53
const StringHash& elementHash,
54
const COLLADAFW::UniqueId& uniqueId,
55
COLLADAFW::Object* object )
57
if ( COLLADABU::Utils::equals ( PROFILE_MAYA, profileName ) )
59
mCurrentExtraInfo.setElementHash ( elementHash );
60
mCurrentExtraInfo.setUniqueId ( uniqueId );
67
//------------------------------
68
bool ExtraDataCallbackHandler::elementBegin ( const GeneratedSaxParser::ParserChar* elementName, const GeneratedSaxParser::xmlChar** attributes )
70
if ( COLLADABU::Utils::equals ( PARAMETER_MAYA_ID, String (elementName) ) )
72
mIsOriginalIdField = true;
78
//------------------------------
79
bool ExtraDataCallbackHandler::elementEnd ( const GeneratedSaxParser::ParserChar* elementName )
81
if ( mIsOriginalIdField )
83
mIsOriginalIdField = false;
84
mExtraInfos [mCurrentExtraInfo.getUniqueId ()].push_back ( mCurrentExtraInfo );
85
mCurrentExtraInfo.setOriginalMayaId ( EMPTY_STRING );
91
//------------------------------
92
bool ExtraDataCallbackHandler::textData ( const GeneratedSaxParser::ParserChar* text, size_t textLength )
94
if ( mIsOriginalIdField )
96
mCurrentExtraInfo.setOriginalMayaId ( text, textLength );
101
} // namespace DAE2MA