improvement(viewer): selection events now emit actual object user metadata

This commit is contained in:
Dimitrie Stefanescu
2021-05-07 12:13:42 +01:00
parent 115ad605c3
commit f327aa5f8a
4 changed files with 10 additions and 5 deletions
+1 -1
View File
@@ -31,7 +31,7 @@
<button onclick="viewerScreenshot()">Screenshot</button>
</div>
<div class="twelve columns">
<input id="objectUrlInput" type="text" name="objectId" placeholder="Object Url" style="width:49%" value="https://staging.speckle.dev/streams/a75ab4f10f/objects/a59617590b0bec4e9b5ee487ee75b1a7"/>
<input id="objectUrlInput" type="text" name="objectId" placeholder="Object Url" style="width:49%" value="https://latest.speckle.dev/streams/a6f96ea62c/objects/68d6535632dbf9aba06adae8a263c8e4"/>
<button class="" onclick="loadData()" style="width:49%">Load Object URL</button>
</div>
<div class="twelve columns">
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@speckle/viewer",
"version": "2.0.2",
"version": "2.0.4",
"description": "A 3d viewer for Speckle, based on threejs.",
"homepage": "https://speckle.systems",
"repository": {
+1 -1
View File
@@ -31,7 +31,7 @@
<button onclick="viewerScreenshot()">Screenshot</button>
</div>
<div class="twelve columns">
<input id="objectUrlInput" type="text" name="objectId" placeholder="Object Url" style="width:49%" value="https://staging.speckle.dev/streams/a75ab4f10f/objects/a59617590b0bec4e9b5ee487ee75b1a7"/>
<input id="objectUrlInput" type="text" name="objectId" placeholder="Object Url" style="width:49%" value="https://latest.speckle.dev/streams/a6f96ea62c/objects/68d6535632dbf9aba06adae8a263c8e4"/>
<button class="" onclick="loadData()" style="width:49%">Load Object URL</button>
</div>
<div class="twelve columns">
@@ -26,6 +26,8 @@ export default class InteractionHandler {
this.viewer.scene.add( this.selectedObjects )
this.selectedObjects.renderOrder = 1000
this.selectedObjectsUserData = []
this.selectionHelper.on( 'object-doubleclicked', this._handleDoubleClick.bind( this ) )
this.selectionHelper.on( 'object-clicked', this._handleSelect.bind( this ) )
@@ -63,17 +65,20 @@ export default class InteractionHandler {
return // exit the whole func here, points cause all sorts of trouble when being selected (ie, bbox stuff)
}
this.selectedObjectsUserData.push( objs[0].object.userData )
let box = new THREE.BoxHelper( objs[0].object, 0x23F3BD )
box.material = this.selectionEdgesMaterial
this.selectedObjects.add( box )
this.viewer.needsRender = true
this.viewer.emit( 'select', this.selectedObjects.children.filter( o => o.type !== 'BoxHelper' ) )
this.viewer.emit( 'select', this.selectedObjectsUserData )
}
deselectObjects() {
this.selectedObjects.clear()
this.selectedObjectsUserData = []
this.viewer.needsRender = true
this.viewer.emit( 'select', this.selectedObjects.children.filter( o => o.type !== 'BoxHelper' ) )
this.viewer.emit( 'select', this.selectedObjectsUserData )
}
toggleSectionBox() {