MCPcopy Create free account
hub / github.com/crownengine/crown / ray_sphere_intersection

Function ray_sphere_intersection

src/core/math/intersection.cpp:43–55  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

41}
42
43f32 ray_sphere_intersection(const Vector3 &from, const Vector3 &dir, const Sphere &s)
44{
45 const Vector3 v = s.c - from;
46 const f32 b = dot(v, dir);
47 const f32 rr = s.r * s.r;
48 const f32 bb = b * b;
49 const f32 det = rr - dot(v, v) + bb;
50
51 if (det < 0.0f || b < s.r)
52 return -1.0f;
53
54 return b - fsqrt(det);
55}
56
57// http://www.opengl-tutorial.org/miscellaneous/clicking-on-objects/picking-with-custom-ray-obb-function/
58f32 ray_obb_intersection(const Vector3 &from, const Vector3 &dir, const Matrix4x4 &tm, const Vector3 &half_extents)

Callers 1

load_apiFunction · 0.85

Calls 1

dotFunction · 0.50

Tested by

no test coverage detected