Skip to content
Snippets Groups Projects
Commit f90751aa authored by Alexander Rose's avatar Alexander Rose
Browse files

fix repr boundingsphere update

parent 6fba929a
No related branches found
No related tags found
No related merge requests found
...@@ -295,7 +295,6 @@ namespace Canvas3D { ...@@ -295,7 +295,6 @@ namespace Canvas3D {
if (oldRO) { if (oldRO) {
SetUtils.difference(newRO, oldRO).forEach(o => scene.add(o)) SetUtils.difference(newRO, oldRO).forEach(o => scene.add(o))
SetUtils.difference(oldRO, newRO).forEach(o => scene.remove(o)) SetUtils.difference(oldRO, newRO).forEach(o => scene.remove(o))
scene.update()
} else { } else {
repr.renderObjects.forEach(o => scene.add(o)) repr.renderObjects.forEach(o => scene.add(o))
} }
......
...@@ -38,12 +38,12 @@ function calculateBoundingSphere(renderableMap: Map<RenderObject, Renderable<Ren ...@@ -38,12 +38,12 @@ function calculateBoundingSphere(renderableMap: Map<RenderObject, Renderable<Ren
boundaryHelper.reset(0.1); boundaryHelper.reset(0.1);
renderableMap.forEach(r => { renderableMap.forEach(r => {
if (!r.state.visible || !r.boundingSphere.radius) return; if (!r.boundingSphere.radius) return;
boundaryHelper.boundaryStep(r.boundingSphere.center, r.boundingSphere.radius); boundaryHelper.boundaryStep(r.boundingSphere.center, r.boundingSphere.radius);
}); });
boundaryHelper.finishBoundaryStep(); boundaryHelper.finishBoundaryStep();
renderableMap.forEach(r => { renderableMap.forEach(r => {
if (!r.state.visible || !r.boundingSphere.radius) return; if (!r.boundingSphere.radius) return;
boundaryHelper.extendStep(r.boundingSphere.center, r.boundingSphere.radius); boundaryHelper.extendStep(r.boundingSphere.center, r.boundingSphere.radius);
}); });
......
...@@ -161,12 +161,15 @@ export function UnitsVisual<P extends UnitsParams>(builder: UnitsVisualGeometryB ...@@ -161,12 +161,15 @@ export function UnitsVisual<P extends UnitsParams>(builder: UnitsVisualGeometryB
// console.log('update geometry') // console.log('update geometry')
if (newGeometry) { if (newGeometry) {
ValueCell.update(renderObject.values.drawCount, Geometry.getDrawCount(newGeometry)) ValueCell.update(renderObject.values.drawCount, Geometry.getDrawCount(newGeometry))
updateBoundingSphere(renderObject.values, newGeometry)
} else { } else {
throw new Error('expected geometry to be given') throw new Error('expected geometry to be given')
} }
} }
if (updateState.updateTransform || updateState.createGeometry) {
updateBoundingSphere(renderObject.values, newGeometry || geometry)
}
if (updateState.updateSize) { if (updateState.updateSize) {
// not all geometries have size data, so check here // not all geometries have size data, so check here
if ('uSize' in renderObject.values) { if ('uSize' in renderObject.values) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment