This Julia package allows for geometric ray tracing with ellipsoids (actually domes shaped as ellipsoids). It includes intersection and refraction/reflection of rays with arbitrary ellipsoids. It accomplishes that in about 100 lines of code thanks to heavy use of CoordinateTransformations.jl and StaticArrays.jl.
These ellipsoid-domes are defined with Ellipsoid (see details with help?> Ellipsoid). The normal and refractive indices are defined within the Interface type. These two are baked into a single OpticUnit.
Rays advance! to intersect with the Ellipsoids and bend! at the Interfaces. The raytrace! function includes these two actions, taking in a Ray and an OpticUnit, updating the location and direction of the ray.
- add rotated ellipsoids
- add more shapes, so it's not only
RayTrace**Ellipsoid**