VTK  9.3.20240328
vtkVRMenuRepresentation.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-License-Identifier: BSD-3-Clause
16 #ifndef vtkVRMenuRepresentation_h
17 #define vtkVRMenuRepresentation_h
18 
19 #include "vtkRenderingVRModule.h" // For export macro
21 #include <deque> // for ivar
22 
23 VTK_ABI_NAMESPACE_BEGIN
24 class VTKRENDERINGVR_EXPORT vtkVRMenuRepresentation : public vtkWidgetRepresentation
25 {
26 public:
31 
33 
37  void PrintSelf(ostream& os, vtkIndent indent) override;
39 
41 
44  void BuildRepresentation() override;
45 
47  unsigned long event, void* calldata) override;
49  unsigned long event, void* calldata) override;
51  unsigned long event, void* calldata) override;
53 
55 
60  int RenderOverlay(vtkViewport*) override;
62 
64 
67  void PushFrontMenuItem(const char* name, const char* text, vtkCommand* cmd);
68  void RenameMenuItem(const char* name, const char* text);
69  void RemoveMenuItem(const char* name);
72 
73  vtkGetMacro(CurrentOption, double);
74 
75 protected:
78 
79  class InternalElement;
80  std::deque<InternalElement*> Menus;
81 
82  double CurrentOption; // count from start of the list
83  double PlacedPos[3];
84  double PlacedDOP[3];
85  double PlacedVUP[3];
86  double PlacedVRight[3];
87  double PlacedOrientation[3];
88 
89 private:
91  void operator=(const vtkVRMenuRepresentation&) = delete;
92 };
93 
94 VTK_ABI_NAMESPACE_END
95 #endif
define the API for widget / widget representation
superclass for callback/observer methods
Definition: vtkCommand.h:384
a simple class to control print indentation
Definition: vtkIndent.h:108
platform-independent render window interaction including picking and frame rate control.
Widget representation for vtkVRMenuWidget Implementation of the popup panel representation for the vt...
void BuildRepresentation() override
Methods to interface with the vtkVRMenuWidget.
void PushFrontMenuItem(const char *name, const char *text, vtkCommand *cmd)
Methods to add/remove items to the menu, called by the menu widget.
void RemoveMenuItem(const char *name)
Methods to add/remove items to the menu, called by the menu widget.
~vtkVRMenuRepresentation() override
static vtkVRMenuRepresentation * New()
Instantiate the class.
void EndComplexInteraction(vtkRenderWindowInteractor *iren, vtkAbstractWidget *widget, unsigned long event, void *calldata) override
Methods to interface with the vtkVRMenuWidget.
void ReleaseGraphicsResources(vtkWindow *) override
Methods supporting the rendering process.
void PrintSelf(ostream &os, vtkIndent indent) override
Standard methods for the class.
int RenderOverlay(vtkViewport *) override
Methods supporting the rendering process.
void ComplexInteraction(vtkRenderWindowInteractor *iren, vtkAbstractWidget *widget, unsigned long event, void *calldata) override
Methods to interface with the vtkVRMenuWidget.
vtkTypeBool HasTranslucentPolygonalGeometry() override
Methods supporting the rendering process.
void RemoveAllMenuItems()
Methods to add/remove items to the menu, called by the menu widget.
void RenameMenuItem(const char *name, const char *text)
Methods to add/remove items to the menu, called by the menu widget.
void StartComplexInteraction(vtkRenderWindowInteractor *iren, vtkAbstractWidget *widget, unsigned long event, void *calldata) override
Methods to interface with the vtkVRMenuWidget.
std::deque< InternalElement * > Menus
abstract specification for Viewports
Definition: vtkViewport.h:64
abstract class defines interface between the widget and widget representation classes
window superclass for vtkRenderWindow
Definition: vtkWindow.h:47
@ name
Definition: vtkX3D.h:219
int vtkTypeBool
Definition: vtkABI.h:64