Free Electron
QuickViewerI.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_QuickViewerI_h__
8 #define __viewer_QuickViewerI_h__
9 
10 namespace fe
11 {
12 namespace ext
13 {
14 
15 /**************************************************************************//**
16  @brief Self-configuring Viewer
17 
18  @ingroup viewer
19 *//***************************************************************************/
20 class FE_DL_EXPORT QuickViewerI:
21  virtual public Component,
22  public CastableAs<QuickViewerI>
23 {
24  public:
25  /// Adopts a DrawI
26 virtual void bind(sp<DrawI> spDrawI) =0;
27 
28  /// Returns the current DrawI
29 virtual sp<DrawI> getDrawI(void) const =0;
30 
31  /// Returns the internally-created WindowI
32 virtual sp<WindowI> getWindowI(void) const =0;
33 
34  /// Returns the current CameraControllerI
35 virtual sp<CameraControllerI> getCameraControllerI(void) const =0;
36 
37  /// Returns the center of attention
38 virtual SpatialVector interestPoint(void) const =0;
39 
40  /// Returns the secondary point
41 virtual SpatialVector auxilliaryPoint(void) const =0;
42 
43  /// Add an extra handler for the core heartbeat
44 virtual void insertBeatHandler(sp<HandlerI> spHandlerI) =0;
45 
46  /// Add an extra handler for raw event signals
47 virtual void insertEventHandler(sp<HandlerI> spEventHandler) =0;
48 
49  /// Specify a handler for render signals
50 virtual void insertDrawHandler(sp<HandlerI> spHandlerI) =0;
51 
52  /// @brief Map the viewer to the screen
53 virtual void open(void) =0;
54 
55 virtual void reopen(void) =0;
56 
57  /** @brief Run the viewer for a specified number
58  of frames
59 
60  The window will be opened automatically.
61 
62  For unlimited frames, specify zero. */
63 virtual void run(U32 frames) =0;
64 
65  /// Returns frames per seconds
66 virtual Real frameRate(void) const =0;
67 };
68 
69 } /* namespace ext */
70 } /* namespace fe */
71 
72 #endif /* __viewer_QuickViewerI_h__ */
kernel
Definition: namespace.dox:3
Self-configuring Viewer.
Definition: QuickViewerI.h:20
Base for all interfacable components.
Definition: Component.h:20
Per-class participation non-RTTI fallback dynamic casting mechanism.
Definition: Castable.h:192