Skip to main content

Scatter3D

Struct Scatter3D 

Source
pub struct Scatter3D { /* private fields */ }
Expand description

A 3D scatter plot: per-point (x, y, z) positions coloured by a per-point value through a Colormap, drawn as PointMarker sprites of one size.

Port of silx plot3d.items.Scatter3D (DataItem3D + ColormapMixIn + SymbolMixIn). silx colours points on the GPU from a colormap texture; here the mapping is done on the CPU via Colormap::color_at when building the geometry — simpler, and points are few relative to image rasters.

Implementations§

Source§

impl Scatter3D

Source

pub fn new() -> Self

An empty scatter with silx defaults: the viridis colormap over [0, 1], circle markers at DEFAULT_SCATTER3D_SIZE.

Source

pub fn set_data( &mut self, x: &[f32], y: &[f32], z: &[f32], values: &[f64], ) -> bool

Replace the point data (silx Scatter3D.setData). The four arrays must be the same length; on a length mismatch the data is left unchanged and false is returned (silx asserts equal lengths).

Source

pub fn with_data(self, x: &[f32], y: &[f32], z: &[f32], values: &[f64]) -> Self

Builder form of set_data; a length mismatch leaves the data empty.

Source

pub fn set_colormap(&mut self, colormap: Colormap)

Set the colormap (silx ColormapMixIn.setColormap).

Source

pub fn with_colormap(self, colormap: Colormap) -> Self

Builder form of set_colormap.

Source

pub fn colormap(&self) -> &Colormap

Read-only access to the colormap.

Source

pub fn colormap_mut(&mut self) -> &mut Colormap

Mutable access to the colormap (e.g. to set the value range directly).

Source

pub fn autoscale_colormap(&mut self, mode: AutoscaleMode) -> (f64, f64)

Fit the colormap’s value range to the current data with mode (silx’s colormap autoscale over the value array), returning the new (vmin, vmax). With no data the range falls back to the autoscale default, matching AutoscaleMode::range.

Source

pub fn set_marker(&mut self, marker: PointMarker)

Set the marker shape (silx SymbolMixIn.setSymbol).

Source

pub fn with_marker(self, marker: PointMarker) -> Self

Builder form of set_marker.

Source

pub fn set_size(&mut self, size: f32)

Set the marker size in pixels (silx SymbolMixIn.setSymbolSize), clamped to be non-negative.

Source

pub fn with_size(self, size: f32) -> Self

Builder form of set_size.

Source

pub fn len(&self) -> usize

Number of points.

Source

pub fn is_empty(&self) -> bool

True when there are no points.

Source

pub fn bounds(&self) -> Option<(Vec3, Vec3)>

Axis-aligned data bounds (min, max) over the points (silx DataItem3D.getBounds), or None when empty. Useful to frame a crate::widget::scene_widget::SceneWidget.

Source

pub fn append_to(&self, geometry: &mut Scene3dGeometry)

Append this scatter’s points (coloured through the colormap) to geometry, ready to upload via crate::render::gpu_scene3d::set_scene3d.

Trait Implementations§

Source§

impl Clone for Scatter3D

Source§

fn clone(&self) -> Scatter3D

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Scatter3D

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Scatter3D

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &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)

Convert &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> Downcast<T> for T

Source§

fn downcast(&self) -> &T

Source§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> SerializableAny for T
where T: 'static + Any + Clone + for<'a> Send + Sync,

Source§

impl<T, S> SimdFrom<T, S> for T
where S: Simd,

Source§

fn simd_from(value: T, _simd: S) -> T

Source§

impl<F, T, S> SimdInto<T, S> for F
where T: SimdFrom<F, S>, S: Simd,

Source§

fn simd_into(self, simd: S) -> T

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> Upcast<T> for T

Source§

fn upcast(&self) -> Option<&T>

Source§

impl<T> WasmNotSend for T
where T: Send,

Source§

impl<T> WasmNotSendSync for T

Source§

impl<T> WasmNotSync for T
where T: Sync,