source: GTP/trunk/Lib/Vis/Preprocessing/src/IntelRayCaster.h @ 2105

Revision 2105, 1.7 KB checked in by bittner, 17 years ago (diff)

simple ray separated

Line 
1#ifndef _IntelRayCaster_H__
2#define _IntelRayCaster_H__
3
4#include "RayCaster.h"
5#include <vector>
6
7
8namespace GtpVisibilityPreprocessor {
9
10
11class Intersectable;
12class VssRay;
13class KdTree;
14class Ray;
15class SimpleRayContainer;
16class AxisAlignedBox3;
17class Vector3;
18struct VssRayContainer;
19class Preprocessor;
20struct SimpleRay;
21
22
23/** This class provides an interface for ray casting.
24*/
25class IntelRayCaster: public RayCaster
26{
27public:
28        /** Default constructor initialising e.g., KD tree and BSP tree.
29        */
30        IntelRayCaster(const Preprocessor &preprocessor,
31                                   const string externKdTree);
32
33        virtual ~IntelRayCaster();
34
35        int Type() const
36        {
37                return INTEL_RAYCASTER;
38        }
39
40        virtual int CastRay(const SimpleRay &simpleRay,
41                                                VssRayContainer &vssRays,
42                                                const AxisAlignedBox3 &box,
43                                                const bool castDoubleRay,
44                                                const bool pruneInvalidRays = true);
45
46        virtual void CastRays16(
47                                                        SimpleRayContainer &rays,
48                                                        VssRayContainer &vssRays,
49                                                        const AxisAlignedBox3 &sbox,
50                                                        const bool castDoubleRay,
51                                                        const bool pruneInvalidRays = true);
52
53        virtual void CastRays16(
54                                                        SimpleRayContainer &rays,
55                                                        const int offset,
56                                                        VssRayContainer &vssRays,
57                                                        const AxisAlignedBox3 &sbox,
58                                                        const bool castDoubleRay,
59                                                        const bool pruneInvalidRays = true);
60
61 
62  void
63  CastSimpleForwardRays(
64                                                SimpleRayContainer &rays,
65                                                const AxisAlignedBox3 &sbox
66                                                );
67
68    virtual void CastRays(
69                                                  SimpleRayContainer &rays,
70                                                  VssRayContainer &vssRays,
71                                                  const AxisAlignedBox3 &sbox,
72                                                  const bool castDoubleRay,
73                                                  const bool pruneInvalidRays = true);
74
75protected:
76
77        bool InitRayCast(const string externKdTree);
78};
79
80
81}
82
83#endif
Note: See TracBrowser for help on using the repository browser.