From 2f070bed5d4cb52346ce0d25f7e7ce484639cf7a Mon Sep 17 00:00:00 2001 From: Rune Harlyk Date: Mon, 7 Aug 2023 22:19:19 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=91=9F=20Moves=20render=20functionality?= =?UTF-8?q?=20to=20own=20functions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/components/Model/ModelView.svelte | 33 ++++++++++++----------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/app/src/components/Model/ModelView.svelte b/app/src/components/Model/ModelView.svelte index aaf8c25..d54c028 100644 --- a/app/src/components/Model/ModelView.svelte +++ b/app/src/components/Model/ModelView.svelte @@ -219,28 +219,31 @@ const handleResize = () => { camera.updateProjectionMatrix(); } +const handleVideoStream = () => { + if(!isLoaded || !showStream) return + context.drawImage(stream, 0, 0) + texture.needsUpdate = true; +} + +const handleRobotShadow = () => { + if(isLoaded) return + const intervalId = setInterval(() => { + robot.traverse(c => c.castShadow = true); + }, 10); + setTimeout(() => { + clearInterval(intervalId) + }, 1000); + isLoaded = true; +} const render = () => { requestAnimationFrame(render); renderer.render(scene, camera); if(!robot) return - robot.rotation.z = lerp(robot.rotation.z, MathUtils.degToRad($dataBuffer[1]), 0.1) - - if(!isLoaded){ - const intervalId = setInterval(() => { - robot.traverse(c => c.castShadow = true); - }, 10); - setTimeout(() => { - clearInterval(intervalId) - }, 1000); - isLoaded = true; - } + handleRobotShadow() - if(isLoaded && showStream) { - context.drawImage(stream, 0, 0) - texture.needsUpdate = true; - } + handleVideoStream() for (let i = 0; i < servoNames.length; i++) { modelAngles[i] = lerp(robot.joints[servoNames[i]].angle * (180/Math.PI), modelTargetAngles[i], 0.1)