pub struct Mesh { /* private fields */ }Expand description
A triangle mesh Geometry.
Implementations§
source§impl Mesh
impl Mesh
sourcepub fn transformation(&self) -> Mat4
pub fn transformation(&self) -> Mat4
Returns the local to world transformation applied to this mesh.
sourcepub fn set_transformation(&mut self, transformation: Mat4)
pub fn set_transformation(&mut self, transformation: Mat4)
Set the local to world transformation applied to this mesh. If any animation method is set using Self::set_animation, the transformation from that method is applied before this transformation.
sourcepub fn set_animation(
&mut self,
animation: impl Fn(f32) -> Mat4 + Send + Sync + 'static
)
pub fn set_animation( &mut self, animation: impl Fn(f32) -> Mat4 + Send + Sync + 'static )
Specifies a function which takes a time parameter as input and returns a transformation that should be applied to this mesh at the given time. To actually animate this mesh, call Geometry::animate at each frame which in turn evaluates the animation function defined by this method. This transformation is applied first, then the local to world transformation defined by Self::set_transformation.
Trait Implementations§
source§impl Geometry for Mesh
impl Geometry for Mesh
source§fn aabb(&self) -> AxisAlignedBoundingBox
fn aabb(&self) -> AxisAlignedBoundingBox
Returns the AxisAlignedBoundingBox for this geometry in the global coordinate system.
source§fn animate(&mut self, time: f32)
fn animate(&mut self, time: f32)
For updating the animation of this geometry if it is animated, if not, this method does nothing.
The time parameter should be some continious time, for example the time since start.
source§fn draw(
&self,
camera: &Camera,
program: &Program,
render_states: RenderStates,
attributes: FragmentAttributes
)
fn draw( &self, camera: &Camera, program: &Program, render_states: RenderStates, attributes: FragmentAttributes )
Draw this geometry.
source§fn vertex_shader_source(
&self,
required_attributes: FragmentAttributes
) -> String
fn vertex_shader_source( &self, required_attributes: FragmentAttributes ) -> String
Returns the vertex shader source for this geometry given that the fragment shader needs the given vertex attributes.
source§fn id(&self, required_attributes: FragmentAttributes) -> u16
fn id(&self, required_attributes: FragmentAttributes) -> u16
Returns a unique ID for each variation of the shader source returned from
Geometry::vertex_shader_source. Read moresource§fn render_with_material(
&self,
material: &dyn Material,
camera: &Camera,
lights: &[&dyn Light]
)
fn render_with_material( &self, material: &dyn Material, camera: &Camera, lights: &[&dyn Light] )
Render the geometry with the given Material.
Must be called in the callback given as input to a RenderTarget, ColorTarget or DepthTarget write method.
Use an empty array for the
lights argument, if the material does not require lights to be rendered.source§fn render_with_effect(
&self,
material: &dyn Effect,
camera: &Camera,
lights: &[&dyn Light],
color_texture: Option<ColorTexture<'_>>,
depth_texture: Option<DepthTexture<'_>>
)
fn render_with_effect( &self, material: &dyn Effect, camera: &Camera, lights: &[&dyn Light], color_texture: Option<ColorTexture<'_>>, depth_texture: Option<DepthTexture<'_>> )
Render the geometry with the given Effect.
Must be called in the callback given as input to a RenderTarget, ColorTarget or DepthTarget write method.
Use an empty array for the
lights argument, if the material does not require lights to be rendered.Auto Trait Implementations§
impl !RefUnwindSafe for Mesh
impl !Send for Mesh
impl !Sync for Mesh
impl Unpin for Mesh
impl !UnwindSafe for Mesh
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more