Saga3D API Documentation
1.0-RC4
|
3d triangle template class for doing collision detection and other things. More...
#include <triangle3d.h>
Public Member Functions | |
triangle3d () | |
Constructor for an all 0 triangle. More... | |
triangle3d (const glm::vec3 &v1, const glm::vec3 &v2, const glm::vec3 &v3) | |
Constructor for triangle with given three vertices. More... | |
bool | operator== (const triangle3d< T > &other) const |
Equality operator. More... | |
bool | operator!= (const triangle3d< T > &other) const |
Inequality operator. More... | |
bool | isTotalInsideBox (const aabbox3d< T > &box) const |
Determines if the triangle is totally inside a bounding box. More... | |
bool | isTotalOutsideBox (const aabbox3d< T > &box) const |
Determines if the triangle is totally outside a bounding box. More... | |
glm::vec3 | closestPointOnTriangle (const glm::vec3 &p) const |
Get the closest point on a triangle to a point on the same plane. More... | |
bool | isPointInside (const glm::vec3 &p) const |
Check if a point is inside the triangle (border-points count also as inside) More... | |
bool | isPointInsideFast (const glm::vec3 &p) const |
Check if a point is inside the triangle (border-points count also as inside) More... | |
bool | getIntersectionWithLimitedLine (const line3d< T > &line, glm::vec3 &outIntersection) const |
Get an intersection with a 3d line. More... | |
bool | getIntersectionWithLine (const glm::vec3 &linePoint, const glm::vec3 &lineVect, glm::vec3 &outIntersection) const |
Get an intersection with a 3d line. More... | |
bool | getIntersectionOfPlaneWithLine (const glm::vec3 &linePoint, const glm::vec3 &lineVect, glm::vec3 &outIntersection) const |
Calculates the intersection between a 3d line and the plane the triangle is on. More... | |
glm::vec3 | getNormal () const |
Get the normal of the triangle. More... | |
bool | isFrontFacing (const glm::vec3 &lookDirection) const |
Test if the triangle would be front or backfacing from any point. More... | |
plane3d< T > | getPlane () const |
Get the plane of this triangle. More... | |
T | getArea () const |
Get the area of the triangle. More... | |
void | set (const glm::vec3 &a, const glm::vec3 &b, const glm::vec3 &c) |
sets the triangle's points More... | |
Public Attributes | |
glm::vec3 | pointA |
the three points of the triangle More... | |
glm::vec3 | pointB |
glm::vec3 | pointC |
3d triangle template class for doing collision detection and other things.
Definition at line 19 of file triangle3d.h.
|
inline |
Constructor for an all 0 triangle.
Definition at line 24 of file triangle3d.h.
|
inline |
Constructor for triangle with given three vertices.
Definition at line 26 of file triangle3d.h.
|
inline |
Get the closest point on a triangle to a point on the same plane.
p | Point which must be on the same plane as the triangle. |
Definition at line 67 of file triangle3d.h.
|
inline |
Get the area of the triangle.
Definition at line 223 of file triangle3d.h.
|
inline |
Calculates the intersection between a 3d line and the plane the triangle is on.
lineVect | Vector of the line to intersect with. |
linePoint | Point of the line to intersect with. |
outIntersection | Place to store the intersection point, if there is one. |
Definition at line 168 of file triangle3d.h.
|
inline |
Get an intersection with a 3d line.
line | Line to intersect with. |
outIntersection | Place to store the intersection point, if there is one. |
Definition at line 135 of file triangle3d.h.
|
inline |
Get an intersection with a 3d line.
Please note that also points are returned as intersection which are on the line, but not between the start and end point of the line. If you want the returned point be between start and end use getIntersectionWithLimitedLine().
linePoint | Point of the line to intersect with. |
lineVect | Vector of the line to intersect with. |
outIntersection | Place to store the intersection point, if there is one. |
Definition at line 153 of file triangle3d.h.
|
inline |
Get the normal of the triangle.
Please note: The normal is not always normalized.
Definition at line 198 of file triangle3d.h.
|
inline |
Get the plane of this triangle.
Definition at line 217 of file triangle3d.h.
|
inline |
Test if the triangle would be front or backfacing from any point.
Thus, this method assumes a camera position from which the triangle is definitely visible when looking at the given direction. Do not use this method with points as it will give wrong results!
lookDirection | Look direction. |
Definition at line 209 of file triangle3d.h.
|
inline |
Check if a point is inside the triangle (border-points count also as inside)
Definition at line 88 of file triangle3d.h.
|
inline |
Check if a point is inside the triangle (border-points count also as inside)
This method uses a barycentric coordinate system. It is faster than isPointInside but is more susceptible to floating point rounding errors. This will especially be noticeable when the FPU is in single precision mode (which is for example set on default by Direct3D).
p | Point to test. Assumes that this point is already on the plane of the triangle. |
Definition at line 107 of file triangle3d.h.
|
inline |
Determines if the triangle is totally inside a bounding box.
box | Box to check. |
Definition at line 43 of file triangle3d.h.
|
inline |
Determines if the triangle is totally outside a bounding box.
box | Box to check. |
Definition at line 53 of file triangle3d.h.
|
inline |
Inequality operator.
Definition at line 35 of file triangle3d.h.
|
inline |
Equality operator.
Definition at line 29 of file triangle3d.h.
|
inline |
sets the triangle's points
Definition at line 230 of file triangle3d.h.
glm::vec3 saga::core::triangle3d< T >::pointA |
the three points of the triangle
Definition at line 238 of file triangle3d.h.
glm::vec3 saga::core::triangle3d< T >::pointB |
Definition at line 239 of file triangle3d.h.
glm::vec3 saga::core::triangle3d< T >::pointC |
Definition at line 240 of file triangle3d.h.