pub trait Segment: Sized + Copy {
    type Scalar: Scalar;
Show 15 methods
    // Required methods
    fn from(&self) -> Point2D<Self::Scalar, UnknownUnit>;
    fn to(&self) -> Point2D<Self::Scalar, UnknownUnit>;
    fn sample(&self, t: Self::Scalar) -> Point2D<Self::Scalar, UnknownUnit>;
    fn derivative(&self, t: Self::Scalar) -> Vector2D<Self::Scalar, UnknownUnit>;
    fn split(&self, t: Self::Scalar) -> (Self, Self);
    fn before_split(&self, t: Self::Scalar) -> Self;
    fn after_split(&self, t: Self::Scalar) -> Self;
    fn split_range(&self, t_range: Range<Self::Scalar>) -> Self;
    fn flip(&self) -> Self;
    fn approximate_length(&self, tolerance: Self::Scalar) -> Self::Scalar;
    fn for_each_flattened_with_t(
        &self,
        tolerance: Self::Scalar,
        callback: &mut dyn FnMut(&LineSegment<Self::Scalar>, Range<Self::Scalar>),
    );
    // Provided methods
    fn x(&self, t: Self::Scalar) -> Self::Scalar { ... }
    fn y(&self, t: Self::Scalar) -> Self::Scalar { ... }
    fn dx(&self, t: Self::Scalar) -> Self::Scalar { ... }
    fn dy(&self, t: Self::Scalar) -> Self::Scalar { ... }
}Expand description
Common APIs to segment types.
Required Associated Types§
Required Methods§
Sourcefn from(&self) -> Point2D<Self::Scalar, UnknownUnit>
 
fn from(&self) -> Point2D<Self::Scalar, UnknownUnit>
Start of the curve.
Sourcefn to(&self) -> Point2D<Self::Scalar, UnknownUnit>
 
fn to(&self) -> Point2D<Self::Scalar, UnknownUnit>
End of the curve.
Sourcefn sample(&self, t: Self::Scalar) -> Point2D<Self::Scalar, UnknownUnit>
 
fn sample(&self, t: Self::Scalar) -> Point2D<Self::Scalar, UnknownUnit>
Sample the curve at t (expecting t between 0 and 1).
Sourcefn derivative(&self, t: Self::Scalar) -> Vector2D<Self::Scalar, UnknownUnit>
 
fn derivative(&self, t: Self::Scalar) -> Vector2D<Self::Scalar, UnknownUnit>
Sample the derivative at t (expecting t between 0 and 1).
Sourcefn before_split(&self, t: Self::Scalar) -> Self
 
fn before_split(&self, t: Self::Scalar) -> Self
Return the curve before the split point.
Sourcefn after_split(&self, t: Self::Scalar) -> Self
 
fn after_split(&self, t: Self::Scalar) -> Self
Return the curve after the split point.
Sourcefn split_range(&self, t_range: Range<Self::Scalar>) -> Self
 
fn split_range(&self, t_range: Range<Self::Scalar>) -> Self
Return the curve inside a given range of t.
This is equivalent splitting at the range’s end points.
Sourcefn approximate_length(&self, tolerance: Self::Scalar) -> Self::Scalar
 
fn approximate_length(&self, tolerance: Self::Scalar) -> Self::Scalar
Compute the length of the segment using a flattened approximation.
Sourcefn for_each_flattened_with_t(
    &self,
    tolerance: Self::Scalar,
    callback: &mut dyn FnMut(&LineSegment<Self::Scalar>, Range<Self::Scalar>),
)
 
fn for_each_flattened_with_t( &self, tolerance: Self::Scalar, callback: &mut dyn FnMut(&LineSegment<Self::Scalar>, Range<Self::Scalar>), )
Approximates the curve with sequence of line segments.
The tolerance parameter defines the maximum distance between the curve and
its approximation.
The parameter t at the final segment is guaranteed to be equal to 1.0.
Provided Methods§
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.