loadTexture method

dynamic loadTexture(
  1. dynamic textureNode,
  2. dynamic images
)

Implementation

loadTexture( textureNode, images ) async {

	var fileName;

	var currentPath = this.textureLoader.path;

	var children = connections[ textureNode["id"] ]["children"];

	if ( children != null && children.length > 0 && images[ children[ 0 ]["ID"] ] != null ) {

		fileName = images[ children[ 0 ]["ID"] ];

		if ( fileName.indexOf( 'blob:' ) == 0 || fileName.indexOf( 'data:' ) == 0 ) {

			this.textureLoader.setPath( null );

		}

	}

	var texture;

    String nodeFileName = textureNode["FileName"];

	var extension = nodeFileName.substring( nodeFileName.length - 3 ).toLowerCase();

	if ( extension == 'tga' ) {

		var loader = this.manager.getHandler( '.tga' );

		if ( loader == null ) {

			print( 'FBXLoader: TGA loader not found, creating placeholder texture for ${textureNode["RelativeFilename"]}' );
			texture = new Texture();

		} else {

			loader.setPath( this.textureLoader.path );
			texture = loader.load( fileName );

		}

	} else if ( extension == 'psd' ) {

		print( 'FBXLoader: PSD textures are not supported, creating placeholder texture for ${textureNode["RelativeFilename"]}' );
		texture = new Texture();

	} else {

		texture = await this.textureLoader.loadAsync( fileName );

	}

	this.textureLoader.setPath( currentPath );

	return texture;

}