From 02871591fdd8457879c7563c0c91e8142b20eb21 Mon Sep 17 00:00:00 2001 From: Rune Harlyk Date: Fri, 1 Mar 2024 16:56:56 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=B7=20Adds=20setting=20for=20fixing=20?= =?UTF-8?q?camera=20on=20robot?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/components/Views/Model.svelte | 8 +++++++- app/src/lib/sceneBuilder.ts | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/app/src/components/Views/Model.svelte b/app/src/components/Views/Model.svelte index cb43d6f..74e9187 100644 --- a/app/src/components/Views/Model.svelte +++ b/app/src/components/Views/Model.svelte @@ -27,7 +27,8 @@ let settings = { 'Trace feet':true, - 'Trace points': 30 + 'Trace points': 30, + 'Fix camera on robot': true } onMount(async () => { @@ -48,6 +49,7 @@ const visibility = panel.addFolder('Visualization'); visibility.add(settings, 'Trace feet') visibility.add(settings, 'Trace points', 1, 1000, 1) + visibility.add(settings, 'Fix camera on robot') } const cacheModelFiles = async () => { @@ -142,6 +144,10 @@ renderTraceLines(toes) + if (settings['Fix camera on robot']) { + sceneManager.controls.target = robot.position.clone() + } + robot.position.y = robot.position.y - Math.min(...toes.map(toe => toe.y)); robot.rotation.z = lerp(robot.rotation.z, degToRad($mpu.heading + 90), 0.1); modelTargetAngles = $servoAngles; diff --git a/app/src/lib/sceneBuilder.ts b/app/src/lib/sceneBuilder.ts index 8e1ee51..7e48d7b 100644 --- a/app/src/lib/sceneBuilder.ts +++ b/app/src/lib/sceneBuilder.ts @@ -197,6 +197,7 @@ export default class SceneBuilder { public startRenderLoop = () => { this.renderer.setAnimationLoop(() => { + this.controls.update(); this.renderer.render(this.scene, this.camera); this.handleRobotShadow(); if (this.callback) this.callback();