VTK  9.6.20260411
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 "vtkWrappingHints.h" // For VTK_MARSHALAUTO
22#include <deque> // for ivar
23
24VTK_ABI_NAMESPACE_BEGIN
26{
27public:
32
34
38 void PrintSelf(ostream& os, vtkIndent indent) override;
40
42
45 void BuildRepresentation() override;
46
48 unsigned long event, void* calldata) override;
50 unsigned long event, void* calldata) override;
52 unsigned long event, void* calldata) override;
54
56
61 int RenderOverlay(vtkViewport*) override;
63
65
68 void PushFrontMenuItem(const char* name, const char* text, vtkCommand* cmd);
69 void RenameMenuItem(const char* name, const char* text);
70 void RemoveMenuItem(const char* name);
73
74 vtkGetMacro(CurrentOption, double);
75
76protected:
79
80 class InternalElement;
81 std::deque<InternalElement*> Menus;
82
83 double CurrentOption; // count from start of the list
84 double PlacedPos[3];
85 double PlacedDOP[3];
86 double PlacedVUP[3];
87 double PlacedVRight[3];
89
90private:
92 void operator=(const vtkVRMenuRepresentation&) = delete;
93};
94
95VTK_ABI_NAMESPACE_END
96#endif
define the API for widget / widget representation
superclass for callback/observer methods
Definition vtkCommand.h:385
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:61
int vtkTypeBool
Definition vtkABI.h:64
#define VTK_MARSHALAUTO