From 21a4cfee8782d00a4795fdf5c2bb89e58992e7a0 Mon Sep 17 00:00:00 2001 From: cristi8 Date: Mon, 15 Nov 2021 19:16:32 +0200 Subject: [PATCH] viewer small fixes --- packages/viewer/src/modules/FilteringManager.js | 11 ++++++++++- packages/viewer/src/modules/SceneObjects.js | 3 +++ packages/viewer/src/modules/Viewer.js | 4 ++-- packages/viewer/src/modules/ViewerObjectLoader.js | 4 ++-- 4 files changed, 17 insertions(+), 5 deletions(-) diff --git a/packages/viewer/src/modules/FilteringManager.js b/packages/viewer/src/modules/FilteringManager.js index cadce8633..269917999 100644 --- a/packages/viewer/src/modules/FilteringManager.js +++ b/packages/viewer/src/modules/FilteringManager.js @@ -20,8 +20,10 @@ export default class FilteringManager { transparent: false, clippingPlanes: this.viewer.sectionBox.planes } ) - } + this.colorLegend = {} + } + filterAndColorObject( obj, filter ) { if ( !filter ) return obj.clone() @@ -86,6 +88,9 @@ export default class FilteringManager { color = `hsl(${colorHue}, 50%, 30%)` } + if ( objValue !== undefined && objValue !== null ) + this.colorLegend[ objValue.toString() ] = color + let material = this.ColoredMaterial.clone() material.color = new THREE.Color( color ) return material @@ -142,5 +147,9 @@ export default class FilteringManager { // Can also filter by specific value return objValue === valueFilter } + + initFilterOperation() { + this.colorLegend = {} + } } diff --git a/packages/viewer/src/modules/SceneObjects.js b/packages/viewer/src/modules/SceneObjects.js index 34c3c421a..fda27ae6f 100644 --- a/packages/viewer/src/modules/SceneObjects.js +++ b/packages/viewer/src/modules/SceneObjects.js @@ -169,6 +169,7 @@ export default class SceneObjects { this.objectsInScene = this.allObjects } else { // A filter is to be applied + this.filteringManager.initFilterOperation() let newFilteredObjects = new THREE.Group() newFilteredObjects.name = 'FilteredObjects' @@ -204,6 +205,8 @@ export default class SceneObjects { this.appliedFilter = filter this.viewer.needsRender = true + + return { colorLegend: this.filteringManager.colorLegend } } async groupSolidObjects( threejsGroup ) { diff --git a/packages/viewer/src/modules/Viewer.js b/packages/viewer/src/modules/Viewer.js index d76703b56..5b20ca952 100644 --- a/packages/viewer/src/modules/Viewer.js +++ b/packages/viewer/src/modules/Viewer.js @@ -236,8 +236,8 @@ export default class Viewer extends EventEmitter { return await this.sceneManager.sceneObjects.applyFilter( filter ) } - async getObjectsProperties() { - return await this.sceneManager.sceneObjects.getObjectsProperties() + getObjectsProperties() { + return this.sceneManager.sceneObjects.getObjectsProperties() } dispose() { diff --git a/packages/viewer/src/modules/ViewerObjectLoader.js b/packages/viewer/src/modules/ViewerObjectLoader.js index d7c550ba7..3df1f3ef3 100644 --- a/packages/viewer/src/modules/ViewerObjectLoader.js +++ b/packages/viewer/src/modules/ViewerObjectLoader.js @@ -8,7 +8,7 @@ import Converter from './converter/Converter' export default class ViewerObjectLoader { - constructor( parent, objectUrl, authToken, enableCahcing ) { + constructor( parent, objectUrl, authToken, enableCaching ) { this.objectUrl = objectUrl this.viewer = parent this.token = null @@ -39,7 +39,7 @@ export default class ViewerObjectLoader { token: this.token, streamId: this.streamId, objectId: this.objectId, - options: { enableCahcing: enableCahcing } + options: { enableCaching: enableCaching } } ) this.converter = new Converter( this.loader )