pub struct Solid { /* private fields */ }Expand description
A 3-dimensional shape
Implementation Note
The shells that form the boundaries of the solid must not intersect. This is not currently validated.
Implementations§
source§impl Solid
impl Solid
sourcepub fn new(shells: impl IntoIterator<Item = Handle<Shell>>) -> Self
pub fn new(shells: impl IntoIterator<Item = Handle<Shell>>) -> Self
Construct an empty instance of Solid
Examples found in repository?
More examples
src/algorithms/transform/solid.rs (line 22)
11 12 13 14 15 16 17 18 19 20 21 22 23
fn transform_with_cache(
self,
transform: &Transform,
objects: &mut Service<Objects>,
cache: &mut TransformCache,
) -> Self {
let shells = self
.shells()
.cloned()
.map(|shell| shell.transform_with_cache(transform, objects, cache));
Self::new(shells)
}sourcepub fn shells(&self) -> impl Iterator<Item = &Handle<Shell>>
pub fn shells(&self) -> impl Iterator<Item = &Handle<Shell>>
Access the solid’s shells
Examples found in repository?
More examples
src/algorithms/transform/solid.rs (line 18)
11 12 13 14 15 16 17 18 19 20 21 22 23
fn transform_with_cache(
self,
transform: &Transform,
objects: &mut Service<Objects>,
cache: &mut TransformCache,
) -> Self {
let shells = self
.shells()
.cloned()
.map(|shell| shell.transform_with_cache(transform, objects, cache));
Self::new(shells)
}Trait Implementations§
source§impl Approx for &Solid
impl Approx for &Solid
§type Approximation = BTreeSet<FaceApprox, Global>
type Approximation = BTreeSet<FaceApprox, Global>
The approximation of the object
§type Cache = CurveCache
type Cache = CurveCache
The cache used to cache approximation results
source§fn approx_with_cache(
self,
tolerance: impl Into<Tolerance>,
cache: &mut Self::Cache
) -> Self::Approximation
fn approx_with_cache(
self,
tolerance: impl Into<Tolerance>,
cache: &mut Self::Cache
) -> Self::Approximation
Approximate the object, using the provided cache Read more
source§impl HasPartial for Solid
impl HasPartial for Solid
§type Partial = PartialSolid
type Partial = PartialSolid
The type representing the partial variant of this object
source§impl<'r> ObjectIters<'r> for Solid
impl<'r> ObjectIters<'r> for Solid
source§fn referenced_objects(&'r self) -> Vec<&'r dyn ObjectIters<'_>>
fn referenced_objects(&'r self) -> Vec<&'r dyn ObjectIters<'_>>
Return all objects that this one references
source§fn global_curve_iter(&'r self) -> Iter<&'r Handle<GlobalCurve>> ⓘ
fn global_curve_iter(&'r self) -> Iter<&'r Handle<GlobalCurve>> ⓘ
Iterate over all global curves
source§fn global_vertex_iter(&'r self) -> Iter<&'r GlobalVertex> ⓘ
fn global_vertex_iter(&'r self) -> Iter<&'r GlobalVertex> ⓘ
Iterate over all global vertices
source§impl Ord for Solid
impl Ord for Solid
source§impl PartialEq<Solid> for Solid
impl PartialEq<Solid> for Solid
source§impl PartialOrd<Solid> for Solid
impl PartialOrd<Solid> for Solid
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 TransformObject for Solid
impl TransformObject for Solid
source§fn transform_with_cache(
self,
transform: &Transform,
objects: &mut Service<Objects>,
cache: &mut TransformCache
) -> Self
fn transform_with_cache(
self,
transform: &Transform,
objects: &mut Service<Objects>,
cache: &mut TransformCache
) -> Self
Transform the object using the provided cache
source§fn transform(self, transform: &Transform, objects: &mut Service<Objects>) -> Self
fn transform(self, transform: &Transform, objects: &mut Service<Objects>) -> Self
Transform the object
impl Eq for Solid
impl StructuralEq for Solid
impl StructuralPartialEq for Solid
Auto Trait Implementations§
impl !RefUnwindSafe for Solid
impl Send for Solid
impl Sync for Solid
impl Unpin for Solid
impl !UnwindSafe for Solid
Blanket Implementations§
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
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.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§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.§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.§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§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 more§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).§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.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.