Struct arcball::ArcballCamera
source · pub struct ArcballCamera<F> { /* private fields */ }
Expand description
The Shoemake Arcball camera.
Implementations§
source§impl<F: BaseFloat> ArcballCamera<F>
impl<F: BaseFloat> ArcballCamera<F>
sourcepub fn new(
look_at: &Matrix4<F>,
motion_speed: F,
zoom_speed: F,
screen: [F; 2]
) -> ArcballCamera<F>
pub fn new(
look_at: &Matrix4<F>,
motion_speed: F,
zoom_speed: F,
screen: [F; 2]
) -> ArcballCamera<F>
Create a new Arcball camera starting from the look at matrix look_at
. The motion_speed
sets the speed for panning and zoom_speed
the speed for zooming the camera. screen
should be
[screen_width, screen_height]
.
sourcepub fn rotate(&mut self, mouse_prev: Vector2<F>, mouse_cur: Vector2<F>)
pub fn rotate(&mut self, mouse_prev: Vector2<F>, mouse_cur: Vector2<F>)
Rotate the camera, mouse positions should be in pixel coordinates.
Rotates from the orientation at the previous mouse position specified by mouse_prev
to the orientation at the current mouse position, mouse_cur
.
sourcepub fn zoom(&mut self, amount: F, elapsed: F)
pub fn zoom(&mut self, amount: F, elapsed: F)
Zoom the camera in by some amount. Positive values zoom in, negative zoom out.
sourcepub fn pan(&mut self, mouse_delta: Vector2<F>, elapsed: F)
pub fn pan(&mut self, mouse_delta: Vector2<F>, elapsed: F)
Pan the camera following the motion of the mouse. The mouse delta should be in pixels.
sourcepub fn update_screen(&mut self, width: F, height: F)
pub fn update_screen(&mut self, width: F, height: F)
Update the screen dimensions, e.g. if the window has resized.