Triangle3.hpp
Go to the documentation of this file.
Triangle3 & operator=(const Triangle3 &)=default
Default copy assignment operator.
std::array< Vector3D, 3 > points
Three points.
Definition: Triangle3.hpp:71
std::array< Vector3D, 3 > normals
Three normals.
Definition: Triangle3.hpp:74
BoundingBox3D BoundingBoxLocal() const override
Returns the bounding box of this surface object in local frame.
Triangle3(const Transform3 &_transform=Transform3{}, bool _isNormalFlipped=false)
Constructs an empty triangle.
std::array< Vector2D, 3 > uvs
Three UV coordinates.
Definition: Triangle3.hpp:77
void GetBarycentricCoords(const Vector3D &pt, double *b0, double *b1, double *b2) const
Returns barycentric coordinates for the given point pt.
void SetNormalsToFaceNormal()
Set Triangle3::normals to the face normal.
Definition: Matrix.hpp:27
Definition: pybind11Utils.hpp:20
bool IntersectsLocal(const Ray3D &ray) const override
SurfaceRayIntersection3 ClosestIntersectionLocal(const Ray3D &ray) const override
Front-end to create Triangle3 objects step by step.
Definition: Triangle3.hpp:100
Struct that represents ray-surface intersection point.
Definition: Surface.hpp:25
Vector3D ClosestPointLocal(const Vector3D &otherPoint) const override
std::shared_ptr< Triangle3 > Triangle3Ptr
Shared pointer for the Triangle3 type.
Definition: Triangle3.hpp:95
Vector3D ClosestNormalLocal(const Vector3D &otherPoint) const override