pub trait Camera {
Show 13 methods
fn handle_event(&mut self, canvas: &Canvas, event: &WindowEvent);
fn eye(&self) -> Point3<f32>;
fn view_transform(&self) -> Isometry3<f32>;
fn transformation(&self) -> Matrix4<f32>;
fn inverse_transformation(&self) -> Matrix4<f32>;
fn clip_planes(&self) -> (f32, f32);
fn update(&mut self, canvas: &Canvas);
fn upload(
&self,
pass: usize,
proj: &mut ShaderUniform<Matrix4<f32>>,
view: &mut ShaderUniform<Matrix4<f32>>
);
fn num_passes(&self) -> usize { ... }
fn start_pass(&self, _pass: usize, _canvas: &Canvas) { ... }
fn render_complete(&self, _canvas: &Canvas) { ... }
fn project(
&self,
world_coord: &Point3<f32>,
size: &Vector2<f32>
) -> Vector2<f32> { ... }
fn unproject(
&self,
window_coord: &Point2<f32>,
size: &Vector2<f32>
) -> (Point3<f32>, Vector3<f32>) { ... }
}
Expand description
Trait every camera must implement.
Required Methods
fn handle_event(&mut self, canvas: &Canvas, event: &WindowEvent)
fn handle_event(&mut self, canvas: &Canvas, event: &WindowEvent)
Handle a mouse event.
fn view_transform(&self) -> Isometry3<f32>
fn view_transform(&self) -> Isometry3<f32>
The camera view transform.
fn transformation(&self) -> Matrix4<f32>
fn transformation(&self) -> Matrix4<f32>
The transformation applied by the camera to transform a point in world coordinates to a point in device coordinates.
fn inverse_transformation(&self) -> Matrix4<f32>
fn inverse_transformation(&self) -> Matrix4<f32>
The transformation applied by the camera to transform point in device coordinates to a point in world coordinate.
fn clip_planes(&self) -> (f32, f32)
fn clip_planes(&self) -> (f32, f32)
The clipping planes, aka. (znear
, zfar
).
Update the camera. This is called once at the beginning of the render loop.
fn upload(
&self,
pass: usize,
proj: &mut ShaderUniform<Matrix4<f32>>,
view: &mut ShaderUniform<Matrix4<f32>>
)
fn upload(
&self,
pass: usize,
proj: &mut ShaderUniform<Matrix4<f32>>,
view: &mut ShaderUniform<Matrix4<f32>>
)
Upload the camera view and projection to the gpu. This can be called multiple times on the render loop.
Provided Methods
fn num_passes(&self) -> usize
fn num_passes(&self) -> usize
The number of passes required by this camera.
fn start_pass(&self, _pass: usize, _canvas: &Canvas)
fn start_pass(&self, _pass: usize, _canvas: &Canvas)
Indicates that a pass will begin.
fn render_complete(&self, _canvas: &Canvas)
fn render_complete(&self, _canvas: &Canvas)
Indicates that the scene has been rendered and the post-processing is being run.
Converts a 3d point to 2d screen coordinates, assuming the screen has the size size
.