diff --git a/src/features/ship/ShipModel.tsx b/src/features/ship/ShipModel.tsx index d6b2cc5fbd95cea6c000faa6acbd06bb808bf09b..18c82fdcf3e47845c8db9ba05b359639cf273ffb 100644 --- a/src/features/ship/ShipModel.tsx +++ b/src/features/ship/ShipModel.tsx @@ -4,9 +4,11 @@ import MeshLoader from "../viewport/MeshLoader"; import { Frame } from "../viewport/TF2"; import { Object3D } from 'three'; import { OBB } from "three-stdlib"; +import { ThreeEvent } from "@react-three/fiber"; interface ShipModelProps { onOBBCalculated?: (obb: OBB, parent: Object3D) => void; + onClick?: (event: ThreeEvent<MouseEvent>) => void; } export default function ShipModel(props: ShipModelProps) { @@ -24,6 +26,7 @@ export default function ShipModel(props: ShipModelProps) { position={ship.static_mesh.transform?.translation} scale={ship.static_mesh.transform?.scale} onOBBCalculated={props.onOBBCalculated} + onClick={props.onClick} /> </Frame> : null @@ -34,6 +37,7 @@ export default function ShipModel(props: ShipModelProps) { <StreamedMesh rosbridgeURI={ship.rosbridge.uri} topic={ship.topics.streamed_mesh} + onClick={props.onClick} /> : null } diff --git a/src/features/viewport/Viewport.tsx b/src/features/viewport/Viewport.tsx index 0261fa94299ba436e42bbc35014bc3c7e50e898d..3e5c82de92e330643ab32a6623f3faeb55367099 100644 --- a/src/features/viewport/Viewport.tsx +++ b/src/features/viewport/Viewport.tsx @@ -35,7 +35,7 @@ const Viewport = (props: PropsWithChildren<{ onMeshClick?: (event: ThreeEvent<Mo <Skybox baseURL="skyboxes/clouds/" visible={showSkybox} /> <Water waterNormalsTexture='waternormals.jpg' size={1000} heightOffset={oceanLevelOffest} visible={showOcean} /> - <ShipModel /> + <ShipModel onClick={props.onMeshClick} /> <For each={Object.values(robots)}> {