This library exposes functionality for any project which can communicate with the .NET 2.0 framework for windows, for the express purpose of performing thread-safe single or multi-resolution ray tracing. Getting started is easy. All you need to do is:

1. Put together one or more arrays of three and four sided polygons. Use the Hare.Geometry.Point object in an jagged array formatted in the following way:

Point [Polygon index] [Point index]

essentially creating an array of arrays of 3 or 4 points which make up polygons.

2. Create instances of the Topology class, using the array generated in step 1 as constructor input.

3. Choose a Spatial Partition System (currently there is only the voxel grid... more to come), and use the Topology instances created in step 2 as input for its constructor.

4. Put together a ray-tracing algorithm. Use the Shoot function in the instance of the spatial partition created in step 3 to intersect a ray with a topology entered into the spatial partition. Use the Hare.Geometry.Ray class to specify all information for the ray. Make sure to specify a unique ray id for each time a ray is entered into the shoot function. A ray id is an integer which is used to identify whether an intersection with a polygon has already been performed with a given ray. We suggest using an instance of System.Random in order to generate them, and to keep a separate instance of System.Random for each thread.

For questions, contact the author.