#ifndef _InternalRayCaster_H__ #define _InternalRayCaster_H__ #include "RayCaster.h" #include "Containers.h" #include // namespace GtpVisibilityPreprocessor { class Intersectable; class VssRay; class KdTree; class Ray; class SimpleRayContainer; class AxisAlignedBox3; class Vector3; struct VssRayContainer; class Preprocessor; struct SimpleRay; /** This class provides an interface for ray casting. */ class InternalRayCaster: public RayCaster { public: /** Default constructor initialising e.g., KD tree */ InternalRayCaster(const Preprocessor &preprocessor); virtual ~InternalRayCaster(); int Type() const { return INTERNAL_RAYCASTER; } virtual int CastRay( const SimpleRay &simpleRay, VssRayContainer &vssRays, const AxisAlignedBox3 &box, const bool castDoubleRay, const bool pruneInvalidRays = true ); virtual void CastRays16(SimpleRayContainer &rays, VssRayContainer &vssRays, const AxisAlignedBox3 &sbox, const bool castDoubleRay, const bool pruneInvalidRays = true ); virtual int CastGlobalRay( const SimpleRay &simpleRay, VssRayContainer &vssRays, const AxisAlignedBox3 &box, const bool pruneInvalidRays ); protected: //KdTree *mKdTree; }; } #endif