#[non_exhaustive]pub struct SceneRenderItem {
pub mesh_index: usize,
pub model: [[f32; 4]; 4],
pub selected: bool,
pub visible: bool,
pub show_normals: bool,
pub material: Material,
pub active_attribute: Option<AttributeRef>,
pub scalar_range: Option<(f32, f32)>,
pub colormap_id: Option<ColormapId>,
pub nan_color: Option<[f32; 4]>,
pub two_sided: bool,
}Expand description
Per-object render data for one frame.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.mesh_index: usizeIndex into ViewportGpuResources::meshes for this object’s GPU buffers.
model: [[f32; 4]; 4]World-space model matrix (Translation * Rotation * Scale).
selected: boolWhether this object is selected (drives orange tint in WGSL).
visible: boolWhether this object is visible. Hidden objects are not drawn.
show_normals: boolWhether to render per-vertex normal visualization lines for this object.
material: MaterialPer-object material (color, shading coefficients, opacity, texture).
active_attribute: Option<AttributeRef>Named scalar attribute to colour by. None = use material base colour.
scalar_range: Option<(f32, f32)>Explicit scalar range (min, max). None = use auto-range computed at upload time.
colormap_id: Option<ColormapId>Colormap to use for scalar colouring. Ignored when active_attribute is None.
nan_color: Option<[f32; 4]>RGBA color for NaN scalar values. None = discard (fully transparent).
two_sided: boolRender this mesh with no back-face culling (visible from both sides).
Set this for analytical surfaces (plots, CFD isosurfaces) that the camera
can orbit under. Opaque geometry with this flag uses the
solid_two_sided_pipeline instead of solid_pipeline.
Trait Implementations§
Source§impl Clone for SceneRenderItem
impl Clone for SceneRenderItem
Source§fn clone(&self) -> SceneRenderItem
fn clone(&self) -> SceneRenderItem
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for SceneRenderItem
impl RefUnwindSafe for SceneRenderItem
impl Send for SceneRenderItem
impl Sync for SceneRenderItem
impl Unpin for SceneRenderItem
impl UnsafeUnpin for SceneRenderItem
impl UnwindSafe for SceneRenderItem
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.