VTK  9.2.6
vtkVRMenuRepresentation.h
Go to the documentation of this file.
1/*=========================================================================
2
3Program: Visualization Toolkit
4Module: vtkVRMenuRepresentation.h
5
6Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7All rights reserved.
8See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9
10This software is distributed WITHOUT ANY WARRANTY; without even
11the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12PURPOSE. See the above copyright notice for more information.
13
14=========================================================================*/
27
28#ifndef vtkVRMenuRepresentation_h
29#define vtkVRMenuRepresentation_h
30
31#include "vtkRenderingVRModule.h" // For export macro
33#include <deque> // for ivar
34
35class VTKRENDERINGVR_EXPORT vtkVRMenuRepresentation : public vtkWidgetRepresentation
36{
37public:
42
44
48 void PrintSelf(ostream& os, vtkIndent indent) override;
50
52
55 void BuildRepresentation() override;
56
58 unsigned long event, void* calldata) override;
60 unsigned long event, void* calldata) override;
62 unsigned long event, void* calldata) override;
64
66
71 int RenderOverlay(vtkViewport*) override;
73
75
78 void PushFrontMenuItem(const char* name, const char* text, vtkCommand* cmd);
79 void RenameMenuItem(const char* name, const char* text);
80 void RemoveMenuItem(const char* name);
83
84 vtkGetMacro(CurrentOption, double);
85
86protected:
89
90 class InternalElement;
91 std::deque<InternalElement*> Menus;
92
93 double CurrentOption; // count from start of the list
94 double PlacedPos[3];
95 double PlacedDOP[3];
96 double PlacedVUP[3];
97 double PlacedVRight[3];
99
100private:
102 void operator=(const vtkVRMenuRepresentation&) = delete;
103};
104
105#endif
define the API for widget / widget representation
superclass for callback/observer methods
Definition vtkCommand.h:395
a simple class to control print indentation
Definition vtkIndent.h:40
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:56
window superclass for vtkRenderWindow
Definition vtkWindow.h:39
int vtkTypeBool
Definition vtkABI.h:69