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

Revision 2678, 2.4 KB checked in by mattausch, 16 years ago (diff)

started working on dynamic objects

RevLine 
[1520]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;
[1528]20struct SimpleRay;
[1520]21
[1925]22
[1520]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        */
[1925]30        IntelRayCaster(const Preprocessor &preprocessor,
[2176]31                                   const std::string externKdTree);
[1520]32
33        virtual ~IntelRayCaster();
34
[1925]35        int Type() const
36        {
37                return INTEL_RAYCASTER;
38        }
[1520]39
[2582]40        // Using packet of 4 rays supposing that these are coherent
41        // We give a box to which each ray is clipped to before the
42        // ray shooting is computed !
43  virtual void CastRaysPacket4(const Vector3 &minBox,
44                                                           const Vector3 &maxBox,
45                                                           const Vector3 origin4[],
46                                                           const Vector3 direction4[],
47                                                           int result4[],
48                                                           float dist4[]);
49 
[1925]50        virtual int CastRay(const SimpleRay &simpleRay,
51                                                VssRayContainer &vssRays,
52                                                const AxisAlignedBox3 &box,
53                                                const bool castDoubleRay,
[1996]54                                                const bool pruneInvalidRays = true);
[1520]55
[1972]56        virtual void CastRays16(
[1925]57                                                        SimpleRayContainer &rays,
58                                                        VssRayContainer &vssRays,
59                                                        const AxisAlignedBox3 &sbox,
60                                                        const bool castDoubleRay,
[1996]61                                                        const bool pruneInvalidRays = true);
[1925]62
[2076]63        virtual void CastRays16(
64                                                        SimpleRayContainer &rays,
65                                                        const int offset,
66                                                        VssRayContainer &vssRays,
67                                                        const AxisAlignedBox3 &sbox,
68                                                        const bool castDoubleRay,
69                                                        const bool pruneInvalidRays = true);
70
[2105]71 
72  void
73  CastSimpleForwardRays(
74                                                SimpleRayContainer &rays,
75                                                const AxisAlignedBox3 &sbox
76                                                );
77
[2076]78    virtual void CastRays(
79                                                  SimpleRayContainer &rays,
80                                                  VssRayContainer &vssRays,
81                                                  const AxisAlignedBox3 &sbox,
82                                                  const bool castDoubleRay,
83                                                  const bool pruneInvalidRays = true);
84
[2678]85        virtual void AddDynamicObjecs(const ObjectContainer &objects, const Matrix4x4 &m) {DYN_ERROR_STRING;}
86        virtual void UpdateDynamicObjects(const Matrix4x4 &m) {DYN_ERROR_STRING;}
87        virtual void DeleteDynamicObjects() {DYN_ERROR_STRING;}
[2623]88
[1520]89protected:
90
[2176]91        bool InitRayCast(const std::string externKdTree);
[1520]92};
93
94
95}
96
97#endif
Note: See TracBrowser for help on using the repository browser.