pub struct Cycle { /* private fields */ }
Expand description
A cycle of connected edges
Implementations§
source§impl Cycle
impl Cycle
sourcepub fn new(half_edges: impl IntoIterator<Item = Handle<HalfEdge>>) -> Self
pub fn new(half_edges: impl IntoIterator<Item = Handle<HalfEdge>>) -> Self
Create an instance of Cycle
sourcepub fn half_edges(&self) -> &ObjectSet<HalfEdge>
pub fn half_edges(&self) -> &ObjectSet<HalfEdge>
Access the edges that make up the cycle
sourcepub fn winding(&self, geometry: &Geometry) -> Winding
pub fn winding(&self, geometry: &Geometry) -> Winding
Indicate the cycle’s winding, assuming a right-handed coordinate system
Please note that this is not the winding of the cycle, only one of the two possible windings, depending on the direction you look at the surface that the cycle is defined on from.
Trait Implementations§
source§impl BoundingVerticesOfHalfEdge for Cycle
impl BoundingVerticesOfHalfEdge for Cycle
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 BoundingVolume<2> for Cycle
impl BoundingVolume<2> for Cycle
source§impl BuildCycle for Cycle
impl BuildCycle for Cycle
source§impl JoinCycle for Cycle
impl JoinCycle for Cycle
source§fn add_joined_edges<Es>(&self, edges: Es, core: &mut Core) -> Selfwhere
Es: IntoIterator<Item = (Handle<HalfEdge>, SurfacePath, CurveBoundary<Point<1>>)>,
Es::IntoIter: Clone + ExactSizeIterator,
fn add_joined_edges<Es>(&self, edges: Es, core: &mut Core) -> Selfwhere
Es: IntoIterator<Item = (Handle<HalfEdge>, SurfacePath, CurveBoundary<Point<1>>)>,
Es::IntoIter: Clone + ExactSizeIterator,
Add half-edges to the cycle that are joined to the provided ones
source§fn join_to(
&self,
other: &Cycle,
range: RangeInclusive<usize>,
range_other: RangeInclusive<usize>,
core: &mut Core
) -> Self
fn join_to( &self, other: &Cycle, range: RangeInclusive<usize>, range_other: RangeInclusive<usize>, core: &mut Core ) -> Self
Join the cycle to another Read more
source§impl Ord for Cycle
impl Ord for Cycle
source§impl PartialEq for Cycle
impl PartialEq for Cycle
source§impl PartialOrd for Cycle
impl PartialOrd for Cycle
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 Cycle
impl ReplaceCurve for Cycle
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 Cycle
impl ReplaceHalfEdge for Cycle
source§fn replace_half_edge<const N: usize>(
&self,
original: &Handle<HalfEdge>,
replacements: [Handle<HalfEdge>; N],
_: &mut Core
) -> ReplaceOutput<Self, Self::BareObject>
fn replace_half_edge<const N: usize>( &self, original: &Handle<HalfEdge>, replacements: [Handle<HalfEdge>; N], _: &mut Core ) -> ReplaceOutput<Self, Self::BareObject>
Replace the half-edge
source§impl ReplaceVertex for Cycle
impl ReplaceVertex for Cycle
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 Cycle
impl ReverseCurveCoordinateSystems for Cycle
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 SweepCycle for Cycle
impl SweepCycle for Cycle
source§fn sweep_cycle(
&self,
surface: &SurfaceGeometry,
color: Option<Color>,
path: impl Into<Vector<3>>,
cache: &mut SweepCache,
core: &mut Core
) -> SweptCycle
fn sweep_cycle( &self, surface: &SurfaceGeometry, color: Option<Color>, path: impl Into<Vector<3>>, cache: &mut SweepCache, core: &mut Core ) -> SweptCycle
source§impl TransformObject for Cycle
impl TransformObject for Cycle
source§impl UpdateCycle for Cycle
impl UpdateCycle for Cycle
source§fn add_half_edges<T>(
&self,
half_edges: impl IntoIterator<Item = T>,
core: &mut Core
) -> Self
fn add_half_edges<T>( &self, half_edges: impl IntoIterator<Item = T>, core: &mut Core ) -> Self
Add edges to the cycle
source§impl Validate for Cycle
impl Validate for Cycle
source§fn validate(
&self,
config: &ValidationConfig,
errors: &mut Vec<ValidationError>,
geometry: &Geometry
)
fn validate( &self, config: &ValidationConfig, errors: &mut Vec<ValidationError>, geometry: &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
source§impl ValidationCheck<Cycle> for AdjacentHalfEdgesNotConnected
impl ValidationCheck<Cycle> for AdjacentHalfEdgesNotConnected
source§fn check(
object: &Cycle,
geometry: &Geometry,
config: &ValidationConfig
) -> impl Iterator<Item = Self>
fn check( object: &Cycle, geometry: &Geometry, config: &ValidationConfig ) -> impl Iterator<Item = Self>
Run the validation check on the implementing object
impl Eq for Cycle
impl StructuralPartialEq for Cycle
Auto Trait Implementations§
impl Freeze for Cycle
impl !RefUnwindSafe for Cycle
impl Send for Cycle
impl Sync for Cycle
impl Unpin for Cycle
impl !UnwindSafe for Cycle
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.