source: GTP/trunk/Lib/Vis/Preprocessing/src/InternalRayCaster.h @ 2623

Revision 2623, 1.5 KB checked in by mattausch, 17 years ago (diff)
Line 
1#ifndef _InternalRayCaster_H__
2#define _InternalRayCaster_H__
3
4#include "RayCaster.h"
5#include "Containers.h"
6#include <string>
7//
8
9
10namespace GtpVisibilityPreprocessor {
11
12
13class Intersectable;
14class VssRay;
15class KdTree;
16class Ray;
17class SimpleRayContainer;
18class AxisAlignedBox3;
19class Vector3;
20struct VssRayContainer;
21class Preprocessor;
22struct SimpleRay;
23
24
25/** This class provides an interface for ray casting.
26*/
27class InternalRayCaster: public RayCaster
28{
29public:
30  /** Default constructor initialising e.g., KD tree
31   */
32  InternalRayCaster(const Preprocessor &preprocessor);
33  virtual ~InternalRayCaster();
34 
35  int Type() const { return INTERNAL_RAYCASTER; }
36 
37  virtual int CastRay(
38                      const SimpleRay &simpleRay,
39                      VssRayContainer &vssRays,
40                      const AxisAlignedBox3 &box,
41                      const bool castDoubleRay,
42                      const bool pruneInvalidRays = true
43                      );
44 
45  virtual void CastRays16(SimpleRayContainer &rays,
46                          VssRayContainer &vssRays,
47                          const AxisAlignedBox3 &sbox,
48                          const bool castDoubleRay,
49                          const bool pruneInvalidRays = true
50                          );
51 
52  virtual int
53  CastGlobalRay(
54                const SimpleRay &simpleRay,
55                VssRayContainer &vssRays,
56                const AxisAlignedBox3 &box,
57                const bool pruneInvalidRays
58                );
59
60  virtual void AddDynamicObjecs(const ObjectContainer &objects, const Matrix4x4 &m) {};
61  virtual void UpdateDynamicObjects(const Matrix4x4 &m) {};
62  virtual void DeleteDynamicObjects() {};
63
64protected:
65
66        //KdTree *mKdTree;
67};
68
69
70}
71
72#endif
Note: See TracBrowser for help on using the repository browser.