toto10's picture
5abb6291403b19368a3b842ea4f13b1f23694d90948b2da0ae23e85acf2bb1e9
fb54f6e
raw
history blame
2.51 kB
import React, {useState} from 'react';
import Slider from '@mui/material/Slider';
import Box from '@mui/material/Box';
import {Accordion, AccordionSummary, AccordionDetails, Typography} from '@mui/material';
import ExpandMoreIcon from "@mui/icons-material/ExpandMore";
function CameraPanel({setCameraNear, setCameraFar, setCameraFOV}) {
const [far, setFar] = useState(1000);
const [near, setNear] = useState(0.1);
const [fov, setFOV] = useState(45);
return (<div>
<Box mb={1} mt={1}>
<Accordion>
<AccordionSummary expandIcon={<ExpandMoreIcon/>}>
Camera
</AccordionSummary>
<AccordionDetails>
<Box width="100%">
<Typography gutterBottom>Near</Typography>
<Slider min={0.1} max={100}
valueLabelDisplay="auto"
step={0.1}
value={near}
onChange={(event, newValue) => {
setNear(newValue);
setCameraNear(newValue);
}}
aria-labelledby="continuous-slider"
/>
<Typography gutterBottom>Far</Typography>
<Slider min={0.1} max={20000}
valueLabelDisplay="auto"
value={far}
onChange={(event, newValue) => {
setFar(newValue);
setCameraFar(newValue)
}}
aria-labelledby="continuous-slider"
/>
<Typography gutterBottom>FOV</Typography>
<Slider min={1} max={100}
valueLabelDisplay="auto"
value={fov}
onChange={(event, newValue) => {
setFOV(newValue);
setCameraFOV(newValue);
}}
aria-labelledby="continuous-slider"
/>
</Box>
</AccordionDetails>
</Accordion>
</Box>
</div>);
}
export default CameraPanel;