//------------------------------
	bool LibraryControllersLoader::end__morph()
	{
		if ( mCurrentMorphController )
		{
			addMorphController( mCurrentMorphController );
		}
		mJointSidsMap.clear();
		mJointSidsOrIds = 0;
		mCurrentMorphController = 0;
		mCurrentControllerSourceUniqueId = COLLADAFW::UniqueId::INVALID;
		mCurrentControllerType = UNKNOWN_CONTROLLER;
		return true;
	}
	//------------------------------
	bool ControllerImporter::import()
	{
		if ( mController->getControllerType() == COLLADAFW::Controller::CONTROLLER_TYPE_SKIN )
		{
			const COLLADAFW::SkinController* skinController = (const COLLADAFW::SkinController*)mController;
			const COLLADAFW::UniqueId& controllerDataUniqueId = skinController->getSkinControllerData();
			if ( controllerDataUniqueId.isValid() )
			{
				COLLADAFW::SkinController* clonedSkinController = new COLLADAFW::SkinController(*skinController);
				addUniqueIdControllerPair(controllerDataUniqueId, clonedSkinController);
				// clonedSkinController will be deleted by ImporterBase after import
				addSkinController( clonedSkinController );
			}
		} 
		else if ( mController->getControllerType() == COLLADAFW::Controller::CONTROLLER_TYPE_MORPH )
		{
			const COLLADAFW::MorphController* morphController = (const COLLADAFW::MorphController*)mController;
			COLLADAFW::MorphController* clonedMorphController = new COLLADAFW::MorphController(*morphController);
			// clonedMorphController will be deleted by ImporterBase after import
			addMorphController( clonedMorphController );
		}

		return true;
	}