Procházet zdrojové kódy

GLTFLoader: take callback in .register()

Takahiro před 5 roky
rodič
revize
74fedc22ab
2 změnil soubory, kde provedl 24 přidání a 24 odebrání
  1. 12 12
      examples/js/loaders/GLTFLoader.js
  2. 12 12
      examples/jsm/loaders/GLTFLoader.js

+ 12 - 12
examples/js/loaders/GLTFLoader.js

@@ -15,8 +15,8 @@ THREE.GLTFLoader = ( function () {
 		this.dracoLoader = null;
 		this.dracoLoader = null;
 		this.ddsLoader = null;
 		this.ddsLoader = null;
 
 
-		this.plugins = [];
-		this.register( GLTFMaterialsClearcoatExtension );
+		this.pluginCallbacks = [];
+		this.register( function ( parser ) { return new GLTFMaterialsClearcoatExtension( parser ); } );
 
 
 	}
 	}
 
 
@@ -113,11 +113,11 @@ THREE.GLTFLoader = ( function () {
 
 
 		},
 		},
 
 
-		register: function ( plugin ) {
+		register: function ( callback ) {
 
 
-			if ( ! this.plugins.includes( plugin ) ) {
+			if ( ! this.pluginCallbacks.includes( callback ) ) {
 
 
-				this.plugins.push( plugin );
+				this.pluginCallbacks.push( callback );
 
 
 			}
 			}
 
 
@@ -125,11 +125,11 @@ THREE.GLTFLoader = ( function () {
 
 
 		},
 		},
 
 
-		unregister: function ( plugin ) {
+		unregister: function ( callback ) {
 
 
-			if ( this.plugins.includes( plugin ) ) {
+			if ( this.pluginCallbacks.includes( callback ) ) {
 
 
-				this.plugins.splice( this.plugins.indexOf( plugin ), 1 );
+				this.pluginCallbacks.splice( this.pluginCallbacks.indexOf( callback ), 1 );
 
 
 			}
 			}
 
 
@@ -240,7 +240,7 @@ THREE.GLTFLoader = ( function () {
 				manager: this.manager
 				manager: this.manager
 
 
 			} );
 			} );
-			parser.setPlugins( this.plugins );
+			parser.setPluginCallbacks( this.pluginCallbacks );
 			parser.parse( onLoad, onError );
 			parser.parse( onLoad, onError );
 
 
 		}
 		}
@@ -1455,11 +1455,11 @@ THREE.GLTFLoader = ( function () {
 
 
 	}
 	}
 
 
-	GLTFParser.prototype.setPlugins = function ( pluginList ) {
+	GLTFParser.prototype.setPluginCallbacks = function ( pluginCallbacks ) {
 
 
-		for ( var i = 0; i < pluginList.length; i ++ ) {
+		for ( var i = 0; i < pluginCallbacks.length; i ++ ) {
 
 
-			var plugin = new pluginList[ i ]( this );
+			var plugin = pluginCallbacks[ i ]( this );
 			this.plugins[ plugin.name ] = plugin;
 			this.plugins[ plugin.name ] = plugin;
 
 
 			// Workaround to avoid determining as unknown extension
 			// Workaround to avoid determining as unknown extension

+ 12 - 12
examples/jsm/loaders/GLTFLoader.js

@@ -79,8 +79,8 @@ var GLTFLoader = ( function () {
 		this.dracoLoader = null;
 		this.dracoLoader = null;
 		this.ddsLoader = null;
 		this.ddsLoader = null;
 
 
-		this.plugins = [];
-		this.register( GLTFMaterialsClearcoatExtension );
+		this.pluginCallbacks = [];
+		this.register( function ( parser ) { return new GLTFMaterialsClearcoatExtension( parser ); } );
 
 
 	}
 	}
 
 
@@ -177,11 +177,11 @@ var GLTFLoader = ( function () {
 
 
 		},
 		},
 
 
-		register: function ( plugin ) {
+		register: function ( callback ) {
 
 
-			if ( ! this.plugins.includes( plugin ) ) {
+			if ( ! this.pluginCallbacks.includes( callback ) ) {
 
 
-				this.plugins.push( plugin );
+				this.pluginCallbacks.push( callback );
 
 
 			}
 			}
 
 
@@ -189,11 +189,11 @@ var GLTFLoader = ( function () {
 
 
 		},
 		},
 
 
-		unregister: function ( plugin ) {
+		unregister: function ( callback ) {
 
 
-			if ( this.plugins.includes( plugin ) ) {
+			if ( this.pluginCallbacks.includes( callback ) ) {
 
 
-				this.plugins.splice( this.plugins.indexOf( plugin ), 1 );
+				this.pluginCallbacks.splice( this.pluginCallbacks.indexOf( callback ), 1 );
 
 
 			}
 			}
 
 
@@ -304,7 +304,7 @@ var GLTFLoader = ( function () {
 				manager: this.manager
 				manager: this.manager
 
 
 			} );
 			} );
-			parser.setPlugins( this.plugins );
+			parser.setPluginCallbacks( this.pluginCallbacks );
 			parser.parse( onLoad, onError );
 			parser.parse( onLoad, onError );
 
 
 		}
 		}
@@ -1519,11 +1519,11 @@ var GLTFLoader = ( function () {
 
 
 	}
 	}
 
 
-	GLTFParser.prototype.setPlugins = function ( pluginList ) {
+	GLTFParser.prototype.setPluginCallbacks = function ( pluginCallbacks ) {
 
 
-		for ( var i = 0; i < pluginList.length; i ++ ) {
+		for ( var i = 0; i < pluginCallbacks.length; i ++ ) {
 
 
-			var plugin = new pluginList[ i ]( this );
+			var plugin = pluginCallbacks[ i ]( this );
 			this.plugins[ plugin.name ] = plugin;
 			this.plugins[ plugin.name ] = plugin;
 
 
 			// Workaround to avoid determining as unknown extension
 			// Workaround to avoid determining as unknown extension