From 889bb276315cc63a0fee7f432f5d18d2bfcc28d6 Mon Sep 17 00:00:00 2001 From: Dimitrie Stefanescu Date: Mon, 17 May 2021 17:25:58 +0100 Subject: [PATCH] fix(viewer): accounts for empty arrays when dechunking --- packages/viewer/package.json | 2 +- packages/viewer/src/modules/Converter.js | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/viewer/package.json b/packages/viewer/package.json index 154c4ae50..9c650d2f6 100644 --- a/packages/viewer/package.json +++ b/packages/viewer/package.json @@ -1,6 +1,6 @@ { "name": "@speckle/viewer", - "version": "2.0.7", + "version": "2.0.8", "description": "A 3d viewer for Speckle, based on threejs.", "homepage": "https://speckle.systems", "repository": { diff --git a/packages/viewer/src/modules/Converter.js b/packages/viewer/src/modules/Converter.js index dbcf77b88..d8c0c43b0 100644 --- a/packages/viewer/src/modules/Converter.js +++ b/packages/viewer/src/modules/Converter.js @@ -125,7 +125,7 @@ export default class Coverter { * @return {[type]} [description] */ async dechunk( arr ) { - if ( !arr ) return arr + if ( !arr || arr.length === 0 ) return arr // Handles pre-chunking objects, or arrs that have not been chunked if ( !arr[0].referencedId ) return arr @@ -265,6 +265,7 @@ export default class Coverter { 'position', new THREE.Float32BufferAttribute( conversionFactor === 1 ? vertices : vertices.map( v => v * conversionFactor ), 3 ) ) + let colorsRaw = await this.dechunk( obj.colors ) if ( colorsRaw && colorsRaw.length !== 0 ) { @@ -284,6 +285,7 @@ export default class Coverter { } } + buffer.computeVertexNormals( ) buffer.computeFaceNormals( ) buffer.computeBoundingSphere( )