Skip to main content

Shape

Struct Shape 

Source
pub struct Shape {
    pub kind: ShapeKind,
    pub x: Vec<f64>,
    pub y: Vec<f64>,
    pub color: Color32,
    pub fill: bool,
    pub line_style: LineStyle,
    pub line_width: f32,
    pub gap_color: Option<Color32>,
    pub is_overlay: bool,
}
Expand description

A shape drawn over the data area (silx BackendBase.addShape).

fill is honored for ShapeKind::Polygon / ShapeKind::Rectangle. Concave polygons fill correctly: the widget chrome fills the polygon’s ear-clipping triangulation (triangulate_simple_polygon) as a mesh rather than using egui’s convex-only Shape::convex_polygon, matching silx’s matplotlib / pygfx backends. The outline (and all line kinds) honor line_style / line_width, with gap_color filling dash gaps (silx gapcolor).

Fields§

§kind: ShapeKind

What geometry this shape draws.

§x: Vec<f64>

Data X coordinates of the shape’s points (see ShapeKind for which array each kind reads).

§y: Vec<f64>

Data Y coordinates of the shape’s points.

§color: Color32

Outline and fill color (silx color).

§fill: bool

Fill the interior (silx fill); honored for Polygon / Rectangle.

§line_style: LineStyle

Outline stroke style (silx linestyle).

§line_width: f32

Outline width in logical points (silx linewidth).

§gap_color: Option<Color32>

Second color filling dash gaps in the outline (silx gapcolor); None leaves the gaps empty.

§is_overlay: bool

Whether the shape draws in the overlay layer (silx _OverlayItem.isOverlay / setOverlay, shape.py:54-73).

Honored by the renderer’s two-pass split: true draws in the overlay layer on top of the chrome (like an ROI), false in the base data layer under the overlay items (ROIs, markers, crosshair). Defaults to true (the port’s historical behavior); silx’s _OverlayItem defaults to False, but siplot’s shape constructors are used as on-top annotations, so the default is kept and callers opt into the data layer via Shape::with_overlay.

Implementations§

Source§

impl Shape

Source

pub fn polygon(x: Vec<f64>, y: Vec<f64>) -> Self

A closed polygon through (x[i], y[i]). Panics if x and y differ in length.

Source

pub fn rectangle(x0: f64, y0: f64, x1: f64, y1: f64) -> Self

An axis-aligned rectangle between corners (x0, y0) and (x1, y1).

Source

pub fn polyline(x: Vec<f64>, y: Vec<f64>) -> Self

An open polyline through (x[i], y[i]). Panics if x and y differ in length.

Source

pub fn hlines(y: Vec<f64>) -> Self

One full-width horizontal line at each y value (silx 'hline').

Source

pub fn vlines(x: Vec<f64>) -> Self

One full-height vertical line at each x value (silx 'vline').

Source

pub fn with_color(self, color: Color32) -> Self

Set the outline / fill color.

Source

pub fn with_fill(self, fill: bool) -> Self

Fill the interior (Polygon / Rectangle only).

Source

pub fn with_line_style(self, style: LineStyle) -> Self

Set the outline stroke style.

Source

pub fn with_line_width(self, width: f32) -> Self

Set the outline width.

Source

pub fn with_gap_color(self, color: Color32) -> Self

Set the dash-gap fill color (silx gapcolor).

Source

pub fn with_overlay(self, overlay: bool) -> Self

Set whether the shape draws in the overlay layer (true) or the base data layer (false) — silx _OverlayItem.setOverlay.

Source

pub fn screen_points(&self, t: &Transform) -> Vec<Pos2>

Screen-space vertices for the area-shaped kinds: the four corners of a ShapeKind::Rectangle, or each (x[i], y[i]) of a ShapeKind::Polygon / ShapeKind::Polyline. Empty for the line kinds, whose lines span the data area and are placed at draw time.

Trait Implementations§

Source§

impl Clone for Shape

Source§

fn clone(&self) -> Shape

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 Shape

Source§

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

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

impl PartialEq for Shape

Source§

fn eq(&self, other: &Shape) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for Shape

Auto Trait Implementations§

§

impl Freeze for Shape

§

impl RefUnwindSafe for Shape

§

impl Send for Shape

§

impl Sync for Shape

§

impl Unpin for Shape

§

impl UnsafeUnpin for Shape

§

impl UnwindSafe for Shape

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 + Send + Sync>

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,