Преглед изворни кода

Merge pull request #17833 from kaisalmen/Issue17769

OBJLoader2: Fuse WorkerRunner and ObjectManipulator and clean-up
Mr.doob пре 5 година
родитељ
комит
bc949fd05d

+ 3 - 3
examples/jsm/loaders/OBJLoader2Parallel.js

@@ -16,10 +16,10 @@ import { OBJLoader2 } from "./OBJLoader2.js";
 
 // Imports only related to worker (when standard workers (modules aren't supported) are used)
 import { OBJLoader2Parser } from "./obj2/worker/parallel/OBJLoader2Parser.js";
-import { ObjectManipulator } from "./obj2/utils/ObjectManipulator.js";
 import {
 	WorkerRunner,
-	DefaultWorkerPayloadHandler
+	DefaultWorkerPayloadHandler,
+	ObjectManipulator
 } from "./obj2/worker/parallel/WorkerRunner.js";
 
 
@@ -40,7 +40,7 @@ const OBJLoader2Parallel = function ( manager ) {
 
 };
 
-OBJLoader2Parallel.OBJLOADER2_PARALLEL_VERSION = '3.1.1';
+OBJLoader2Parallel.OBJLOADER2_PARALLEL_VERSION = '3.1.2';
 console.info( 'Using OBJLoader2Parallel version: ' + OBJLoader2Parallel.OBJLOADER2_PARALLEL_VERSION );
 
 

+ 0 - 3
examples/jsm/loaders/obj2/utils/ObjectManipulator.d.ts

@@ -1,3 +0,0 @@
-export namespace ObjectManipulator {
-	export function applyProperties( objToAlter: object, params: object, forceCreation: boolean ): void;
-}

+ 0 - 40
examples/jsm/loaders/obj2/utils/ObjectManipulator.js

@@ -1,40 +0,0 @@
-/**
- * @author Kai Salmen / https://kaisalmen.de
- * Development repository: https://github.com/kaisalmen/WWOBJLoader
- */
-
-const ObjectManipulator = {
-
-	/**
-	 * Applies values from parameter object via set functions or via direct assignment.
-	 *
-	 * @param {Object} objToAlter The objToAlter instance
-	 * @param {Object} params The parameter object
-	 */
-	applyProperties: function ( objToAlter, params, forceCreation ) {
-
-		// fast-fail
-		if ( objToAlter === undefined || objToAlter === null || params === undefined || params === null ) return;
-
-		let property, funcName, values;
-		for ( property in params ) {
-
-			funcName = 'set' + property.substring( 0, 1 ).toLocaleUpperCase() + property.substring( 1 );
-			values = params[ property ];
-
-			if ( typeof objToAlter[ funcName ] === 'function' ) {
-
-				objToAlter[ funcName ]( values );
-
-			} else if ( objToAlter.hasOwnProperty( property ) || forceCreation ) {
-
-				objToAlter[ property ] = values;
-
-			}
-
-		}
-
-	}
-};
-
-export { ObjectManipulator };

+ 7 - 8
examples/jsm/loaders/obj2/worker/parallel/WorkerRunner.d.ts

@@ -1,13 +1,17 @@
-import { OBJLoader2Parser } from './OBJLoader2Parser';
+export namespace ObjectManipulator {
+
+	export function applyProperties(objToAlter: object, params: object, forceCreation: boolean): void;
+
+}
 
 export class DefaultWorkerPayloadHandler {
 
-	constructor( parser: OBJLoader2Parser );
+	constructor( parser: object );
 	logging: {
 		enabled: boolean;
 		debug: boolean;
 	};
-	parser: OBJLoader2Parser;
+	parser: object;
 
 	handlePayload( payload: object ): void;
 
@@ -16,11 +20,6 @@ export class DefaultWorkerPayloadHandler {
 export class WorkerRunner {
 
 	constructor( payloadHandler: object );
-	logging: {
-		enabled: boolean;
-		debug: boolean;
-	};
-	resourceDescriptors: OBJLoader2Parser;
 	payloadHandler: object;
 
 	processMessage( payload: object ): void;

+ 36 - 24
examples/jsm/loaders/obj2/worker/parallel/WorkerRunner.js

@@ -3,7 +3,39 @@
  * Development repository: https://github.com/kaisalmen/WWOBJLoader
  */
 
-import { ObjectManipulator } from "../../utils/ObjectManipulator.js";
+const ObjectManipulator = {
+
+	/**
+	 * Applies values from parameter object via set functions or via direct assignment.
+	 *
+	 * @param {Object} objToAlter The objToAlter instance
+	 * @param {Object} params The parameter object
+	 */
+	applyProperties: function (objToAlter, params, forceCreation) {
+
+		// fast-fail
+		if (objToAlter === undefined || objToAlter === null || params === undefined || params === null) return;
+
+		let property, funcName, values;
+		for (property in params) {
+
+			funcName = 'set' + property.substring(0, 1).toLocaleUpperCase() + property.substring(1);
+			values = params[property];
+
+			if (typeof objToAlter[funcName] === 'function') {
+
+				objToAlter[funcName](values);
+
+			} else if (objToAlter.hasOwnProperty(property) || forceCreation) {
+
+				objToAlter[property] = values;
+
+			}
+
+		}
+
+	}
+};
 
 const DefaultWorkerPayloadHandler = function ( parser ) {
 
@@ -52,17 +84,7 @@ DefaultWorkerPayloadHandler.prototype = {
 			ObjectManipulator.applyProperties( parser, payload.params, false );
 			ObjectManipulator.applyProperties( parser, callbacks, false );
 
-			let arraybuffer;
-			if ( payload.params && payload.params.index !== undefined && payload.params.index !== null ) {
-
-				arraybuffer = this.resourceDescriptors[ payload.params.index ].content;
-
-			} else {
-
-				arraybuffer = payload.data.input;
-
-			}
-
+			let arraybuffer = payload.data.input;
 			let executeFunctionName = 'execute';
 			if ( typeof parser.getParseFunctionName === 'function' ) executeFunctionName = parser.getParseFunctionName();
 			if ( payload.usesMeshDisassembler ) {
@@ -97,7 +119,6 @@ DefaultWorkerPayloadHandler.prototype = {
  */
 const WorkerRunner = function ( payloadHandler ) {
 
-	this.resourceDescriptors = [];
 	this.payloadHandler = payloadHandler;
 
 	let scope = this;
@@ -121,16 +142,6 @@ WorkerRunner.prototype = {
 	 */
 	processMessage: function ( payload ) {
 
-		if ( payload.data.resourceDescriptors && this.resourceDescriptors.length === 0 ) {
-
-			for ( let name in payload.data.resourceDescriptors ) {
-
-				this.resourceDescriptors.push( payload.data.resourceDescriptors[ name ] );
-
-			}
-
-		}
-
 		this.payloadHandler.handlePayload( payload );
 
 	}
@@ -139,5 +150,6 @@ WorkerRunner.prototype = {
 
 export {
 	WorkerRunner,
-	DefaultWorkerPayloadHandler
+	DefaultWorkerPayloadHandler,
+	ObjectManipulator
 };