Libs/Mesh/PreviewMeshQC/Intersect.h
Classes
| Name | |
|---|---|
| struct | Ray |
| struct | Intersection |
| struct | Triangle |
| struct | Quad |
Functions
| Name | |
|---|---|
| bool | IntersectTriangle(const Ray & ray, const Triangle & tri, Intersection & q, bool evalNormal =true) |
| bool | IntersectQuad(const Ray & ray, const Quad & quad, Intersection & q) |
| bool | FastIntersectQuad(const Ray & ray, const Quad & quad, Intersection & q) |
Functions Documentation
function IntersectTriangle
cpp
bool IntersectTriangle(
const Ray & ray,
const Triangle & tri,
Intersection & q,
bool evalNormal =true
)
function IntersectQuad
cpp
bool IntersectQuad(
const Ray & ray,
const Quad & quad,
Intersection & q
)
function FastIntersectQuad
cpp
bool FastIntersectQuad(
const Ray & ray,
const Quad & quad,
Intersection & q
)
Source code
```cpp
pragma once
include "math3d.h"
// tools for finding intersections struct Ray { vec3d origin; // origin of ray vec3d direction; // direction of ray (must be unit vector!) };
//----------------------------------------------------------------------------- struct Intersection { vec3d point; // point of intersection float r[2]; // natural coordinates int m_index; // index of item that was intersected (context dependent) int m_faceIndex; // index of face that was intersected (context dependent) };
//----------------------------------------------------------------------------- struct Triangle { vec3d r0; vec3d r1; vec3d r2; vec3d fn; // face normal };
//----------------------------------------------------------------------------- struct Quad { vec3d r0; vec3d r1; vec3d r2; vec3d r3; };
//----------------------------------------------------------------------------- // Find intersection of a ray with a triangle // To evaluate the normal automatically, set evalNormal to true. Otherwise, the normal in Triangle is used bool IntersectTriangle(const Ray& ray, const Triangle& tri, Intersection& q, bool evalNormal = true);
//----------------------------------------------------------------------------- // Find intersection of a ray with a quad bool IntersectQuad(const Ray& ray, const Quad& quad, Intersection& q); bool FastIntersectQuad(const Ray& ray, const Quad& quad, Intersection& q); ```
Updated on 2026-03-31 at 16:02:11 +0000