Free Electron
IntersectorI.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 
8 #ifndef __viewer_IntersectorI_h__
9 #define __viewer_IntersectorI_h__
10 
11 namespace fe
12 {
13 namespace ext
14 {
15 
16 #if 0
17 class FE_DL_EXPORT IntersectorI : virtual public Component
18 {
19  public:
20 virtual bool intersect( Real &a_distance,
21  Record r_object,
22  const Vector2 &a_projected,
23  const SpatialVector &a_root,
24  const SpatialVector &a_direction) = 0;
25 virtual AccessorSet &filter( void) = 0;
26 };
27 #endif
28 
29 /** If rg_output is valid, populate
30  with all intersecting records */
31 class FE_DL_EXPORT IntersectRectI : virtual public Component
32 {
33  public:
34 virtual void intersect( sp<RecordGroup> rg_output,
35  sp<RecordGroup> rg_input,
36  const Vector2 &a_rect_lo,
37  const Vector2 &a_rect_hi,
38  sp<ViewI> spView) = 0;
39 };
40 
41 /** Return closest intersecting record. If rg_output is valid, populate
42  with all intersecting records */
43 class FE_DL_EXPORT IntersectPointI : virtual public Component
44 {
45  public:
46 virtual Record intersect( Real &a_distance,
47  sp<RecordGroup> rg_output,
48  sp<RecordGroup> rg_input,
49  const Vector2 &a_projected) = 0;
50 };
51 
52 /** Return closest intersecting record. If rg_output is valid, populate
53  with all intersecting records */
54 class FE_DL_EXPORT IntersectRayI : virtual public Component
55 {
56  public:
57 virtual Record intersect( Real &a_distance,
58  sp<RecordGroup> rg_output,
59  sp<RecordGroup> rg_input,
60  const SpatialVector &a_root,
61  const SpatialVector &a_direction) = 0;
62 };
63 
64 } /* namespace ext */
65 } /* namespace fe */
66 
67 #endif /* __viewer_IntersectorI_h__ */
68 
Return closest intersecting record.
Definition: IntersectorI.h:43
kernel
Definition: namespace.dox:3
Return closest intersecting record.
Definition: IntersectorI.h:54
Reference to an instance of a Layout.
Definition: RecordSB.h:35
Base for all interfacable components.
Definition: Component.h:20
If rg_output is valid, populate with all intersecting records.
Definition: IntersectorI.h:31