#ifndef _IntelRayCaster_H__ #define _IntelRayCaster_H__ #include "RayCaster.h" #include namespace GtpVisibilityPreprocessor { class Intersectable; class VssRay; class KdTree; class Ray; class SimpleRayContainer; class AxisAlignedBox3; class Vector3; struct VssRayContainer; class Preprocessor; /** This class provides an interface for ray casting. */ class IntelRayCaster: public RayCaster { public: /** Default constructor initialising e.g., KD tree and BSP tree. */ IntelRayCaster( const Preprocessor &preprocessor, const string externKdTree); virtual ~IntelRayCaster(); int Type() const { return INTEL_RAYCASTER; } virtual int CastRay( const Vector3 &viewPoint, const Vector3 &direction, const float probability, VssRayContainer &vssRays, const AxisAlignedBox3 &box, const bool castDoubleRay ); virtual void CastRays16( const int i, SimpleRayContainer &rays, VssRayContainer &vssRays, const AxisAlignedBox3 &sbox, const bool castDoubleRay ); protected: bool InitRayCast(const string externKdTree); }; } #endif