mirror of
https://github.com/nerfstudio-project/nerfstudio.git
synced 2026-11-11 02:24:38 +08:00
Added up vector offset (#749)
* Added up vector offset * Reset position when press space
This commit is contained in:
parent
0506de65cd
commit
cb2107db02
@ -122,7 +122,7 @@ export function get_scene_tree() {
|
||||
|
||||
window.addEventListener('keydown', (event) => {
|
||||
if (event.code === 'Space') {
|
||||
camera_controls.setTarget(0, 0, 0);
|
||||
camera_controls.setLookAt(0.7, -0.7, 0.3, 0, 0, 0);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@ -497,8 +497,36 @@ export default function CameraPanel(props) {
|
||||
});
|
||||
};
|
||||
|
||||
const setUp = () => {
|
||||
const rot = camera_main.rotation;
|
||||
const unitY = new THREE.Vector3(0, 1, 0);
|
||||
const upVec = unitY.applyEuler(rot);
|
||||
|
||||
const grid = sceneTree.find_object_no_create(['Grid']);
|
||||
grid.setRotationFromEuler(rot);
|
||||
|
||||
const pos = new THREE.Vector3();
|
||||
camera_main.getWorldPosition(pos);
|
||||
camera_main.up.set(upVec.x, upVec.y, upVec.z);
|
||||
sceneTree.metadata.camera_controls.updateCameraUp();
|
||||
sceneTree.metadata.camera_controls.setLookAt(pos.x, pos.y, pos.z, 0, 0, 0);
|
||||
const points = [new THREE.Vector3(0, 0, 0), upVec.multiplyScalar(2)];
|
||||
const geometry = new THREE.BufferGeometry().setFromPoints(points);
|
||||
const material = new THREE.LineBasicMaterial({
|
||||
color: 0xaa46fc,
|
||||
linewidth: 1,
|
||||
});
|
||||
const line = new THREE.LineSegments(geometry, material);
|
||||
sceneTree.set_object_from_path(['Viewer Up Vector'], line);
|
||||
};
|
||||
|
||||
return (
|
||||
<div className="CameraPanel">
|
||||
<div className="CameraPanel-top-button">
|
||||
<Button size="small" variant="outlined" onClick={setUp}>
|
||||
Reset Up Direction
|
||||
</Button>
|
||||
</div>
|
||||
<div>
|
||||
<div className="CameraPanel-top-button">
|
||||
<Button size="small" variant="outlined" onClick={add_camera}>
|
||||
@ -624,7 +652,9 @@ export default function CameraPanel(props) {
|
||||
<Button
|
||||
size="small"
|
||||
variant="outlined"
|
||||
onClick={() => set_slider_value(Math.max(0.0, slider_value - step_size))}
|
||||
onClick={() =>
|
||||
set_slider_value(Math.max(0.0, slider_value - step_size))
|
||||
}
|
||||
>
|
||||
<ArrowBackIosNewIcon />
|
||||
</Button>
|
||||
@ -665,7 +695,9 @@ export default function CameraPanel(props) {
|
||||
<Button
|
||||
size="small"
|
||||
variant="outlined"
|
||||
onClick={() => set_slider_value(Math.min(slider_max, slider_value + step_size))}
|
||||
onClick={() =>
|
||||
set_slider_value(Math.min(slider_max, slider_value + step_size))
|
||||
}
|
||||
>
|
||||
<ArrowForwardIosIcon />
|
||||
</Button>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user