Copyright (C) 2006 Smithsonian Astrophysical Observatory
This file is part of the rl_raylib package.
rl_raylib is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
tracefct is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA
The rl_RayLib library consists of a set of C++ classes for manipulating rays, including the effects of multilayer reflectivity.
The rl_Ray class generalizes the rl_BasicRay class (found in the rl_basicray package) to include polarization information to the rl_BasicRay's position, direction, energy, and id number components. See the rl_basicray package documentation for further information on the rl_BasicRay and rl_RayMath classes.
The rays can be translated/rotated from a standard coordinate system (STD) to a ``body center system'' (BCS), and de-rotated/de-translated from the BCS system back to the STD system. Given a surface normal, the ray direction can be reflected to a new direction. This yields much of the transformation functionality needed for basic raytracing.
The reflectivity classes include a number of components: