//----------------------------- bool DocumentProcessor::createAndWriteSkinControllers() { Loader::InstanceControllerDataListMap::const_iterator mapIt = mInstanceControllerDataListMap.begin(); for ( ; mapIt != mInstanceControllerDataListMap.end(); ++mapIt ) { const COLLADAFW::UniqueId& skinDataUniqueId = mapIt->first; const Loader::InstanceControllerDataList& instanceControllerDataList = mapIt->second; Loader::InstanceControllerDataList::const_iterator listIt = instanceControllerDataList.begin(); for ( ; listIt != instanceControllerDataList.end(); ++listIt) { const Loader::InstanceControllerData& instanceControllerData = *listIt; const COLLADABU::URI* sourceUrl = getSkinSourceBySkinDataUniqueId( skinDataUniqueId ); if ( !sourceUrl ) { // TODO handle error continue; } const COLLADAFW::UniqueId& sourceUniqueId = getUniqueIdByUrl(*sourceUrl, true); if ( !sourceUniqueId.isValid() ) { // TODO handle error continue; } if ( !createAndWriteSkinController( instanceControllerData, skinDataUniqueId, sourceUniqueId ) ) return false; } } return true; }
//------------------------------ bool LibraryControllersLoader::begin__skin( const skin__AttributeData& attributeData ) { mCurrentControllerType = SKIN_CONTROLLER; mCurrentSkinControllerData = FW_NEW COLLADAFW::SkinControllerData(createUniqueIdFromId(mCurrentControllerId.c_str(), COLLADAFW::SkinControllerData::ID())); mCurrentSkinControllerData->setOriginalId ( mOriginalId ); mCurrentSkinControllerData->setName ( mCurrentControllerName ); mCurrentControllerSourceUniqueId = getUniqueIdByUrl(attributeData.source); COLLADABU::URI absoluteUri(getFileUri(), attributeData.source.getURIString()); addSkinDataSkinSourcePair( mCurrentSkinControllerData->getUniqueId(), absoluteUri); return true; }