Struct kludgine::shapes::PathBuilder
source · pub struct PathBuilder<Unit, const TEXTURED: bool> { /* private fields */ }
Expand description
Builds a Path
.
Implementations§
source§impl<Unit> PathBuilder<Unit, false>where
Unit: Copy,
impl<Unit> PathBuilder<Unit, false>where
Unit: Copy,
sourcepub fn new(start_at: impl Into<Endpoint<Unit>>) -> Self
pub fn new(start_at: impl Into<Endpoint<Unit>>) -> Self
Creates a new path with the initial position start_at
.
sourcepub fn reset(&mut self, start_at: impl Into<Endpoint<Unit>>)
pub fn reset(&mut self, start_at: impl Into<Endpoint<Unit>>)
Clears this builder to a state as if it had just been created with
new()
.
sourcepub fn line_to(self, end_at: impl Into<Endpoint<Unit>>) -> Self
pub fn line_to(self, end_at: impl Into<Endpoint<Unit>>) -> Self
Create a straight line from the current location to end_at
.
sourcepub fn quadratic_curve_to(
self,
control: ControlPoint<Unit>,
end_at: impl Into<Endpoint<Unit>>
) -> Self
pub fn quadratic_curve_to( self, control: ControlPoint<Unit>, end_at: impl Into<Endpoint<Unit>> ) -> Self
Create a quadratic curve from the current location to end_at
using
control
as the curve’s control point.
sourcepub fn cubic_curve_to(
self,
control1: ControlPoint<Unit>,
control2: ControlPoint<Unit>,
end_at: impl Into<Endpoint<Unit>>
) -> Self
pub fn cubic_curve_to( self, control1: ControlPoint<Unit>, control2: ControlPoint<Unit>, end_at: impl Into<Endpoint<Unit>> ) -> Self
Create a cubic curve from the current location to end_at
using
control1
and control2
as the curve’s control points.
sourcepub fn arc(
self,
center: impl Into<Endpoint<Unit>>,
radii: Size<Unit>,
sweep: Angle
) -> Selfwhere
Unit: FloatConversion<Float = f32>,
pub fn arc(
self,
center: impl Into<Endpoint<Unit>>,
radii: Size<Unit>,
sweep: Angle
) -> Selfwhere
Unit: FloatConversion<Float = f32>,
Add a clockwise arc starting at the current location.
The arc will be drawn for an oval of size radii
. The amount of
rotation the arc will be drawn is controlled by sweep
.
sourcepub fn arc_counter(
self,
center: impl Into<Endpoint<Unit>>,
radii: Size<Unit>,
sweep: Angle
) -> Selfwhere
Unit: FloatConversion<Float = f32>,
pub fn arc_counter(
self,
center: impl Into<Endpoint<Unit>>,
radii: Size<Unit>,
sweep: Angle
) -> Selfwhere
Unit: FloatConversion<Float = f32>,
Add a counter-clockwise arc starting at the current location.
The arc will be drawn for an oval of size radii
. The amount of
rotation the arc will be drawn is controlled by sweep
.
source§impl<Unit> PathBuilder<Unit, true>where
Unit: Copy,
impl<Unit> PathBuilder<Unit, true>where
Unit: Copy,
sourcepub fn new_textured(
start_at: impl Into<Endpoint<Unit>>,
texture: Point<UPx>
) -> Self
pub fn new_textured( start_at: impl Into<Endpoint<Unit>>, texture: Point<UPx> ) -> Self
Creates a new path with the initial position start_at
.
sourcepub fn reset(
&mut self,
start_at: impl Into<Endpoint<Unit>>,
texture: Point<UPx>
)
pub fn reset( &mut self, start_at: impl Into<Endpoint<Unit>>, texture: Point<UPx> )
Clears this builder to a state as if it had just been created with
new_textured()
.
sourcepub fn line_to(
self,
end_at: impl Into<Endpoint<Unit>>,
texture: Point<UPx>
) -> Self
pub fn line_to( self, end_at: impl Into<Endpoint<Unit>>, texture: Point<UPx> ) -> Self
Create a straight line from the current location to end_at
.
sourcepub fn quadratic_curve_to(
self,
control: ControlPoint<Unit>,
end_at: impl Into<Endpoint<Unit>>,
texture: Point<UPx>
) -> Self
pub fn quadratic_curve_to( self, control: ControlPoint<Unit>, end_at: impl Into<Endpoint<Unit>>, texture: Point<UPx> ) -> Self
Create a quadratic curve from the current location to end_at
using
control
as the curve’s control point.
sourcepub fn cubic_curve_to(
self,
control1: ControlPoint<Unit>,
control2: ControlPoint<Unit>,
end_at: impl Into<Endpoint<Unit>>,
texture: Point<UPx>
) -> Self
pub fn cubic_curve_to( self, control1: ControlPoint<Unit>, control2: ControlPoint<Unit>, end_at: impl Into<Endpoint<Unit>>, texture: Point<UPx> ) -> Self
Create a cubic curve from the current location to end_at
using
control1
and control2
as the curve’s control points.
sourcepub fn arc(
self,
center: Point<Unit>,
radii: Size<Unit>,
sweep: Angle,
texture: impl Into<Endpoint<UPx>>
) -> Selfwhere
Unit: FloatConversion<Float = f32>,
pub fn arc(
self,
center: Point<Unit>,
radii: Size<Unit>,
sweep: Angle,
texture: impl Into<Endpoint<UPx>>
) -> Selfwhere
Unit: FloatConversion<Float = f32>,
Add a clockwise arc starting at the current location.
The arc will be drawn for an oval of size radii
. The amount of
rotation the arc will be drawn is controlled by sweep
.
sourcepub fn arc_counter(
self,
center: Point<Unit>,
radii: Size<Unit>,
sweep: Angle,
texture: impl Into<Endpoint<UPx>>
) -> Selfwhere
Unit: FloatConversion<Float = f32>,
pub fn arc_counter(
self,
center: Point<Unit>,
radii: Size<Unit>,
sweep: Angle,
texture: impl Into<Endpoint<UPx>>
) -> Selfwhere
Unit: FloatConversion<Float = f32>,
Add a counter-clockwise arc starting at the current location.
The arc will be drawn for an oval of size radii
. The amount of
rotation the arc will be drawn is controlled by sweep
.
Trait Implementations§
source§impl<Unit> Default for PathBuilder<Unit, false>
impl<Unit> Default for PathBuilder<Unit, false>
Auto Trait Implementations§
impl<Unit, const TEXTURED: bool> Freeze for PathBuilder<Unit, TEXTURED>where
Unit: Freeze,
impl<Unit, const TEXTURED: bool> RefUnwindSafe for PathBuilder<Unit, TEXTURED>where
Unit: RefUnwindSafe,
impl<Unit, const TEXTURED: bool> Send for PathBuilder<Unit, TEXTURED>where
Unit: Send,
impl<Unit, const TEXTURED: bool> Sync for PathBuilder<Unit, TEXTURED>where
Unit: Sync,
impl<Unit, const TEXTURED: bool> Unpin for PathBuilder<Unit, TEXTURED>where
Unit: Unpin,
impl<Unit, const TEXTURED: bool> UnwindSafe for PathBuilder<Unit, TEXTURED>where
Unit: UnwindSafe + RefUnwindSafe,
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>,
source§fn adapt_into(self) -> D
fn adapt_into(self) -> D
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
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
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<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>,
§type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
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
self
into C
, using the provided parameters.§impl<A> Cast for A
impl<A> Cast for A
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
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§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>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§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>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§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.§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.§impl<T> DowncastSync for T
impl<T> DowncastSync 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
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
other
into Self
, while performing the appropriate scaling,
rounding and clamping.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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
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>,
§type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
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
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
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
source§impl<T> IntoStimulus<T> for T
impl<T> IntoStimulus<T> for T
source§fn into_stimulus(self) -> T
fn into_stimulus(self) -> T
self
into T
, while performing the appropriate scaling,
rounding and clamping.source§impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
§type Error = <C as TryFromComponents<T>>::Error
type Error = <C as TryFromComponents<T>>::Error
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>
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>>
OutOfBounds
error is returned which contains
the unclamped color. Read more