GLM_GTX_intersect
Experimental extensions

## Functions

template<typename genType >
GLM_FUNC_DECL bool | intersectLineSphere (genType const &point0, genType const &point1, genType const &sphereCenter, typename genType::value_type sphereRadius, genType &intersectionPosition1, genType &intersectionNormal1, genType &intersectionPosition2=genType(), genType &intersectionNormal2=genType())
| Compute the intersection of a line and a sphere. More...
template<typename genType >
GLM_FUNC_DECL bool | intersectLineTriangle (genType const &orig, genType const &dir, genType const &vert0, genType const &vert1, genType const &vert2, genType &position)
| Compute the intersection of a line and a triangle. More...
template<typename genType >
GLM_FUNC_DECL bool | intersectRayPlane (genType const &orig, genType const &dir, genType const &planeOrig, genType const &planeNormal, typename genType::value_type &intersectionDistance)
| Compute the intersection of a ray and a plane. More...
template<typename genType >
GLM_FUNC_DECL bool | intersectRaySphere (genType const &rayStarting, genType const &rayNormalizedDirection, genType const &sphereCenter, const typename genType::value_type sphereRadius, genType &intersectionPosition, genType &intersectionNormal)
| Compute the intersection of a ray and a sphere. More...
template<typename genType >
GLM_FUNC_DECL bool | intersectRaySphere (genType const &rayStarting, genType const &rayNormalizedDirection, genType const &sphereCenter, typename genType::value_type const sphereRadiusSquared, typename genType::value_type &intersectionDistance)
| Compute the intersection distance of a ray and a sphere. More...
template<typename T , qualifier Q>
GLM_FUNC_DECL bool | intersectRayTriangle (vec< 3, T, Q > const &orig, vec< 3, T, Q > const &dir, vec< 3, T, Q > const &v0, vec< 3, T, Q > const &v1, vec< 3, T, Q > const &v2, vec< 2, T, Q > &baryPosition, T &distance)
| Compute the intersection of a ray and a triangle. More...

## Detailed Description

Include <glm/gtx/intersect.hpp> to use the features of this extension.

Add intersection functions

## Function Documentation

## intersectLineSphere()

GLM_FUNC_DECL bool glm::intersectLineSphere | ( | genType const & | point0,
|  | genType const & | point1,
|  | genType const & | sphereCenter,
|  | typename genType::value_type | sphereRadius,
|  | genType & | intersectionPosition1,
|  | genType & | intersectionNormal1,
|  | genType & | intersectionPosition2 = `genType()`,
|  | genType & | intersectionNormal2 = `genType()`
| ) |  |

Compute the intersection of a line and a sphere.

From GLM_GTX_intersect extension

## intersectLineTriangle()

GLM_FUNC_DECL bool glm::intersectLineTriangle | ( | genType const & | orig,
|  | genType const & | dir,
|  | genType const & | vert0,
|  | genType const & | vert1,
|  | genType const & | vert2,
|  | genType & | position
| ) |  |

Compute the intersection of a line and a triangle.

From GLM_GTX_intersect extension.

## intersectRayPlane()

GLM_FUNC_DECL bool glm::intersectRayPlane | ( | genType const & | orig,
|  | genType const & | dir,
|  | genType const & | planeOrig,
|  | genType const & | planeNormal,
|  | typename genType::value_type & | intersectionDistance
| ) |  |

Compute the intersection of a ray and a plane.

Ray direction and plane normal must be unit length. From GLM_GTX_intersect extension.

## intersectRaySphere() [1/2]

GLM_FUNC_DECL bool glm::intersectRaySphere | ( | genType const & | rayStarting,
|  | genType const & | rayNormalizedDirection,
|  | genType const & | sphereCenter,
|  | const typename genType::value_type | sphereRadius,
|  | genType & | intersectionPosition,
|  | genType & | intersectionNormal
| ) |  |

Compute the intersection of a ray and a sphere.

From GLM_GTX_intersect extension.

## intersectRaySphere() [2/2]

GLM_FUNC_DECL bool glm::intersectRaySphere | ( | genType const & | rayStarting,
|  | genType const & | rayNormalizedDirection,
|  | genType const & | sphereCenter,
|  | typename genType::value_type const | sphereRadiusSquared,
|  | typename genType::value_type & | intersectionDistance
| ) |  |

Compute the intersection distance of a ray and a sphere.

The ray direction vector is unit length. From GLM_GTX_intersect extension.

## intersectRayTriangle()

GLM_FUNC_DECL bool glm::intersectRayTriangle | ( | vec< 3, T, Q > const & | orig,
|  | vec< 3, T, Q > const & | dir,
|  | vec< 3, T, Q > const & | v0,
|  | vec< 3, T, Q > const & | v1,
|  | vec< 3, T, Q > const & | v2,
|  | vec< 2, T, Q > & | baryPosition,
|  | T & | distance
| ) |  |

Compute the intersection of a ray and a triangle.

Based om Tomas Möller implementation http://fileadmin.cs.lth.se/cs/Personal/Tomas_Akenine-Moller/raytri/ From GLM_GTX_intersect extension.