VTK  9.1.0
vtkVRMenuRepresentation.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3 Program: Visualization Toolkit
4 Module: vtkVRMenuRepresentation.h
5 
6 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7 All rights reserved.
8 See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10 This software is distributed WITHOUT ANY WARRANTY; without even
11 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12 PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
28 #ifndef vtkVRMenuRepresentation_h
29 #define vtkVRMenuRepresentation_h
30 
31 #include "vtkRenderingVRModule.h" // For export macro
33 #include <deque> // for ivar
34 
35 class vtkActor;
36 class vtkProperty;
37 class vtkPolyData;
38 class vtkPolyDataMapper;
39 class vtkCellArray;
40 class vtkPoints;
41 class vtkTextActor3D;
42 
43 class VTKRENDERINGVR_EXPORT vtkVRMenuRepresentation : public vtkWidgetRepresentation
44 {
45 public:
50 
52 
56  void PrintSelf(ostream& os, vtkIndent indent) override;
58 
60 
63  void BuildRepresentation() override;
64 
66  unsigned long event, void* calldata) override;
68  unsigned long event, void* calldata) override;
70  unsigned long event, void* calldata) override;
72 
74 
79  int RenderOverlay(vtkViewport*) override;
81 
83 
86  void PushFrontMenuItem(const char* name, const char* text, vtkCommand* cmd);
87  void RenameMenuItem(const char* name, const char* text);
88  void RemoveMenuItem(const char* name);
91 
92  vtkGetMacro(CurrentOption, double);
93 
94 protected:
97 
98  class InternalElement;
99  std::deque<InternalElement*> Menus;
100 
101  double CurrentOption; // count from start of the list
102  double PlacedPos[3];
103  double PlacedDOP[3];
104  double PlacedVUP[3];
105  double PlacedVRight[3];
106  double PlacedOrientation[3];
107 
108 private:
110  void operator=(const vtkVRMenuRepresentation&) = delete;
111 };
112 
113 #endif
vtkPolyDataMapper
map vtkPolyData to graphics primitives
Definition: vtkPolyDataMapper.h:146
vtkPoints
represent and manipulate 3D points
Definition: vtkPoints.h:143
vtkWidgetRepresentation.h
vtkCommand
superclass for callback/observer methods
Definition: vtkCommand.h:394
vtkVRMenuRepresentation::RenameMenuItem
void RenameMenuItem(const char *name, const char *text)
Methods to add/remove items to the menu, called by the menu widget.
vtkTextActor3D
An actor that displays text.
Definition: vtkTextActor3D.h:45
vtkVRMenuRepresentation::New
static vtkVRMenuRepresentation * New()
Instantiate the class.
vtkWidgetRepresentation
abstract class defines interface between the widget and widget representation classes
Definition: vtkWidgetRepresentation.h:60
vtkVRMenuRepresentation::CurrentOption
double CurrentOption
Definition: vtkVRMenuRepresentation.h:101
vtkVRMenuRepresentation::vtkVRMenuRepresentation
vtkVRMenuRepresentation()
vtkVRMenuRepresentation::RemoveMenuItem
void RemoveMenuItem(const char *name)
Methods to add/remove items to the menu, called by the menu widget.
vtkVRMenuRepresentation::Menus
std::deque< InternalElement * > Menus
Definition: vtkVRMenuRepresentation.h:98
vtkWindow
window superclass for vtkRenderWindow
Definition: vtkWindow.h:39
vtkAbstractWidget
define the API for widget / widget representation
Definition: vtkAbstractWidget.h:66
vtkVRMenuRepresentation
Widget representation for vtkVRMenuWidget Implementation of the popup panel representation for the vt...
Definition: vtkVRMenuRepresentation.h:44
vtkVRMenuRepresentation::BuildRepresentation
void BuildRepresentation() override
Methods to interface with the vtkVRMenuWidget.
vtkVRMenuRepresentation::EndComplexInteraction
void EndComplexInteraction(vtkRenderWindowInteractor *iren, vtkAbstractWidget *widget, unsigned long event, void *calldata) override
Methods to interface with the vtkVRMenuWidget.
vtkActor
represents an object (geometry & properties) in a rendered scene
Definition: vtkActor.h:155
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:113
vtkCellArray
object to represent cell connectivity
Definition: vtkCellArray.h:290
vtkVRMenuRepresentation::StartComplexInteraction
void StartComplexInteraction(vtkRenderWindowInteractor *iren, vtkAbstractWidget *widget, unsigned long event, void *calldata) override
Methods to interface with the vtkVRMenuWidget.
vtkRenderWindowInteractor
platform-independent render window interaction including picking and frame rate control.
Definition: vtkRenderWindowInteractor.h:192
vtkViewport
abstract specification for Viewports
Definition: vtkViewport.h:47
vtkX3D::name
@ name
Definition: vtkX3D.h:225
vtkVRMenuRepresentation::ReleaseGraphicsResources
void ReleaseGraphicsResources(vtkWindow *) override
Methods supporting the rendering process.
vtkVRMenuRepresentation::HasTranslucentPolygonalGeometry
vtkTypeBool HasTranslucentPolygonalGeometry() override
Methods supporting the rendering process.
vtkVRMenuRepresentation::RemoveAllMenuItems
void RemoveAllMenuItems()
Methods to add/remove items to the menu, called by the menu widget.
vtkPolyData
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:195
vtkVRMenuRepresentation::ComplexInteraction
void ComplexInteraction(vtkRenderWindowInteractor *iren, vtkAbstractWidget *widget, unsigned long event, void *calldata) override
Methods to interface with the vtkVRMenuWidget.
vtkProperty
represent surface properties of a geometric object
Definition: vtkProperty.h:171
vtkVRMenuRepresentation::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Standard methods for the class.
vtkVRMenuRepresentation::RenderOverlay
int RenderOverlay(vtkViewport *) override
Methods supporting the rendering process.
vtkTypeBool
int vtkTypeBool
Definition: vtkABI.h:69
vtkVRMenuRepresentation::~vtkVRMenuRepresentation
~vtkVRMenuRepresentation() override
vtkVRMenuRepresentation::PushFrontMenuItem
void PushFrontMenuItem(const char *name, const char *text, vtkCommand *cmd)
Methods to add/remove items to the menu, called by the menu widget.