diff --git a/public/index.html b/public/index.html index e04f52e2adbf6b4988f6b3357b07cf6926a2609b..9b23843503161e5e635c3aa7c7a3ce90c03721fb 100644 --- a/public/index.html +++ b/public/index.html @@ -27,6 +27,7 @@ let selectedModel = 'robot'; // Standardauswahl let models = {}; let reticle; + let currentModel; async function activateXR() { const canvas = document.createElement('canvas'); @@ -90,6 +91,11 @@ reticle.visible = true; reticle.position.set(hitPose.transform.position.x, hitPose.transform.position.y, hitPose.transform.position.z); reticle.updateMatrixWorld(true); + + // Setze die Position des aktuellen Modells + if (currentModel) { + currentModel.position.set(hitPose.transform.position.x, hitPose.transform.position.y, hitPose.transform.position.z); + } } renderer.render(scene, camera); @@ -136,25 +142,20 @@ // Funktion zum Modellwechsel function switchModel(direction) { + // Entferne das aktuelle Modell + if (currentModel) { + scene.remove(currentModel); + } + + // Setze das ausgewählte Modell if (direction === 'next') { selectedModel = selectedModel === 'robot' ? 'flower' : 'robot'; - updateModel(); } else if (direction === 'previous') { selectedModel = selectedModel === 'robot' ? 'flower' : 'robot'; - updateModel(); } - } - function updateModel() { - // Entferne das aktuelle Modell - scene.remove(models[selectedModel]); - - // Lade das neue Modell basierend auf selectedModel - if (selectedModel === 'robot') { - scene.add(models.robot); - } else if (selectedModel === 'flower') { - scene.add(models.flower); - } + currentModel = models[selectedModel].clone(); // Erstelle eine Kopie des Modells, damit es platziert werden kann + scene.add(currentModel); } // AR starten