Files
Dwinzo_Demo/app/src/modules/builder/asset/models/models.tsx

38 lines
1.3 KiB
TypeScript
Raw Normal View History

2025-06-10 15:28:23 +05:30
import Model from './model/model';
import { useThree } from '@react-three/fiber';
import { CameraControls } from '@react-three/drei';
import { Vector3 } from 'three';
import { useSelectedFloorItem } from '../../../../store/builder/store';
import { useSelectedAsset } from '../../../../store/simulation/useSimulationStore';
2025-06-23 09:37:53 +05:30
import { useSceneContext } from '../../../scene/sceneContext';
2025-06-10 15:28:23 +05:30
function Models() {
const { controls } = useThree();
2025-06-23 09:37:53 +05:30
const { assetStore } = useSceneContext();
const { assets } = assetStore();
2025-06-10 15:28:23 +05:30
const { selectedFloorItem, setSelectedFloorItem } = useSelectedFloorItem();
const { selectedAsset, clearSelectedAsset } = useSelectedAsset();
return (
<group
name='Asset Group'
onPointerMissed={(e) => {
e.stopPropagation();
if (selectedFloorItem) {
const target = (controls as CameraControls).getTarget(new Vector3());
(controls as CameraControls).setTarget(target.x, 0, target.z, true);
setSelectedFloorItem(null);
}
if (selectedAsset) {
clearSelectedAsset();
}
}}
>
{assets.map((asset) =>
<Model key={asset.modelUuid} asset={asset} />
)}
</group>
)
}
export default Models