pub struct Region { /* private fields */ }
Expand description
A single, continuous 2d region, may contain holes
Interior cycles must have the opposite winding of the exterior cycle,
meaning on the front side of the region, they must appear clockwise. This
means that all HalfEdge
s that bound a Region
have the interior of the
region on their left side (on the region’s front side).
Implementations§
source§impl Region
impl Region
sourcepub fn new(
exterior: Handle<Cycle>,
interiors: impl IntoIterator<Item = Handle<Cycle>>
) -> Self
pub fn new( exterior: Handle<Cycle>, interiors: impl IntoIterator<Item = Handle<Cycle>> ) -> Self
Construct an instance of Region
sourcepub fn exterior(&self) -> &Handle<Cycle>
pub fn exterior(&self) -> &Handle<Cycle>
Access the cycle that bounds the region on the outside
sourcepub fn interiors(&self) -> &ObjectSet<Cycle>
pub fn interiors(&self) -> &ObjectSet<Cycle>
Access the cycles that bound the region on the inside
Each of these cycles defines a hole in the region .
sourcepub fn all_cycles(&self) -> impl Iterator<Item = &Handle<Cycle>>
pub fn all_cycles(&self) -> impl Iterator<Item = &Handle<Cycle>>
Access all cycles of the region (both exterior and interior)
Trait Implementations§
source§impl BoundingVerticesOfHalfEdge for Region
impl BoundingVerticesOfHalfEdge for Region
source§fn bounding_vertices_of_half_edge(
&self,
half_edge: &Handle<HalfEdge>
) -> Option<CurveBoundary<Vertex>>
fn bounding_vertices_of_half_edge( &self, half_edge: &Handle<HalfEdge> ) -> Option<CurveBoundary<Vertex>>
Determine the bounding vertices of a half-edge Read more
source§impl BuildRegion for Region
impl BuildRegion for Region
source§impl Ord for Region
impl Ord for Region
source§impl PartialEq for Region
impl PartialEq for Region
source§impl PartialOrd for Region
impl PartialOrd for Region
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for
self
and other
) and is used by the <=
operator. Read moresource§impl ReplaceCurve for Region
impl ReplaceCurve for Region
source§fn replace_curve(
&self,
original: &Handle<Curve>,
replacement: Handle<Curve>,
core: &mut Core
) -> ReplaceOutput<Self, Self::BareObject>
fn replace_curve( &self, original: &Handle<Curve>, replacement: Handle<Curve>, core: &mut Core ) -> ReplaceOutput<Self, Self::BareObject>
Replace the curve
source§impl ReplaceHalfEdge for Region
impl ReplaceHalfEdge for Region
source§fn replace_half_edge<const N: usize>(
&self,
original: &Handle<HalfEdge>,
replacements: [Handle<HalfEdge>; N],
core: &mut Core
) -> ReplaceOutput<Self, Self::BareObject>
fn replace_half_edge<const N: usize>( &self, original: &Handle<HalfEdge>, replacements: [Handle<HalfEdge>; N], core: &mut Core ) -> ReplaceOutput<Self, Self::BareObject>
Replace the half-edge
source§impl ReplaceVertex for Region
impl ReplaceVertex for Region
source§fn replace_vertex(
&self,
original: &Handle<Vertex>,
replacement: Handle<Vertex>,
core: &mut Core
) -> ReplaceOutput<Self, Self::BareObject>
fn replace_vertex( &self, original: &Handle<Vertex>, replacement: Handle<Vertex>, core: &mut Core ) -> ReplaceOutput<Self, Self::BareObject>
Replace the vertex
source§impl ReverseCurveCoordinateSystems for Region
impl ReverseCurveCoordinateSystems for Region
source§fn reverse_curve_coordinate_systems(&self, core: &mut Core) -> Self
fn reverse_curve_coordinate_systems(&self, core: &mut Core) -> Self
Reverse the direction of the curve coordinate systems within an object Read more
source§impl SweepRegion for Region
impl SweepRegion for Region
source§fn sweep_region(
&self,
surface: &Handle<Surface>,
color: Option<Color>,
path: impl Into<Vector<3>>,
cache: &mut SweepCache,
core: &mut Core
) -> SweptRegion
fn sweep_region( &self, surface: &Handle<Surface>, color: Option<Color>, path: impl Into<Vector<3>>, cache: &mut SweepCache, core: &mut Core ) -> SweptRegion
source§impl TransformObject for Region
impl TransformObject for Region
source§impl UpdateRegion for Region
impl UpdateRegion for Region
source§fn update_exterior<T>(
&self,
update: impl FnOnce(&Handle<Cycle>, &mut Core) -> T,
core: &mut Core
) -> Self
fn update_exterior<T>( &self, update: impl FnOnce(&Handle<Cycle>, &mut Core) -> T, core: &mut Core ) -> Self
Update the exterior of the region
source§fn add_interiors<T>(
&self,
interiors: impl IntoIterator<Item = T>,
core: &mut Core
) -> Self
fn add_interiors<T>( &self, interiors: impl IntoIterator<Item = T>, core: &mut Core ) -> Self
Add the provided interiors to the region
source§impl Validate for Region
impl Validate for Region
source§fn validate(
&self,
_: &ValidationConfig,
_: &mut Vec<ValidationError>,
_: &Geometry
)
fn validate( &self, _: &ValidationConfig, _: &mut Vec<ValidationError>, _: &Geometry )
Validate the object
source§fn validate_and_return_first_error(
&self,
geometry: &Geometry
) -> Result<(), ValidationError>
fn validate_and_return_first_error( &self, geometry: &Geometry ) -> Result<(), ValidationError>
Validate the object using default config and return on first error
impl Eq for Region
impl StructuralPartialEq for Region
Auto Trait Implementations§
impl Freeze for Region
impl !RefUnwindSafe for Region
impl Send for Region
impl Sync for Region
impl Unpin for Region
impl !UnwindSafe for Region
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
Mutably borrows from an owned value. Read more
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>
Convert
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>
Convert
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)
Convert
&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)
Convert
&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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self
from the equivalent element of its
superset. Read moresource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self
is actually part of its subset T
(and can be converted to it).source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset
but without any property checks. Always succeeds.source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self
to the equivalent element of its superset.