1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
use crate::camera::*; use crate::core::*; use crate::math::*; pub trait Geometry { /// /// Render only the depth into the current depth render target which is useful for shadow maps or depth pre-pass. /// Must be called in a render target render function, /// for example in the callback function of [Screen::write](crate::Screen::write). /// fn render_depth( &self, render_states: RenderStates, viewport: Viewport, camera: &Camera, ) -> Result<(), Error>; /// /// Render the depth (scaled such that a value of 1 corresponds to max_depth) into the red channel of the current color render target which for example is used for picking. /// Must be called in a render target render function, /// for example in the callback function of [Screen::write](crate::Screen::write). /// fn render_depth_to_red( &self, render_states: RenderStates, viewport: Viewport, camera: &Camera, max_depth: f32, ) -> Result<(), Error>; fn aabb(&self) -> Option<AxisAlignedBoundingBox>; }