Garrett Johnson преди 5 години
родител
ревизия
f179e963ed
променени са 3 файла, в които са добавени 35 реда и са изтрити 11 реда
  1. 0 1
      src/base/I3DMLoaderBase.d.ts
  2. 19 0
      src/three/CMPTLoader.d.ts
  3. 16 10
      src/three/CMPTLoader.js

+ 0 - 1
src/base/I3DMLoaderBase.d.ts

@@ -6,7 +6,6 @@ export interface I3DMLoaderBaseResult {
 	featureTable: FeatureTable;
 	batchTable : BatchTable;
 	glbBytes : Uint8Array;
-	externalUri,
 
 }
 

+ 19 - 0
src/three/CMPTLoader.d.ts

@@ -0,0 +1,19 @@
+import { B3DMBaseResult } from '../base/B3DMLoaderBase';
+import { I3DMBaseResult } from '../base/I3DMLoaderBase';
+import { PNTSBaseResult } from '../base/B3DMLoaderBase';
+import { CMPTLoaderBase } from '../base/CMPTLoaderBase';
+import { Group } from 'three';
+
+export interface CMPTResult {
+
+	tiles : Array< B3DMBaseResult, I3DMBaseResult, PNTSBaseResult >;
+	scene : Group;
+
+}
+
+export class CMPTLoader extends CMPTLoaderBase {
+
+	load( url : String ) : Promise< CMPTResult >;
+	parse( buffer : ArrayBuffer ) : CMPTResult;
+
+}

+ 16 - 10
src/three/CMPTLoader.js

@@ -1,6 +1,7 @@
 import { Group } from 'three';
 import { CMPTLoaderBase } from '../base/CMPTLoaderBase.js';
 import { B3DMLoader } from './B3DMLoader.js';
+import { PNTSLoader } from './PNTSLoader.js';
 
 export class CMPTLoader extends CMPTLoaderBase {
 
@@ -19,7 +20,6 @@ export class CMPTLoader extends CMPTLoaderBase {
 		const results = [];
 		const promises = [];
 
-		console.log( result, buffer.byteLength );
 		for ( const i in result.tiles ) {
 
 			const { type, buffer } = result.tiles[ i ];
@@ -27,21 +27,27 @@ export class CMPTLoader extends CMPTLoaderBase {
 				case 'b3dm':
 
 					const slicedBuffer = buffer.slice();
-					console.log( slicedBuffer.buffer.byteLength, buffer.buffer.byteLength );
+					const promise = new B3DMLoader( manager )
+						.parse( slicedBuffer.buffer )
+						.then( res => {
 
-					const blob = URL.createObjectURL( new Blob( [ slicedBuffer ] ) );
-					const promise =
-						new B3DMLoader( manager ).parse( buffer.slice().buffer );
+							results.push( res );
+							group.add( res.scene );
 
-					promise.then( res => {
+						} );
 
-						results.push( res );
-						group.add( res.scene );
+					promises.push(promise);
+					break;
+
+				case 'pnts':
 
-					} );
+					const slicedBuffer = buffer.slice();
+					const pointsResult = new PNTSLoader( manager ).parse( slicedBuffer.buffer );
+					results.push( pointsResult );
+					group.add( pointsResult.scene );
 					break;
+
 				case 'i3dm':
-				case 'pnts':
 				default:
 			}