Struct rhusics_ecs::collide3d::ConvexPolyhedron [−][src]
pub struct ConvexPolyhedron<S> where
S: BaseFloat, { /* fields omitted */ }
Convex polyhedron primitive.
Can contain any number of vertices, but a high number of vertices will affect performance of course. It is recommended for high vertex counts, to also provide the faces, this will cause the support function to use hill climbing on a half edge structure, resulting in better performance. The breakpoint is around 250 vertices, but the face version is only marginally slower on lower vertex counts (about 1-2%), while for higher vertex counts it's about 2-5 times faster.
Methods
impl<S> ConvexPolyhedron<S> where
S: BaseFloat,
[src]
impl<S> ConvexPolyhedron<S> where
S: BaseFloat,
pub fn new(vertices: Vec<Point3<S>>) -> ConvexPolyhedron<S>
[src]
pub fn new(vertices: Vec<Point3<S>>) -> ConvexPolyhedron<S>
Create a new convex polyhedron from the given vertices.
pub fn new_with_faces(
vertices: Vec<Point3<S>>,
faces: Vec<(usize, usize, usize)>
) -> ConvexPolyhedron<S>
[src]
pub fn new_with_faces(
vertices: Vec<Point3<S>>,
faces: Vec<(usize, usize, usize)>
) -> ConvexPolyhedron<S>
Create a new convex polyhedron from the given vertices and faces.
pub fn new_with_faces_dedup(
vertices: Vec<Point3<S>>,
faces: Vec<(usize, usize, usize)>
) -> ConvexPolyhedron<S>
[src]
pub fn new_with_faces_dedup(
vertices: Vec<Point3<S>>,
faces: Vec<(usize, usize, usize)>
) -> ConvexPolyhedron<S>
Create a new convex polyhedron from the given vertices and faces. Will remove any duplicate vertices.
pub fn faces_iter(&self) -> FaceIterator<S>
[src]
pub fn faces_iter(&self) -> FaceIterator<S>
Return an iterator that will yield tuples of the 3 vertices of each face
Trait Implementations
impl<'de, S> Deserialize<'de> for ConvexPolyhedron<S> where
S: BaseFloat + Deserialize<'de>,
[src]
impl<'de, S> Deserialize<'de> for ConvexPolyhedron<S> where
S: BaseFloat + Deserialize<'de>,
fn deserialize<__D>(
__deserializer: __D
) -> Result<ConvexPolyhedron<S>, <__D as Deserializer<'de>>::Error> where
__D: Deserializer<'de>,
[src]
fn deserialize<__D>(
__deserializer: __D
) -> Result<ConvexPolyhedron<S>, <__D as Deserializer<'de>>::Error> where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl<S> ComputeBound<Sphere<S>> for ConvexPolyhedron<S> where
S: BaseFloat,
[src]
impl<S> ComputeBound<Sphere<S>> for ConvexPolyhedron<S> where
S: BaseFloat,
fn compute_bound(&self) -> Sphere<S>
[src]
fn compute_bound(&self) -> Sphere<S>
Compute the bounding volume
impl<S> ComputeBound<Aabb3<S>> for ConvexPolyhedron<S> where
S: BaseFloat,
[src]
impl<S> ComputeBound<Aabb3<S>> for ConvexPolyhedron<S> where
S: BaseFloat,
fn compute_bound(&self) -> Aabb3<S>
[src]
fn compute_bound(&self) -> Aabb3<S>
Compute the bounding volume
impl<S> Clone for ConvexPolyhedron<S> where
S: Clone + BaseFloat,
[src]
impl<S> Clone for ConvexPolyhedron<S> where
S: Clone + BaseFloat,
fn clone(&self) -> ConvexPolyhedron<S>
[src]
fn clone(&self) -> ConvexPolyhedron<S>
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0[src]
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
impl<S> Debug for ConvexPolyhedron<S> where
S: Debug + BaseFloat,
[src]
impl<S> Debug for ConvexPolyhedron<S> where
S: Debug + BaseFloat,
fn fmt(&self, f: &mut Formatter) -> Result<(), Error>
[src]
fn fmt(&self, f: &mut Formatter) -> Result<(), Error>
Formats the value using the given formatter. Read more
impl<S> Primitive for ConvexPolyhedron<S> where
S: BaseFloat,
[src]
impl<S> Primitive for ConvexPolyhedron<S> where
S: BaseFloat,
type Point = Point3<S>
Point type
fn support_point<T>(&self, direction: &Vector3<S>, transform: &T) -> Point3<S> where
T: Transform<Point3<S>>,
[src]
fn support_point<T>(&self, direction: &Vector3<S>, transform: &T) -> Point3<S> where
T: Transform<Point3<S>>,
Get the support point on the shape in a given direction. Read more
impl<S> From<ConvexPolyhedron<S>> for Primitive3<S> where
S: BaseFloat,
[src]
impl<S> From<ConvexPolyhedron<S>> for Primitive3<S> where
S: BaseFloat,
fn from(polyhedron: ConvexPolyhedron<S>) -> Primitive3<S>
[src]
fn from(polyhedron: ConvexPolyhedron<S>) -> Primitive3<S>
Performs the conversion.
impl<S> Discrete<Ray<S, Point3<S>, Vector3<S>>> for ConvexPolyhedron<S> where
S: BaseFloat,
[src]
impl<S> Discrete<Ray<S, Point3<S>, Vector3<S>>> for ConvexPolyhedron<S> where
S: BaseFloat,
TODO: better algorithm for finding faces to intersect with?
impl<S> Continuous<Ray<S, Point3<S>, Vector3<S>>> for ConvexPolyhedron<S> where
S: BaseFloat,
[src]
impl<S> Continuous<Ray<S, Point3<S>, Vector3<S>>> for ConvexPolyhedron<S> where
S: BaseFloat,
type Result = Point3<S>
Result returned by the intersection test
fn intersection(&self, ray: &Ray<S, Point3<S>, Vector3<S>>) -> Option<Point3<S>>
[src]
fn intersection(&self, ray: &Ray<S, Point3<S>, Vector3<S>>) -> Option<Point3<S>>
Ray must be in object space
impl<S> PartialEq<ConvexPolyhedron<S>> for ConvexPolyhedron<S> where
S: PartialEq<S> + BaseFloat,
[src]
impl<S> PartialEq<ConvexPolyhedron<S>> for ConvexPolyhedron<S> where
S: PartialEq<S> + BaseFloat,
fn eq(&self, other: &ConvexPolyhedron<S>) -> bool
[src]
fn eq(&self, other: &ConvexPolyhedron<S>) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &ConvexPolyhedron<S>) -> bool
[src]
fn ne(&self, other: &ConvexPolyhedron<S>) -> bool
This method tests for !=
.
impl<S> Serialize for ConvexPolyhedron<S> where
S: BaseFloat + Serialize,
[src]
impl<S> Serialize for ConvexPolyhedron<S> where
S: BaseFloat + Serialize,
fn serialize<__S>(
&self,
__serializer: __S
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error> where
__S: Serializer,
[src]
fn serialize<__S>(
&self,
__serializer: __S
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error> where
__S: Serializer,
Serialize this value into the given Serde serializer. Read more
impl<S> Volume<S, Matrix3<S>> for ConvexPolyhedron<S> where
S: BaseFloat,
[src]
impl<S> Volume<S, Matrix3<S>> for ConvexPolyhedron<S> where
S: BaseFloat,
Auto Trait Implementations
impl<S> Send for ConvexPolyhedron<S> where
S: Send,
impl<S> Send for ConvexPolyhedron<S> where
S: Send,
impl<S> Sync for ConvexPolyhedron<S> where
S: Sync,
impl<S> Sync for ConvexPolyhedron<S> where
S: Sync,