1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
//! Working with multi-segment paths.
//!
//! This module provides:
//!
//! - [`PathSegment`] - a marker for a primitive curve that is not further subdivided
//! - [`SegmentedPath`] - a path composed of multiple segments, offering
//! enumeration, indexing, and arc-length-to-segment location
use cratePath;
/// Marker for a primitive curve that cannot be further subdivided.
///
/// Types implementing this trait represent atomic path building blocks (e.g. a
/// line segment, a Bézier curve). They behave exactly like a [`Path`] but signal
/// to [`SegmentedPath`] consumers that no further subdivision is expected.
/// A path made up of multiple [`PathSegment`]s.
///
/// Provides methods to enumerate segments, access them by index, and map a
/// global arc-length parameter to a `(segment_index, local_s)` pair.