瀏覽代碼

Examples: Inherit from Loader V.

Mugen87 5 年之前
父節點
當前提交
37bafb56b3

+ 3 - 13
examples/js/loaders/LDrawLoader.js

@@ -522,7 +522,7 @@ THREE.LDrawLoader = ( function () {
 
 
 	function LDrawLoader( manager ) {
 	function LDrawLoader( manager ) {
 
 
-		this.manager = ( manager !== undefined ) ? manager : THREE.DefaultLoadingManager;
+		THREE.Loader.call( this, manager );
 
 
 		// This is a stack of 'parse scopes' with one level per subobject loaded file.
 		// This is a stack of 'parse scopes' with one level per subobject loaded file.
 		// Each level contains a material lib and also other runtime variables passed between parent and child subobjects
 		// Each level contains a material lib and also other runtime variables passed between parent and child subobjects
@@ -530,8 +530,6 @@ THREE.LDrawLoader = ( function () {
 		// Each material library is an object map keyed by colour codes.
 		// Each material library is an object map keyed by colour codes.
 		this.parseScopesStack = null;
 		this.parseScopesStack = null;
 
 
-		this.path = '';
-
 		// Array of THREE.Material
 		// Array of THREE.Material
 		this.materials = [];
 		this.materials = [];
 
 
@@ -576,7 +574,7 @@ THREE.LDrawLoader = ( function () {
 	LDrawLoader.FILE_LOCATION_TRY_ABSOLUTE = 5;
 	LDrawLoader.FILE_LOCATION_TRY_ABSOLUTE = 5;
 	LDrawLoader.FILE_LOCATION_NOT_FOUND = 6;
 	LDrawLoader.FILE_LOCATION_NOT_FOUND = 6;
 
 
-	LDrawLoader.prototype = {
+	LDrawLoader.prototype = Object.assign( Object.create( THREE.Loader.prototype ), {
 
 
 		constructor: LDrawLoader,
 		constructor: LDrawLoader,
 
 
@@ -608,14 +606,6 @@ THREE.LDrawLoader = ( function () {
 
 
 		},
 		},
 
 
-		setPath: function ( value ) {
-
-			this.path = value;
-
-			return this;
-
-		},
-
 		setMaterials: function ( materials ) {
 		setMaterials: function ( materials ) {
 
 
 			// Clears parse scopes stack, adds new scope with material library
 			// Clears parse scopes stack, adds new scope with material library
@@ -1947,7 +1937,7 @@ THREE.LDrawLoader = ( function () {
 
 
 		}
 		}
 
 
-	};
+	} );
 
 
 	return LDrawLoader;
 	return LDrawLoader;
 
 

+ 5 - 28
examples/js/loaders/LWOLoader.js

@@ -2021,25 +2021,23 @@ var lwoTree;
 
 
 THREE.LWOLoader = function ( manager, parameters ) {
 THREE.LWOLoader = function ( manager, parameters ) {
 
 
-	this.manager = ( manager !== undefined ) ? manager : THREE.DefaultLoadingManager;
+	THREE.Loader.call( this, manager );
 
 
 	parameters = parameters || {};
 	parameters = parameters || {};
 
 
-	this.resourcePath = ( parameters.resourcePath !== undefined ) ? parameters.resourcePath : undefined;
+	this.resourcePath = ( parameters.resourcePath !== undefined ) ? parameters.resourcePath : '';
 
 
 };
 };
 
 
-THREE.LWOLoader.prototype = {
+THREE.LWOLoader.prototype = Object.assign( Object.create( THREE.Loader.prototype ), {
 
 
 	constructor: THREE.LWOLoader,
 	constructor: THREE.LWOLoader,
 
 
-	crossOrigin: 'anonymous',
-
 	load: function ( url, onLoad, onProgress, onError ) {
 	load: function ( url, onLoad, onProgress, onError ) {
 
 
 		var self = this;
 		var self = this;
 
 
-		var path = ( self.path === undefined ) ? extractParentUrl( url, 'Objects' ) : self.path;
+		var path = ( self.path === '' ) ? extractParentUrl( url, 'Objects' ) : self.path;
 
 
 		// give the mesh a default name based on the filename
 		// give the mesh a default name based on the filename
 		var modelName = url.split( path ).pop().split( '.' )[ 0 ];
 		var modelName = url.split( path ).pop().split( '.' )[ 0 ];
@@ -2058,27 +2056,6 @@ THREE.LWOLoader.prototype = {
 
 
 	},
 	},
 
 
-	setCrossOrigin: function ( value ) {
-
-		this.crossOrigin = value;
-		return this;
-
-	},
-
-	setPath: function ( value ) {
-
-		this.path = value;
-		return this;
-
-	},
-
-	setResourcePath: function ( value ) {
-
-		this.resourcePath = value;
-		return this;
-
-	},
-
 	parse: function ( iffBuffer, path, modelName ) {
 	parse: function ( iffBuffer, path, modelName ) {
 
 
 		lwoTree = new IFFParser().parse( iffBuffer );
 		lwoTree = new IFFParser().parse( iffBuffer );
@@ -2091,7 +2068,7 @@ THREE.LWOLoader.prototype = {
 
 
 	}
 	}
 
 
-};
+} );
 
 
 // Parse the lwoTree object
 // Parse the lwoTree object
 function LWOTreeParser( textureLoader ) {
 function LWOTreeParser( textureLoader ) {

+ 2 - 4
examples/jsm/loaders/LDrawLoader.d.ts

@@ -1,16 +1,14 @@
 import {
 import {
+	Loader,
 	LoadingManager,
 	LoadingManager,
 	Group,
 	Group,
 	Material
 	Material
 } from '../../../src/Three';
 } from '../../../src/Three';
 
 
-export class LDrawLoader {
+export class LDrawLoader extends Loader {
 	constructor(manager?: LoadingManager);
 	constructor(manager?: LoadingManager);
-	manager: LoadingManager;
-	path: string;
 
 
 	load(url: string, onLoad: (data: Group) => void, onProgress?: (event: ProgressEvent) => void, onError?: (event: ErrorEvent) => void) : void;
 	load(url: string, onLoad: (data: Group) => void, onProgress?: (event: ProgressEvent) => void, onError?: (event: ErrorEvent) => void) : void;
-	setPath(path: string) : this;
 	setFileMap(fileMap: Record<string, string>): void;
 	setFileMap(fileMap: Record<string, string>): void;
 	setMaterials(materials: Material[]): void;
 	setMaterials(materials: Material[]): void;
 
 

+ 4 - 14
examples/jsm/loaders/LDrawLoader.js

@@ -10,12 +10,12 @@ import {
 	BufferAttribute,
 	BufferAttribute,
 	BufferGeometry,
 	BufferGeometry,
 	Color,
 	Color,
-	DefaultLoadingManager,
 	FileLoader,
 	FileLoader,
 	Float32BufferAttribute,
 	Float32BufferAttribute,
 	Group,
 	Group,
 	LineBasicMaterial,
 	LineBasicMaterial,
 	LineSegments,
 	LineSegments,
+	Loader,
 	Matrix4,
 	Matrix4,
 	Mesh,
 	Mesh,
 	MeshPhongMaterial,
 	MeshPhongMaterial,
@@ -540,7 +540,7 @@ var LDrawLoader = ( function () {
 
 
 	function LDrawLoader( manager ) {
 	function LDrawLoader( manager ) {
 
 
-		this.manager = ( manager !== undefined ) ? manager : DefaultLoadingManager;
+		Loader.call( this, manager );
 
 
 		// This is a stack of 'parse scopes' with one level per subobject loaded file.
 		// This is a stack of 'parse scopes' with one level per subobject loaded file.
 		// Each level contains a material lib and also other runtime variables passed between parent and child subobjects
 		// Each level contains a material lib and also other runtime variables passed between parent and child subobjects
@@ -548,8 +548,6 @@ var LDrawLoader = ( function () {
 		// Each material library is an object map keyed by colour codes.
 		// Each material library is an object map keyed by colour codes.
 		this.parseScopesStack = null;
 		this.parseScopesStack = null;
 
 
-		this.path = '';
-
 		// Array of THREE.Material
 		// Array of THREE.Material
 		this.materials = [];
 		this.materials = [];
 
 
@@ -594,7 +592,7 @@ var LDrawLoader = ( function () {
 	LDrawLoader.FILE_LOCATION_TRY_ABSOLUTE = 5;
 	LDrawLoader.FILE_LOCATION_TRY_ABSOLUTE = 5;
 	LDrawLoader.FILE_LOCATION_NOT_FOUND = 6;
 	LDrawLoader.FILE_LOCATION_NOT_FOUND = 6;
 
 
-	LDrawLoader.prototype = {
+	LDrawLoader.prototype = Object.assign( Object.create( Loader.prototype ), {
 
 
 		constructor: LDrawLoader,
 		constructor: LDrawLoader,
 
 
@@ -626,14 +624,6 @@ var LDrawLoader = ( function () {
 
 
 		},
 		},
 
 
-		setPath: function ( value ) {
-
-			this.path = value;
-
-			return this;
-
-		},
-
 		setMaterials: function ( materials ) {
 		setMaterials: function ( materials ) {
 
 
 			// Clears parse scopes stack, adds new scope with material library
 			// Clears parse scopes stack, adds new scope with material library
@@ -1965,7 +1955,7 @@ var LDrawLoader = ( function () {
 
 
 		}
 		}
 
 
-	};
+	} );
 
 
 	return LDrawLoader;
 	return LDrawLoader;
 
 

+ 2 - 7
examples/jsm/loaders/LWOLoader.d.ts

@@ -1,4 +1,5 @@
 import {
 import {
+	Loader,
 	LoadingManager,
 	LoadingManager,
 	Material,
 	Material,
 	Object3D
 	Object3D
@@ -18,15 +19,9 @@ export interface LWOLoaderParameters {
 
 
 }
 }
 
 
-export class LWOLoader {
+export class LWOLoader extends Loader {
 	constructor(manager?: LoadingManager, parameters?: LWOLoaderParameters);
 	constructor(manager?: LoadingManager, parameters?: LWOLoaderParameters);
-	crossOrigin: string;
-	path: string;
-	resourcePath: string;
 
 
 	load(url: string, onLoad: (lwo: LWO) => void, onProgress?: (event: ProgressEvent) => void, onError?: (event: ErrorEvent) => void) : void;
 	load(url: string, onLoad: (lwo: LWO) => void, onProgress?: (event: ProgressEvent) => void, onError?: (event: ErrorEvent) => void) : void;
-	setPath(path: string): this;
-	setResourcePath(path: string): this;
-	setCrossOrigin(value: string): this;
 	parse(data: ArrayBuffer, path: string, modelName: string): LWO;
 	parse(data: ArrayBuffer, path: string, modelName: string): LWO;
 }
 }

+ 6 - 29
examples/jsm/loaders/LWOLoader.js

@@ -24,7 +24,6 @@ import {
 	BufferGeometry,
 	BufferGeometry,
 	ClampToEdgeWrapping,
 	ClampToEdgeWrapping,
 	Color,
 	Color,
-	DefaultLoadingManager,
 	DoubleSide,
 	DoubleSide,
 	EquirectangularReflectionMapping,
 	EquirectangularReflectionMapping,
 	EquirectangularRefractionMapping,
 	EquirectangularRefractionMapping,
@@ -33,6 +32,7 @@ import {
 	FrontSide,
 	FrontSide,
 	LineBasicMaterial,
 	LineBasicMaterial,
 	LineSegments,
 	LineSegments,
+	Loader,
 	LoaderUtils,
 	LoaderUtils,
 	Mesh,
 	Mesh,
 	MeshPhongMaterial,
 	MeshPhongMaterial,
@@ -2050,25 +2050,23 @@ var lwoTree;
 
 
 var LWOLoader = function ( manager, parameters ) {
 var LWOLoader = function ( manager, parameters ) {
 
 
-	this.manager = ( manager !== undefined ) ? manager : DefaultLoadingManager;
+	Loader.call( this, manager );
 
 
 	parameters = parameters || {};
 	parameters = parameters || {};
 
 
-	this.resourcePath = ( parameters.resourcePath !== undefined ) ? parameters.resourcePath : undefined;
+	this.resourcePath = ( parameters.resourcePath !== undefined ) ? parameters.resourcePath : '';
 
 
 };
 };
 
 
-LWOLoader.prototype = {
+LWOLoader.prototype = Object.assign( Object.create( Loader.prototype ), {
 
 
 	constructor: LWOLoader,
 	constructor: LWOLoader,
 
 
-	crossOrigin: 'anonymous',
-
 	load: function ( url, onLoad, onProgress, onError ) {
 	load: function ( url, onLoad, onProgress, onError ) {
 
 
 		var self = this;
 		var self = this;
 
 
-		var path = ( self.path === undefined ) ? extractParentUrl( url, 'Objects' ) : self.path;
+		var path = ( self.path === '' ) ? extractParentUrl( url, 'Objects' ) : self.path;
 
 
 		// give the mesh a default name based on the filename
 		// give the mesh a default name based on the filename
 		var modelName = url.split( path ).pop().split( '.' )[ 0 ];
 		var modelName = url.split( path ).pop().split( '.' )[ 0 ];
@@ -2087,27 +2085,6 @@ LWOLoader.prototype = {
 
 
 	},
 	},
 
 
-	setCrossOrigin: function ( value ) {
-
-		this.crossOrigin = value;
-		return this;
-
-	},
-
-	setPath: function ( value ) {
-
-		this.path = value;
-		return this;
-
-	},
-
-	setResourcePath: function ( value ) {
-
-		this.resourcePath = value;
-		return this;
-
-	},
-
 	parse: function ( iffBuffer, path, modelName ) {
 	parse: function ( iffBuffer, path, modelName ) {
 
 
 		lwoTree = new IFFParser().parse( iffBuffer );
 		lwoTree = new IFFParser().parse( iffBuffer );
@@ -2120,7 +2097,7 @@ LWOLoader.prototype = {
 
 
 	}
 	}
 
 
-};
+} );
 
 
 // Parse the lwoTree object
 // Parse the lwoTree object
 function LWOTreeParser( textureLoader ) {
 function LWOTreeParser( textureLoader ) {