VTK  9.5.20251126
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
15
16#ifndef vtkVRMenuRepresentation_h
17#define vtkVRMenuRepresentation_h
18
19#include "vtkRenderingVRModule.h" // For export macro
21#include <deque> // for ivar
22
23VTK_ABI_NAMESPACE_BEGIN
24class VTKRENDERINGVR_EXPORT vtkVRMenuRepresentation : public vtkWidgetRepresentation
25{
26public:
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
75protected:
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];
88
89private:
91 void operator=(const vtkVRMenuRepresentation&) = delete;
92};
93
94VTK_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.
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
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.
static vtkVRMenuRepresentation * New()
Instantiate the class.
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:66
window superclass for vtkRenderWindow
Definition vtkWindow.h:48
int vtkTypeBool
Definition vtkABI.h:64