Free Electron
PointI.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_PointI_h__
8 #define __viewer_PointI_h__
9 
10 namespace fe
11 {
12 namespace ext
13 {
14 
15 /**************************************************************************//**
16  @brief A location in 3D space
17 
18  @ingroup viewer
19 *//***************************************************************************/
20 class FE_DL_EXPORT PointI:
21  virtual public Component,
22  public CastableAs<PointI>
23 {
24  public:
25  typedef enum
26  {
27  e_flagNull= 0x00,
28  e_flagHold= 0x01,
29  e_flagHold2= 0x02,
30  e_flagHold3= 0x04
31  } Flags;
32 
33  /** @brief Get the point matching a window mask
34 
35  The implementation may distinguish different
36  points based on the mask with its own criteria.
37  The only restriction is that every mask is
38  associated for some point.
39 
40  An example would be six available points:
41  three mouse buttons,
42  each with a press and release point.
43  */
44 virtual SpatialVector& point(const WindowEvent::Mask& mask) =0;
45 virtual
46 const SpatialVector& point(const WindowEvent::Mask& mask) const =0;
47 
48 virtual U32 flags(void) const =0;
49 
50  /** @brief Associate with a ViewI for anything
51  screen-based
52 
53  Note that there is no assumption related to the
54  ViewI used by the DrawI in draw(),
55  which can be different.
56  */
57 virtual void setView(sp<ViewI> spViewI) =0;
58 
59  /// @brief Render the point in some fashion
60 virtual void drawFeedback(sp<DrawI> spDrawI) const =0;
61 };
62 
63 } /* namespace ext */
64 } /* namespace fe */
65 
66 #endif /* __viewer_PointI_h__ */
kernel
Definition: namespace.dox:3
Base for all interfacable components.
Definition: Component.h:20
A location in 3D space.
Definition: PointI.h:20
Per-class participation non-RTTI fallback dynamic casting mechanism.
Definition: Castable.h:192