浏览代码

JSM: Added remaining TS files for OBJLoader2.

Mugen87 6 年之前
父节点
当前提交
bd6f11ab7a

+ 3 - 1
examples/jsm/loaders/OBJLoader2Parallel.d.ts

@@ -3,11 +3,13 @@ import {
 } from '../../../src/Three';
 import { OBJLoader2 } from './OBJLoader2.js';
 
+import { WorkerExecutionSupport} from './obj2/worker/main/WorkerExecutionSupport';
+
 export class OBJLoader2Parallel extends OBJLoader2 {
   constructor(manager?: LoadingManager);
   preferJsmWorker: boolean;
 	executeParallel: boolean;
-	workerExecutionSupport: object;
+	workerExecutionSupport: WorkerExecutionSupport;
 
   setPreferJsmWorker(preferJsmWorker: boolean): this;
   setCallbackOnParseComplete(onParseComplete: Function): this;

+ 59 - 0
examples/jsm/loaders/obj2/worker/main/WorkerExecutionSupport.d.ts

@@ -0,0 +1,59 @@
+export class CodeBuilderInstructions {
+  constructor(supportsStandardWorker: boolean, supportsJsmWorker: boolean, preferJsmWorker: boolean);
+  supportsStandardWorker: boolean;
+  supportsJsmWorker: boolean;
+  preferJsmWorker: boolean;
+  startCode: string;
+  codeFragments: string[];
+  importStatements: string[];
+  jsmWorkerFile: string;
+  defaultGeometryType: number;
+
+  isSupportsStandardWorker(): boolean;
+  isSupportsJsmWorker(): boolean;
+  isPreferJsmWorker(): boolean;
+  setJsmWorkerFile(jsmWorkerFile: string): void;
+  addStartCode(startCode: string): void;
+  addCodeFragment(code: string): void;
+  addLibraryImport(libraryPath: string): void;
+  getImportStatements(): string[];
+  getCodeFragments(): string[];
+  getStartCode(): string;
+}
+
+export class WorkerExecutionSupport {
+  constructor();
+
+  logging: {
+    enabled: boolean;
+    debug: boolean;
+  };
+
+  worker: {
+    native: null;
+    jsmWorker: boolean;
+    logging: boolean;
+    workerRunner: {
+      name: string;
+      usesMeshDisassembler: boolean;
+      defaultGeometryType: number;
+    };
+    terminateWorkerOnLoad: boolean;
+    forceWorkerDataCopy: boolean;
+    started: boolean;
+    queuedMessage: null;
+    callbacks: {
+      onAssetAvailable: Function;
+      onLoad: Function;
+      terminate: Function;
+    };
+  }
+
+  setLogging(enabled: boolean, debug: boolean): this;
+  setForceWorkerDataCopy(forceWorkerDataCopy: boolean): this;
+  setTerminateWorkerOnLoad(terminateWorkerOnLoad: boolean): this;
+  updateCallbacks(onAssetAvailable: Function, onLoad: Function): void;
+  buildWorker(codeBuilderInstructions: CodeBuilderInstructions): void;
+  isWorkerLoaded(requireJsmWorker: boolean): boolean;
+  executeParallel(payload:object, transferables?: object[]);
+}

+ 81 - 0
examples/jsm/loaders/obj2/worker/parallel/OBJLoader2Parser.d.ts

@@ -0,0 +1,81 @@
+export class OBJLoader2Parser {
+  constructor();
+  callbacks: {
+    onProgress: Function;
+    onAssetAvailable: Function;
+    onError: Function;
+  };
+  contentRef: Uint8Array;
+  legacyMode: boolean;
+  materials: object;
+  materialPerSmoothingGroup: boolean;
+  useOAsMesh: boolean;
+  useIndices: boolean;
+  disregardNormals: boolean;
+
+  vertices: number[];
+  colors: number[];
+  normals: number[];
+  uvs: number[];
+
+  rawMesh: {
+    objectName: string;
+    groupName: string;
+    activeMtlName: string;
+    mtllibName: string;
+    faceType: number;
+    subGroups: object[];
+    subGroupInUse: object;
+    smoothingGroup: {
+      splitMaterials: boolean;
+      normalized: boolean;
+      real: boolean;
+    };
+    counts: {
+      doubleIndicesCount: number;
+      faceCount: number;
+      mtlCount: number;
+      smoothingGroupCount: number;
+    }
+  };
+
+  inputObjectCount: number;
+  outputObjectCount: number;
+  globalCounts: {
+    vertices: number;
+    faces: number;
+    doubleIndicesCount: number;
+    lineByte: number;
+    currentByte: number;
+    totalBytes: number;
+  };
+
+  logging: {
+    enabled: boolean;
+    debug: boolean;
+  };
+
+  resetRawMesh(): void;
+  setMaterialPerSmoothingGroup(materialPerSmoothingGroup: boolean): void;
+  setUseOAsMesh(useOAsMesh: boolean): void;
+  setUseIndices(useIndices: boolean): void;
+  setDisregardNormals(disregardNormals: boolean): void;
+  setMaterials(materials: object): void;
+  setCallbackOnAssetAvailable(onAssetAvailable: Function): void;
+  setCallbackOnProgress(onProgress: Function): void;
+  setCallbackOnError(onError: Function): void;
+  setLogging(enabled: boolean, debug: boolean): void;
+  configure(): void;
+  parse(arrayBuffer: Uint8Array): void;
+  parseText(text: string): void;
+  processLine(buffer: string[], bufferPointer: number, slashesCount: number): void;
+  pushSmoothingGroup(smoothingGroup: object): void;
+  checkFaceType(faceType: number): void;
+  checkSubGroup(): void;
+  buildFace(faceIndexV: string, faceIndexU: string, faceIndexN: string): void;
+  createRawMeshReport(inputObjectCount: number): void;
+  finalizeRawMesh(): object;
+  processCompletedMesh(): boolean;
+  buildMesh(result: object): void;
+  finalizeParsing(): void;
+}

+ 24 - 0
examples/jsm/loaders/obj2/worker/parallel/WorkerRunner.d.ts

@@ -0,0 +1,24 @@
+import { OBJLoader2Parser } from './OBJLoader2Parser';
+
+export class DefaultWorkerPayloadHandler {
+  constructor(parser: OBJLoader2Parser);
+  logging: {
+    enabled: boolean;
+    debug: boolean;
+  };
+  parser: OBJLoader2Parser;
+
+  handlePayload(payload: object): void;
+}
+
+export class WorkerRunner {
+  constructor(payloadHandler: object);
+  logging: {
+    enabled: boolean;
+    debug: boolean;
+  };
+  resourceDescriptors: OBJLoader2Parser;
+  payloadHandler: object;
+
+  processMessage(payload: object): void;
+}