pub struct Triangle3 {
pub points: [Vector3D; 3],
pub normals: [Vector3D; 3],
pub uvs: [Vector2D; 3],
pub surface_data: Surface3Data,
}
Expand description
§3-D triangle geometry.
This class represents 3-D triangle geometry which extends Surface3 by overriding surface-related queries.
Fields§
§points: [Vector3D; 3]
Three points.
normals: [Vector3D; 3]
Three normals.
uvs: [Vector2D; 3]
Three UV coordinates.
surface_data: Surface3Data
data from surface3
Implementations§
Source§impl Triangle3
impl Triangle3
Sourcepub fn new_default(
transform: Option<Transform3>,
is_normal_flipped: Option<bool>,
) -> Triangle3
pub fn new_default( transform: Option<Transform3>, is_normal_flipped: Option<bool>, ) -> Triangle3
Constructs an empty triangle.
Sourcepub fn new(
points: [Vector3D; 3],
normals: [Vector3D; 3],
uvs: [Vector2D; 3],
transform: Option<Transform3>,
is_normal_flipped: Option<bool>,
) -> Triangle3
pub fn new( points: [Vector3D; 3], normals: [Vector3D; 3], uvs: [Vector2D; 3], transform: Option<Transform3>, is_normal_flipped: Option<bool>, ) -> Triangle3
Constructs a triangle with given \p points, \p normals, and \p uvs.
Sourcepub fn get_barycentric_coords(
&self,
pt: &Vector3D,
b0: &mut f64,
b1: &mut f64,
b2: &mut f64,
)
pub fn get_barycentric_coords( &self, pt: &Vector3D, b0: &mut f64, b1: &mut f64, b2: &mut f64, )
Returns barycentric coordinates for the given point \p pt.
Sourcepub fn face_normal(&self) -> Vector3D
pub fn face_normal(&self) -> Vector3D
Returns the face normal of the triangle.
Sourcepub fn set_normals_to_face_normal(&mut self)
pub fn set_normals_to_face_normal(&mut self)
Set Triangle3::normals to the face normal.
Trait Implementations§
Source§impl Surface3 for Triangle3
impl Surface3 for Triangle3
Source§fn closest_point_local(&self, other_point: &Vector3D) -> Vector3D
fn closest_point_local(&self, other_point: &Vector3D) -> Vector3D
Returns the closest point from the given point \p other_point to the
surface in local frame.
Source§fn bounding_box_local(&self) -> BoundingBox3D
fn bounding_box_local(&self) -> BoundingBox3D
Returns the bounding box of this surface object in local frame.
Source§fn closest_intersection_local(&self, ray: &Ray3D) -> SurfaceRayIntersection3
fn closest_intersection_local(&self, ray: &Ray3D) -> SurfaceRayIntersection3
Returns the closest intersection point for given \p ray in local frame.
Source§fn closest_normal_local(&self, other_point: &Vector3D) -> Vector3D
fn closest_normal_local(&self, other_point: &Vector3D) -> Vector3D
Returns the normal to the closest point on the surface from the given
point \p other_point in local frame.
Source§fn intersects_local(&self, ray: &Ray3D) -> bool
fn intersects_local(&self, ray: &Ray3D) -> bool
Returns true if the given \p ray intersects with this surface object
in local frame.
fn view(&self) -> &Surface3Data
Source§fn closest_distance_local(&self, other_point_local: &Vector3D) -> f64
fn closest_distance_local(&self, other_point_local: &Vector3D) -> f64
Returns the closest distance from the given point \p otherPoint to the
point on the surface in local frame.
Source§fn is_inside_local(&self, other_point_local: &Vector3D) -> bool
fn is_inside_local(&self, other_point_local: &Vector3D) -> bool
Returns true if \p otherPoint is inside by given \p depth the volume
defined by the surface in local frame.
Source§fn closest_point(&self, other_point: &Vector3D) -> Vector3D
fn closest_point(&self, other_point: &Vector3D) -> Vector3D
Returns the closest point from the given point \p other_point to the surface.
Source§fn bounding_box(&self) -> BoundingBox3D
fn bounding_box(&self) -> BoundingBox3D
Returns the bounding box of this surface object.
Source§fn intersects(&self, ray: &Ray3D) -> bool
fn intersects(&self, ray: &Ray3D) -> bool
Returns true if the given \p ray intersects with this surface object.
Source§fn closest_distance(&self, other_point: &Vector3D) -> f64
fn closest_distance(&self, other_point: &Vector3D) -> f64
Returns the closest distance from the given point \p other_point to the
point on the surface.
Source§fn closest_intersection(&self, ray: &Ray3D) -> SurfaceRayIntersection3
fn closest_intersection(&self, ray: &Ray3D) -> SurfaceRayIntersection3
Returns the closest intersection point for given \p ray.
Source§fn closest_normal(&self, other_point: &Vector3D) -> Vector3D
fn closest_normal(&self, other_point: &Vector3D) -> Vector3D
Returns the normal to the closest point on the surface from the given
point \p other_point.
Source§fn update_query_engine(&self)
fn update_query_engine(&self)
Updates internal spatial query engine.
Source§fn is_bounded(&self) -> bool
fn is_bounded(&self) -> bool
Returns true if bounding box can be defined.
Source§fn is_valid_geometry(&self) -> bool
fn is_valid_geometry(&self) -> bool
Returns true if the surface is a valid geometry.
Auto Trait Implementations§
impl Freeze for Triangle3
impl RefUnwindSafe for Triangle3
impl Send for Triangle3
impl Sync for Triangle3
impl Unpin for Triangle3
impl UnwindSafe for Triangle3
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> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more