Implemented moving streams (as a whole) in the sandbox from the UI. As in change their 3D position in real time
This commit is contained in:
@@ -59,6 +59,17 @@ export default class Sandbox {
|
||||
title: 'URL',
|
||||
disabled: true
|
||||
})
|
||||
const position = { value: { x: 0, y: 0, z: 0 } }
|
||||
const positionInput = this.steamsFolder
|
||||
.addInput(position, 'value', { label: 'Position' })
|
||||
.on('change', () => {
|
||||
this.viewer.speckleRenderer
|
||||
.subtree(url)
|
||||
.position.set(position.value.x, position.value.y, position.value.z)
|
||||
this.viewer.speckleRenderer.updateDirectLights(0.47, 0)
|
||||
this.viewer.speckleRenderer.updateHelpers()
|
||||
})
|
||||
|
||||
const button = this.steamsFolder
|
||||
.addButton({
|
||||
title: 'Unload'
|
||||
@@ -67,13 +78,14 @@ export default class Sandbox {
|
||||
this.removeStreamControls(url)
|
||||
})
|
||||
this.streams[url] = []
|
||||
this.streams[url].push(label, button)
|
||||
this.streams[url].push(label, positionInput, button)
|
||||
}
|
||||
|
||||
private removeStreamControls(url: string) {
|
||||
this.viewer.unloadObject(url)
|
||||
;(this.streams[url][0] as { dispose: () => void }).dispose()
|
||||
;(this.streams[url][1] as { dispose: () => void }).dispose()
|
||||
delete this.streams[url]
|
||||
}
|
||||
|
||||
public makeGenericUI() {
|
||||
@@ -102,6 +114,7 @@ export default class Sandbox {
|
||||
expanded: true
|
||||
})
|
||||
|
||||
this.tabs.pages[0].addSeparator()
|
||||
this.tabs.pages[0].addSeparator()
|
||||
|
||||
const toggleSectionBox = this.tabs.pages[0].addButton({
|
||||
|
||||
@@ -57,6 +57,10 @@ export default class SpeckleRenderer {
|
||||
return this.scene.getObjectByName('ContentGroup')
|
||||
}
|
||||
|
||||
public subtree(subtreeId: string) {
|
||||
return this.scene.getObjectByName(subtreeId)
|
||||
}
|
||||
|
||||
public get sceneBox() {
|
||||
return new Box3().setFromObject(this.allObjects)
|
||||
}
|
||||
@@ -296,7 +300,7 @@ export default class SpeckleRenderer {
|
||||
this.renderer.shadowMap.needsUpdate = true
|
||||
}
|
||||
|
||||
private updateHelpers() {
|
||||
public updateHelpers() {
|
||||
if (this.SHOW_HELPERS) {
|
||||
;(this.scene.getObjectByName('CamHelper') as CameraHelper).update()
|
||||
;(this.scene.getObjectByName('SceneBoxHelper') as Box3Helper).box.copy(
|
||||
|
||||
@@ -71,7 +71,7 @@ class SpeckleBasicMaterial extends MeshBasicMaterial {
|
||||
SpeckleBasicMaterial.matBuff.elements[12] = 0
|
||||
SpeckleBasicMaterial.matBuff.elements[13] = 0
|
||||
SpeckleBasicMaterial.matBuff.elements[14] = 0
|
||||
// SpeckleBasicMaterial.matBuff.multiply(object.matrixWorld)
|
||||
SpeckleBasicMaterial.matBuff.multiply(object.matrixWorld)
|
||||
object.modelViewMatrix.copy(SpeckleBasicMaterial.matBuff)
|
||||
|
||||
SpeckleBasicMaterial.vecBuff0.set(
|
||||
|
||||
@@ -71,7 +71,7 @@ class SpeckleLambertMaterial extends MeshLambertMaterial {
|
||||
SpeckleLambertMaterial.matBuff.elements[12] = 0
|
||||
SpeckleLambertMaterial.matBuff.elements[13] = 0
|
||||
SpeckleLambertMaterial.matBuff.elements[14] = 0
|
||||
// SpeckleLambertMaterial.matBuff.multiply(object.matrixWorld)
|
||||
SpeckleLambertMaterial.matBuff.multiply(object.matrixWorld)
|
||||
object.modelViewMatrix.copy(SpeckleLambertMaterial.matBuff)
|
||||
|
||||
SpeckleLambertMaterial.vecBuff0.set(
|
||||
|
||||
@@ -69,7 +69,7 @@ class SpeckleLineBasicMaterial extends LineBasicMaterial {
|
||||
SpeckleLineBasicMaterial.matBuff.elements[12] = 0
|
||||
SpeckleLineBasicMaterial.matBuff.elements[13] = 0
|
||||
SpeckleLineBasicMaterial.matBuff.elements[14] = 0
|
||||
// SpeckleLineBasicMaterial.matBuff.multiply(object.matrixWorld)
|
||||
SpeckleLineBasicMaterial.matBuff.multiply(object.matrixWorld)
|
||||
object.modelViewMatrix.copy(SpeckleLineBasicMaterial.matBuff)
|
||||
|
||||
SpeckleLineBasicMaterial.vecBuff0.set(
|
||||
|
||||
@@ -84,7 +84,7 @@ class SpeckleLineMaterial extends LineMaterial {
|
||||
SpeckleLineMaterial.matBuff.elements[12] = 0
|
||||
SpeckleLineMaterial.matBuff.elements[13] = 0
|
||||
SpeckleLineMaterial.matBuff.elements[14] = 0
|
||||
// SpeckleLineMaterial.matBuff.multiply(object.matrixWorld)
|
||||
SpeckleLineMaterial.matBuff.multiply(object.matrixWorld)
|
||||
object.modelViewMatrix.copy(SpeckleLineMaterial.matBuff)
|
||||
|
||||
SpeckleLineMaterial.vecBuff0.set(
|
||||
|
||||
@@ -93,7 +93,7 @@ class SpeckleStandardColoredMaterial extends MeshStandardMaterial {
|
||||
SpeckleStandardColoredMaterial.matBuff.elements[12] = 0
|
||||
SpeckleStandardColoredMaterial.matBuff.elements[13] = 0
|
||||
SpeckleStandardColoredMaterial.matBuff.elements[14] = 0
|
||||
// SpeckleStandardColoredMaterial.matBuff.multiply(object.matrixWorld)
|
||||
SpeckleStandardColoredMaterial.matBuff.multiply(object.matrixWorld)
|
||||
object.modelViewMatrix.copy(SpeckleStandardColoredMaterial.matBuff)
|
||||
|
||||
SpeckleStandardColoredMaterial.vecBuff0.set(
|
||||
|
||||
@@ -71,7 +71,7 @@ class SpeckleStandardMaterial extends MeshStandardMaterial {
|
||||
SpeckleStandardMaterial.matBuff.elements[12] = 0
|
||||
SpeckleStandardMaterial.matBuff.elements[13] = 0
|
||||
SpeckleStandardMaterial.matBuff.elements[14] = 0
|
||||
// SpeckleStandardMaterial.matBuff.multiply(object.matrixWorld)
|
||||
SpeckleStandardMaterial.matBuff.multiply(object.matrixWorld)
|
||||
object.modelViewMatrix.copy(SpeckleStandardMaterial.matBuff)
|
||||
|
||||
SpeckleStandardMaterial.vecBuff0.set(
|
||||
|
||||
Reference in New Issue
Block a user