A ray tracing library based on the book The Ray Tracer Challenge, by Jamis Buck.
Holds the Camera struct.
A 2D canvas which represents an image of RGB colors. Pixels can be individually changed individually. Get the canvas in PPM format with Canvas::to_ppm.
An RGB color representation. The components are floating point numbers. Support for generics may be added in the future. When used, the components should be clamped between 0 and 1.
Holds the PointLight struct.
Holds the Material struct.
A 2D transformation matrix for points and vectors. For now, only floating point matrices are supported. Generics may come in the future.
Holds the Ray struct.
Stores the Shape trait, as well as modules containing its implementation.
Holds the Texture trait, as well as some common textures which implement it.
A 3D tuple which can represent points and vectors. The coordinates are floating point numbers. Support for generics may be added in the future.
Holds the World struct.