// grttypes.h
// by Glenn G. Chappell
// April 2004
// Part of GRT package

// Defines simple types for GRT:
//  GrtHit, GrtColor
// Also "placeholder" typedef for GrtLightList

#ifndef FILE_GRTTYPES_H_INCLUDED
#define FILE_GRTTYPES_H_INCLUDED

#include "vecpos.h"
using tf::pos;
using tf::vec;


// ************************************************************************
// GrtHit declaration
// ************************************************************************

// struct GrtHit
// For storing ray-object intersection information
struct GrtHit
{
   bool intersects;  // true if intersection, false otherwise
                     //  In latter case, remaining members need not be valid
   pos where;        // Point of ray-object intersection
   vec norm;         // Normal vector of object at hit point; should be unit
   double dist;      // Distance from ray start to hit point
};


// ************************************************************************
// GrtColor declaration
// ************************************************************************

// struct GrtColor
// For storing color returned by raytrace
typedef vec GrtColor;


// ************************************************************************
// GrtLightList declaration
// ************************************************************************

typedef int GrtLightList;  // define this some time ....


#endif // #ifndef FILE_GRTTYPES_H_INCLUDED
