rl_BasicRay User's Guide

1.0.10

Copyright and License

Copyright (C) 2006 Smithsonian Astrophysical Observatory

This file is part of the rl_basicray package.

rl_basicray 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

Author:
Terry Gaetz

Purpose

The rl_BasicRay library consists of a set of C++ classes for manipulating rays.

A Basic Ray Class

The rl_BasicRay class represents a stripped-down ray consisting of position, direction, energy, and an id number. It serves as a base class for a more general ray class rl_Ray (part of the rl_raylib package) which addes in support for ray polarization information.

The rl_BasicRay library includes a class encapsulating a basic ray consisting of position and direction information, ray energy, and a ray id number.

The ray is nominally defined in a standard coordinate system (STD) which serves as a default global coordinate system. The ray can be transformed into a local ``body-centered'' coordinate system (BCS) (e.g., attached to a piece of hardware such as a mirror).

In transforming from the STD system to the BCS system, the ray is first translated by the difference between the BCS origin and the STD origin, then transformed to the orientation of the BCS system relative to the STD system by rotation about the BCS origin.

To transform back to the STD system the operations are performed in reverse: first ``derotate'' the vector about the BCS origin to account for the different orientation, then ``detranslate'' the position by the difference between the BCS and STD origins.

Other operations on a basic ray include projection (moving the ray position by a given distance in the direction specified by the ray direction vector) and reflection of the ray direction vector about a surface normal provided by the user. In the reflection operation, it is assumed that the ray position is at the surface about which the reflection takes place.


Generated on Fri Jun 27 15:52:40 2008 for rl_basicray by  doxygen 1.5.1