pub struct Path { /* private fields */ }
Expand description
A simple path data structure.
§Custom attributes
Paths can store a fixed number of extra f32
values per endpoint, called
“custom attributes” or “interpolated attributes” through the documentation.
These can be handy to represent arbitrary attributes such as variable colors,
line width, etc.
See also:
§Representation
Paths contain two buffers:
- a buffer of commands (Begin, Line, Quadratic, Cubic, Close or End),
- and a buffer of pairs of floats that can be endpoints control points or custom attributes.
The order of storage for points is determined by the sequence of commands. Custom attributes (if any) always directly follow endpoints. If there is an odd number of attributes, the last float of the each attribute sequence is set to zero and is not used.
__________________________
| | | |
| Begin | Line |Quadratic| ...
|_______|______|_________|_
__________________________________________________________________________
| | | | | | | |
|start x,y|attributes| to x, y |attributes|ctrl x,y | to x, y |attributes| ...
|_________|__________|_________|__________|_________|_________|__________|_
Implementations§
Source§impl Path
impl Path
Sourcepub fn builder_with_attributes(num_attributes: usize) -> BuilderWithAttributes
pub fn builder_with_attributes(num_attributes: usize) -> BuilderWithAttributes
Creates a BuilderWithAttributes to build a path with custom attributes.
Sourcepub fn svg_builder() -> WithSvg<Builder>
pub fn svg_builder() -> WithSvg<Builder>
Creates an WithSvg to build a path with a rich set of commands.
Sourcepub fn attributes(&self, endpoint: EndpointId) -> &[f32]
pub fn attributes(&self, endpoint: EndpointId) -> &[f32]
Returns a slice over an endpoint’s custom attributes.
Sourcepub fn id_iter(&self) -> IdIter<'_>
pub fn id_iter(&self) -> IdIter<'_>
Iterates over the endpoint and control point ids of the Path
.
pub fn iter_with_attributes(&self) -> IterWithAttributes<'_>
Sourcepub fn transformed<T>(self, transform: &T) -> Pathwhere
T: Transformation<f32>,
pub fn transformed<T>(self, transform: &T) -> Pathwhere
T: Transformation<f32>,
Applies a transform to all endpoints and control points of this path and Returns the result.
Trait Implementations§
Source§impl AttributeStore for Path
impl AttributeStore for Path
Source§impl FromIterator<Event<Point2D<f32, UnknownUnit>, Point2D<f32, UnknownUnit>>> for Path
impl FromIterator<Event<Point2D<f32, UnknownUnit>, Point2D<f32, UnknownUnit>>> for Path
Source§impl Index<ControlPointId> for Path
impl Index<ControlPointId> for Path
Source§fn index(&self, id: ControlPointId) -> &Point2D<f32, UnknownUnit>
fn index(&self, id: ControlPointId) -> &Point2D<f32, UnknownUnit>
container[index]
) operation. Read moreSource§impl Index<EndpointId> for Path
impl Index<EndpointId> for Path
Source§fn index(&self, id: EndpointId) -> &Point2D<f32, UnknownUnit>
fn index(&self, id: EndpointId) -> &Point2D<f32, UnknownUnit>
container[index]
) operation. Read moreSource§impl<'l> IntoIterator for &'l Path
impl<'l> IntoIterator for &'l Path
Source§impl PositionStore for Path
impl PositionStore for Path
fn get_endpoint(&self, id: EndpointId) -> Point2D<f32, UnknownUnit>
fn get_control_point(&self, id: ControlPointId) -> Point2D<f32, UnknownUnit>
Auto Trait Implementations§
impl Freeze for Path
impl RefUnwindSafe for Path
impl Send for Path
impl Sync for Path
impl Unpin for Path
impl UnwindSafe for Path
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>
. 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>
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
.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> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> FromWorld for Twhere
T: Default,
impl<T> FromWorld for Twhere
T: Default,
Source§fn from_world(_world: &mut World) -> T
fn from_world(_world: &mut World) -> T
Self
using data from the given World