pub enum Shape {
Group(Group),
Style {
fill: Option<Fill>,
stroke: Option<Stroke>,
shape: Box<Shape>,
},
Ellipse(Ellipse),
Image(Image),
Text(Text),
Curve(Curve),
Dynamic {
local_transform: Transform2<f32>,
shaper: Arc<Shaper>,
},
}Expand description
Building block of a dessin
Every complex shape should boil down to these.
Variants§
Group(Group)
A group of Shape, locally positionned by a transform
Style
Block of style
Fields
Ellipse(Ellipse)
Ellipse
Image(Image)
Image
Text(Text)
Text
Curve(Curve)
Curve
Dynamic
Shape whose body is generated only during export.
Enables chirurgical changes of the shape.
See Dynamic for more details.
Implementations§
Source§impl Shape
impl Shape
Sourcepub fn get_or_mutate_as_group(&mut self) -> &mut Group
pub fn get_or_mutate_as_group(&mut self) -> &mut Group
Get current shape as group If current shape isn’t a group, morph it into a group
Sourcepub fn extend_metadata<K: ToString, V: ToString, E: IntoIterator<Item = (K, V)>>(
&mut self,
extend: E,
)
pub fn extend_metadata<K: ToString, V: ToString, E: IntoIterator<Item = (K, V)>>( &mut self, extend: E, )
Add some metadata
Sourcepub fn add_metadata<K: ToString, V: ToString>(&mut self, (key, value): (K, V))
pub fn add_metadata<K: ToString, V: ToString>(&mut self, (key, value): (K, V))
Add some metadata
Trait Implementations§
Source§impl<E> Export<E> for Shapewhere
E: Exporter,
impl<E> Export<E> for Shapewhere
E: Exporter,
Source§fn write_into_exporter(
&self,
exporter: &mut E,
parent_transform: &Transform2<f32>,
_: StylePosition,
) -> Result<(), <E as Exporter>::Error>
fn write_into_exporter( &self, exporter: &mut E, parent_transform: &Transform2<f32>, _: StylePosition, ) -> Result<(), <E as Exporter>::Error>
Start the export of a dessin. Read more
Source§impl From<VerticalLayout> for Shape
impl From<VerticalLayout> for Shape
Source§fn from(_: VerticalLayout) -> Self
fn from(_: VerticalLayout) -> Self
Converts to this type from the input type.
Source§impl ShapeBoundingBox for Shape
impl ShapeBoundingBox for Shape
Source§fn local_bounding_box(&self) -> BoundingBox<UnParticular>
fn local_bounding_box(&self) -> BoundingBox<UnParticular>
BoundingBox of a ShapeSource§fn global_bounding_box(
&self,
parent_transform: &Transform2<f32>,
) -> BoundingBox<UnParticular>
fn global_bounding_box( &self, parent_transform: &Transform2<f32>, ) -> BoundingBox<UnParticular>
Absolute
BoundingBox from a transformSource§impl ShapeOp for Shape
impl ShapeOp for Shape
Source§fn transform(&mut self, transform_matrix: Transform2<f32>) -> &mut Self
fn transform(&mut self, transform_matrix: Transform2<f32>) -> &mut Self
Source§fn local_transform(&self) -> &Transform2<f32>
fn local_transform(&self) -> &Transform2<f32>
Get own local transform.
Required for the blanket implementation of
global_transform.Source§fn global_transform(
&self,
parent_transform: &Transform2<f32>,
) -> Transform2<f32>
fn global_transform( &self, parent_transform: &Transform2<f32>, ) -> Transform2<f32>
Absolute transform given the parent transform
Auto Trait Implementations§
impl !RefUnwindSafe for Shape
impl !UnwindSafe for Shape
impl Freeze for Shape
impl Send for Shape
impl Sync for Shape
impl Unpin for Shape
impl UnsafeUnpin for Shape
Blanket Implementations§
Source§impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
Source§fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
Convert the source color to the destination color using the specified
method.
Source§fn adapt_into(self) -> D
fn adapt_into(self) -> D
Convert the source color to the destination color using the bradford
method by default.
Source§impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
Source§fn arrays_from(colors: C) -> T
fn arrays_from(colors: C) -> T
Cast a collection of colors into a collection of arrays.
Source§impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
Source§fn arrays_into(self) -> C
fn arrays_into(self) -> C
Cast this collection of arrays into a collection of colors.
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
Source§impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
Source§type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
The number type that’s used in
parameters when converting.Source§fn cam16_into_unclamped(
self,
parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>,
) -> T
fn cam16_into_unclamped( self, parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>, ) -> T
Converts
self into C, using the provided parameters.Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
Source§fn components_from(colors: C) -> T
fn components_from(colors: C) -> T
Cast a collection of colors into a collection of color components.
Source§impl<T> DynamicShape for T
impl<T> DynamicShape for T
Source§impl<T> FromAngle<T> for T
impl<T> FromAngle<T> for T
Source§fn from_angle(angle: T) -> T
fn from_angle(angle: T) -> T
Performs a conversion from
angle.Source§impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
Source§fn from_stimulus(other: U) -> T
fn from_stimulus(other: U) -> T
Converts
other into Self, while performing the appropriate scaling,
rounding and clamping.Source§impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
Source§fn into_angle(self) -> U
fn into_angle(self) -> U
Performs a conversion into
T.Source§impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
Source§type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
The number type that’s used in
parameters when converting.Source§fn into_cam16_unclamped(
self,
parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>,
) -> T
fn into_cam16_unclamped( self, parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>, ) -> T
Converts
self into C, using the provided parameters.Source§impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
Source§fn into_color(self) -> U
fn into_color(self) -> U
Convert into T with values clamped to the color defined bounds Read more
Source§impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
Source§fn into_color_unclamped(self) -> U
fn into_color_unclamped(self) -> U
Convert into T. The resulting color might be invalid in its color space Read more
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>
Converts
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>
Converts
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<T> IntoStimulus<T> for T
impl<T> IntoStimulus<T> for T
Source§fn into_stimulus(self) -> T
fn into_stimulus(self) -> T
Converts
self into T, while performing the appropriate scaling,
rounding and clamping.Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
Read this value from the supplied reader. Same as
ReadEndian::read_from_little_endian().impl<T> Scalar for T
Source§impl<T> ShapeOpWith for Twhere
T: ShapeOp,
impl<T> ShapeOpWith for Twhere
T: ShapeOp,
Source§fn with_transform(self, transform_matrix: Transform2<f32>) -> Self
fn with_transform(self, transform_matrix: Transform2<f32>) -> Self
Transform
Source§fn with_translate<T: Into<Translation2<f32>>>(self, translation: T) -> Self
fn with_translate<T: Into<Translation2<f32>>>(self, translation: T) -> Self
Translate
Source§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>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
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
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.Source§impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
Source§type Error = <C as TryFromComponents<T>>::Error
type Error = <C as TryFromComponents<T>>::Error
The error for when
try_into_colors fails to cast.Source§fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
Try to cast this collection of color components into a collection of
colors. Read more
Source§impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
Source§fn try_into_color(self) -> Result<U, OutOfBounds<U>>
fn try_into_color(self) -> Result<U, OutOfBounds<U>>
Convert into T, returning ok if the color is inside of its defined
range, otherwise an
OutOfBounds error is returned which contains
the unclamped color. Read more