Trait implicit::Implicit
[−]
[src]
pub trait Implicit { fn sample(&self, pos: Point) -> f32; fn bounding_box(&self) -> Option<Rect>; fn follows_rules(&self) -> bool; fn boxed(self) -> SyncBox
where
Self: Sized + 'static + Sync, { ... } fn and<B: Implicit>(self, other: B) -> And<Self, B>
where
Self: Sized, { ... } fn and_not<B: Implicit>(self, other: B) -> And<Self, Not<B>>
where
Self: Sized, { ... } fn or<B: Implicit>(self, other: B) -> Or<Self, B>
where
Self: Sized, { ... } fn xor<B: Implicit>(self, other: B) -> Xor<Self, B>
where
Self: Sized, { ... } fn shrink(self, by: f32) -> Boundary<Self>
where
Self: Sized, { ... } fn grow(self, by: f32) -> Boundary<Self>
where
Self: Sized, { ... } fn cache_bounding_box(self) -> BoxCache<Self>
where
Self: Sized, { ... } fn transform(self) -> Transformation<Self>
where
Self: Sized, { ... } fn scale(self, sx: f32, sy: f32) -> Transformation<Self>
where
Self: Sized, { ... } fn translate(self, x: f32, y: f32) -> Transformation<Self>
where
Self: Sized, { ... } fn rotate(self, rads: f32) -> Transformation<Self>
where
Self: Sized, { ... } fn not(self) -> Not<Self>
where
Self: Sized, { ... } fn outline_inner(self, distance: f32) -> And<Self, Not<Boundary<Self>>>
where
Self: Sized + Clone, { ... } fn outline_outer(self, distance: f32) -> And<Boundary<Self>, Not<Self>>
where
Self: Sized + Clone, { ... } fn borrow<'a>(&'a self) -> &'a Implicit
where
Self: Sized, { ... } fn fix_rules(self, resolution: f32) -> PolyGroup
where
Self: Sized + Sync, { ... } fn smooth(self, amount: f32, resolution: f32) -> Boundary<PolyGroup>
where
Self: Sized + Sync, { ... } fn center(&self) -> Option<Point> { ... } fn center_at(self, point: &Point) -> Transformation<Self>
where
Self: Sized, { ... } }
Required Methods
fn sample(&self, pos: Point) -> f32
Returns the distance from a point to the nearest edge of a surface.
If the point is outside of the surface, return a positive number. If the point is inside of the surface, return a negative number. If the point is on the line, return 0.
fn bounding_box(&self) -> Option<Rect>
Returns a bounding box that surrounds a shape (if one exists).
If the shape is infinite, return None.
fn follows_rules(&self) -> bool
True if the shape follows all the rules about implicit shapes.
Provided Methods
fn boxed(self) -> SyncBox where
Self: Sized + 'static + Sync,
Self: Sized + 'static + Sync,
fn and<B: Implicit>(self, other: B) -> And<Self, B> where
Self: Sized,
Self: Sized,
fn and_not<B: Implicit>(self, other: B) -> And<Self, Not<B>> where
Self: Sized,
Self: Sized,
fn or<B: Implicit>(self, other: B) -> Or<Self, B> where
Self: Sized,
Self: Sized,
fn xor<B: Implicit>(self, other: B) -> Xor<Self, B> where
Self: Sized,
Self: Sized,
fn shrink(self, by: f32) -> Boundary<Self> where
Self: Sized,
Self: Sized,
fn grow(self, by: f32) -> Boundary<Self> where
Self: Sized,
Self: Sized,
fn cache_bounding_box(self) -> BoxCache<Self> where
Self: Sized,
Self: Sized,
fn transform(self) -> Transformation<Self> where
Self: Sized,
Self: Sized,
fn scale(self, sx: f32, sy: f32) -> Transformation<Self> where
Self: Sized,
Self: Sized,
fn translate(self, x: f32, y: f32) -> Transformation<Self> where
Self: Sized,
Self: Sized,
fn rotate(self, rads: f32) -> Transformation<Self> where
Self: Sized,
Self: Sized,
fn not(self) -> Not<Self> where
Self: Sized,
Self: Sized,
fn outline_inner(self, distance: f32) -> And<Self, Not<Boundary<Self>>> where
Self: Sized + Clone,
Self: Sized + Clone,
fn outline_outer(self, distance: f32) -> And<Boundary<Self>, Not<Self>> where
Self: Sized + Clone,
Self: Sized + Clone,
fn borrow<'a>(&'a self) -> &'a Implicit where
Self: Sized,
Self: Sized,
fn fix_rules(self, resolution: f32) -> PolyGroup where
Self: Sized + Sync,
Self: Sized + Sync,
fn smooth(self, amount: f32, resolution: f32) -> Boundary<PolyGroup> where
Self: Sized + Sync,
Self: Sized + Sync,
fn center(&self) -> Option<Point>
fn center_at(self, point: &Point) -> Transformation<Self> where
Self: Sized,
Self: Sized,
Trait Implementations
impl<'a> Implicit for &'a Implicit
[src]
fn sample(&self, pos: Point) -> f32
Returns the distance from a point to the nearest edge of a surface. Read more
fn bounding_box(&self) -> Option<Rect>
Returns a bounding box that surrounds a shape (if one exists). Read more
fn follows_rules(&self) -> bool
True if the shape follows all the rules about implicit shapes.
fn boxed(self) -> SyncBox where
Self: Sized + 'static + Sync,
Self: Sized + 'static + Sync,
fn and<B: Implicit>(self, other: B) -> And<Self, B> where
Self: Sized,
Self: Sized,
fn and_not<B: Implicit>(self, other: B) -> And<Self, Not<B>> where
Self: Sized,
Self: Sized,
fn or<B: Implicit>(self, other: B) -> Or<Self, B> where
Self: Sized,
Self: Sized,
fn xor<B: Implicit>(self, other: B) -> Xor<Self, B> where
Self: Sized,
Self: Sized,
fn shrink(self, by: f32) -> Boundary<Self> where
Self: Sized,
Self: Sized,
fn grow(self, by: f32) -> Boundary<Self> where
Self: Sized,
Self: Sized,
fn cache_bounding_box(self) -> BoxCache<Self> where
Self: Sized,
Self: Sized,
fn transform(self) -> Transformation<Self> where
Self: Sized,
Self: Sized,
fn scale(self, sx: f32, sy: f32) -> Transformation<Self> where
Self: Sized,
Self: Sized,
fn translate(self, x: f32, y: f32) -> Transformation<Self> where
Self: Sized,
Self: Sized,
fn rotate(self, rads: f32) -> Transformation<Self> where
Self: Sized,
Self: Sized,
fn not(self) -> Not<Self> where
Self: Sized,
Self: Sized,
fn outline_inner(self, distance: f32) -> And<Self, Not<Boundary<Self>>> where
Self: Sized + Clone,
Self: Sized + Clone,
fn outline_outer(self, distance: f32) -> And<Boundary<Self>, Not<Self>> where
Self: Sized + Clone,
Self: Sized + Clone,
fn borrow<'a>(&'a self) -> &'a Implicit where
Self: Sized,
Self: Sized,
fn fix_rules(self, resolution: f32) -> PolyGroup where
Self: Sized + Sync,
Self: Sized + Sync,
fn smooth(self, amount: f32, resolution: f32) -> Boundary<PolyGroup> where
Self: Sized + Sync,
Self: Sized + Sync,
fn center(&self) -> Option<Point>
fn center_at(self, point: &Point) -> Transformation<Self> where
Self: Sized,
Self: Sized,
Implementors
impl Implicit for PolyGroup
impl<A: Implicit> Implicit for OrThese<A>
impl<A: Implicit> Implicit for AndThese<A>
impl<A: Implicit> Implicit for Transformation<A>
impl<'a> Implicit for &'a Implicit
impl<'a, A> Implicit for &'a A where
A: Implicit + Sized,impl Implicit for SyncBox
impl<I: Implicit> Implicit for BoxCache<I>
impl<I: Implicit> Implicit for Not<I>
impl Implicit for Polygon
impl Implicit for Circle
impl<A: Implicit, B: Implicit> Implicit for And<A, B>
impl<A: Implicit, B: Implicit> Implicit for Or<A, B>
impl<A: Implicit, B: Implicit> Implicit for Xor<A, B>
impl<A: Implicit> Implicit for Boundary<A>
impl Implicit for Rectangle