Free Electron
Intersectors.h
Go to the documentation of this file.
1 /* Copyright (C) 2003-2021 Free Electron Organization
2  Any use of this software requires a license. If a valid license
3  was not distributed with this file, visit freeelectron.org. */
4 
5 /** @file */
6 
7 #ifndef __viewer_RayIntersectors_h__
8 #define __viewer_RayIntersectors_h__
9 
10 namespace fe
11 {
12 namespace ext
13 {
14 
15 #if 0
16 class FE_DL_EXPORT WorldSphereIntersector :
17  virtual public IntersectorI
18 {
19  public:
20  WorldSphereIntersector(void);
21 virtual ~WorldSphereIntersector(void);
22  // AS IntersectorI
23 virtual bool intersect( Real &a_distance,
24  Record r_object,
25  const Vector2 &a_projected,
26  const SpatialVector &a_root,
27  const SpatialVector &a_direction);
28 virtual AccessorSet &filter( void);
29 
30  private:
31  AsSelWorldSphere m_asSelSphere;
32 };
33 
34 class FE_DL_EXPORT WorldTriangleIntersector :
35  virtual public IntersectorI
36 {
37  public:
38  WorldTriangleIntersector(void);
39 virtual ~WorldTriangleIntersector(void);
40  // AS IntersectorI
41 virtual bool intersect( Real &a_distance,
42  Record r_object,
43  const Vector2 &a_projected,
44  const SpatialVector &a_root,
45  const SpatialVector &a_direction);
46 virtual AccessorSet &filter( void);
47 
48  private:
49  AsSelWorldTriangle m_asSelTri;
50 };
51 
52 class FE_DL_EXPORT ScreenTriangleIntersector :
53  virtual public IntersectorI
54 {
55  public:
56  ScreenTriangleIntersector(void);
57 virtual ~ScreenTriangleIntersector(void);
58  // AS IntersectorI
59 virtual bool intersect( Real &a_distance,
60  Record r_object,
61  const Vector2 &a_projected,
62  const SpatialVector &a_root,
63  const SpatialVector &a_direction);
64 virtual AccessorSet &filter( void);
65 
66  private:
67  AsSelScreenTriangle m_asSelTri;
68 };
69 #endif
70 
71 class FE_DL_EXPORT IntersectRaySphere :
72  virtual public IntersectRayI
73 {
74  public:
75  IntersectRaySphere(void);
76 virtual ~IntersectRaySphere(void);
77  // AS WorldPickI
78 virtual Record intersect( Real &a_distance,
79  sp<RecordGroup> rg_output,
80  sp<RecordGroup> rg_input,
81  const SpatialVector &a_root,
82  const SpatialVector &a_direction);
83 
84  private:
85  AsSelWorldSphere m_asSelSphere;
86 };
87 
88 class FE_DL_EXPORT IntersectPointTriangle :
89  virtual public IntersectPointI
90 {
91  public:
92  IntersectPointTriangle(void);
93 virtual ~IntersectPointTriangle(void);
94  // AS ScreenPickI
95 virtual Record intersect( Real &a_distance,
96  sp<RecordGroup> rg_output,
97  sp<RecordGroup> rg_input,
98  const Vector2 &a_projected);
99 
100  private:
101  AsSelScreenTriangle m_asSelTri;
102 };
103 
104 class FE_DL_EXPORT IntersectRectPoint :
105  virtual public IntersectRectI
106 {
107  public:
108  IntersectRectPoint(void);
109 virtual ~IntersectRectPoint(void);
110 virtual void intersect( sp<RecordGroup> rg_output,
111  sp<RecordGroup> rg_input,
112  const Vector2 &a_box_lo,
113  const Vector2 &a_box_hi,
114  sp<ViewI> spView);
115  private:
116  AsPoint m_asPoint;
117  AsProjected m_asProjected;
118 };
119 
120 
121 } /* namespace ext */
122 } /* namespace fe */
123 
124 #endif /* __viewer_RayIntersectors_h__ */
125 
kernel
Definition: namespace.dox:3