Jelajahi Sumber

Add PNTS dts

Garrett Johnson 5 tahun lalu
induk
melakukan
b515883293
2 mengubah file dengan 35 tambahan dan 3 penghapusan
  1. 20 3
      src/three/CMPTLoader.js
  2. 15 0
      src/three/PNTSLoader.d.ts

+ 20 - 3
src/three/CMPTLoader.js

@@ -14,8 +14,8 @@ export class CMPTLoader extends CMPTLoaderBase {
 
 	parse( buffer ) {
 
-		const manager = this.manager;
 		const result = super.parse( buffer );
+		const manager = this.manager;
 		const group = new Group();
 		const results = [];
 		const promises = [];
@@ -24,6 +24,7 @@ export class CMPTLoader extends CMPTLoaderBase {
 
 			const { type, buffer } = result.tiles[ i ];
 			switch ( type ) {
+
 				case 'b3dm': {
 
 					const slicedBuffer = buffer.slice();
@@ -40,6 +41,7 @@ export class CMPTLoader extends CMPTLoaderBase {
 					break;
 
 				}
+
 				case 'pnts': {
 
 					const slicedBuffer = buffer.slice();
@@ -49,8 +51,23 @@ export class CMPTLoader extends CMPTLoaderBase {
 					break;
 
 				}
-				case 'i3dm':
-				default:
+
+				case 'i3dm': {
+
+					const slicedBuffer = buffer.slice();
+					const promise = new I3DMLoader( manager )
+						.parse( slicedBuffer.buffer )
+						.then( res => {
+
+							results.push( res );
+							group.add( res.scene );
+
+						} );
+					promises.push(promise);
+					break;
+
+				}
+
 			}
 
 		}

+ 15 - 0
src/three/PNTSLoader.d.ts

@@ -0,0 +1,15 @@
+import { PNTSLoaderBase, PNTSBaseResult } from '../base/PNTSLoaderBase';
+import { Points } from 'three';
+
+export interface PNTSResult extends PNTSBaseResult {
+
+	scene: Points;
+
+}
+
+export class PNTSLoader extends PNTSLoaderBase {
+
+	load( url : String ) : Promise< PNTSResult >;
+	parse( buffer : ArrayBuffer ) : PNTSResult;
+
+}