import { useNavigate } from "react-router"; import { Canvas } from "@react-three/fiber"; import { Environment, useGLTF } from "@react-three/drei"; import { Button } from "@/components/ui/button"; const models = [ { name: "Motor de Combustión", url: "/3d/motor_de_combustion/scene.gltf", route: "/previewer", }, { name: "Raspberry Pi Cam V2.1", url: "/3d/raspberry_pi_cam_v2.1/scene.gltf", route: "/previewer2", }, ]; function ModelPreview({ url }: { url: string }) { const { scene } = useGLTF(url); // Define heuristic parameters for best perspective const parameters: Record = { "/3d/motor_de_combustion/scene.gltf": { position: [0, -1.5, 0], rotation: [0.2, Math.PI / 4, 0], scale: 0.01, }, "/3d/raspberry_pi_cam_v2.1/scene.gltf": { position: [0, -0.5, 0], rotation: [0.1, Math.PI / 6, 0], scale: 0.5, }, }; const { position, rotation, scale } = parameters[url] || { position: [0, 0, 0], rotation: [0, 0, 0], scale: 0.02 }; return ; } export default function Home() { const navigate = useNavigate(); return (

Selecciona un Modelo 3D

{models.map((model, index) => (
{/* 3D Preview */}
{/* Model Name */}

{model.name}

{/* Navigation Button */}
))}
); } // Preload models for performance models.forEach(model => useGLTF.preload(model.url));