feat(viewer): adds selection & doubleclick events

This commit is contained in:
Dimitrie Stefanescu
2021-04-26 20:57:03 +01:00
parent 8ce8180130
commit 5eeeae53a1
3 changed files with 16 additions and 0 deletions
+11
View File
@@ -17,6 +17,16 @@ window.loadData = async function LoadData( url ) {
await v.loadObject( url, token )
}
v.on( 'select', objects => {
console.info( `Selection event. Current selection count: ${objects.length}.` )
console.log( objects )
} )
v.on( 'object-doubleclicked', obj => {
console.info( 'Object double click event.' )
console.log( obj )
} )
window.viewerScreenshot = function() {
let data = v.interactions.screenshot() // transparent png.
@@ -32,3 +42,4 @@ window.viewerScreenshot = function() {
window.zoomFast = function(){
v.interactions.zoomExtents( 0.95, false )
}
+2
View File
@@ -6,6 +6,7 @@ import { getConversionFactor } from './Units'
/**
* Utility class providing some top level conversion methods.
* Warning: HIC SVNT DRACONES.
*/
export default class Coverter {
@@ -100,6 +101,7 @@ export default class Coverter {
/**
* Directly converts an object and invokes the callback with the the conversion result.
* If you don't know what you're doing, use traverseAndConvert() instead.
* @param {[type]} obj [description]
* @param {Function} callback [description]
* @return {[type]} [description]
@@ -36,6 +36,7 @@ export default class InteractionHandler {
if ( !objs || objs.length === 0 ) this.zoomExtents()
else this.zoomToObject( objs[0].object )
this.viewer.needsRender = true
this.viewer.emit( 'object-doubleclicked', objs[0].object )
}
_handleSelect( objs ) {
@@ -66,11 +67,13 @@ export default class InteractionHandler {
box.material = this.selectionEdgesMaterial
this.selectedObjects.add( box )
this.viewer.needsRender = true
this.viewer.emit( 'select', this.selectedObjects.children.filter( o => o.type !== 'BoxHelper' ) )
}
deselectObjects() {
this.selectedObjects.clear()
this.viewer.needsRender = true
this.viewer.emit( 'select', this.selectedObjects.children.filter( o => o.type !== 'BoxHelper' ) )
}
toggleSectionBox() {