VTK
vtkTexturedButtonRepresentation.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkTexturedButtonRepresentation.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 =========================================================================*/
50 #ifndef vtkTexturedButtonRepresentation_h
51 #define vtkTexturedButtonRepresentation_h
52 
53 #include "vtkInteractionWidgetsModule.h" // For export macro
55 
56 class vtkCellPicker;
57 class vtkActor;
58 class vtkProperty;
59 class vtkImageData;
60 class vtkTextureArray; //PIMPLd
61 class vtkPolyData;
62 class vtkPolyDataMapper;
63 class vtkAlgorithmOutput;
64 class vtkTexture;
65 class vtkFollower;
66 
67 class VTKINTERACTIONWIDGETS_EXPORT vtkTexturedButtonRepresentation : public vtkButtonRepresentation
68 {
69 public:
74 
76 
80  void PrintSelf(ostream& os, vtkIndent indent) override;
82 
84 
87  void SetButtonGeometry(vtkPolyData *pd);
88  void SetButtonGeometryConnection(vtkAlgorithmOutput* algOutput);
89  vtkPolyData *GetButtonGeometry();
91 
93 
97  vtkSetMacro(FollowCamera,vtkTypeBool);
98  vtkGetMacro(FollowCamera,vtkTypeBool);
99  vtkBooleanMacro(FollowCamera,vtkTypeBool);
101 
103 
107  virtual void SetProperty(vtkProperty *p);
108  vtkGetObjectMacro(Property,vtkProperty);
110 
112 
115  virtual void SetHoveringProperty(vtkProperty *p);
116  vtkGetObjectMacro(HoveringProperty,vtkProperty);
118 
120 
123  virtual void SetSelectingProperty(vtkProperty *p);
124  vtkGetObjectMacro(SelectingProperty,vtkProperty);
126 
128 
132  void SetButtonTexture(int i, vtkImageData *image);
133  vtkImageData *GetButtonTexture(int i);
135 
144  virtual void PlaceWidget(double scale, double point[3], double normal[3]);
145 
147 
150  int ComputeInteractionState(int X, int Y, int modify=0) override;
151  void PlaceWidget(double bounds[6]) override;
152  void BuildRepresentation() override;
153  void Highlight(int state) override;
155 
157 
160  void ShallowCopy(vtkProp *prop) override;
161  double *GetBounds() override;
162  void GetActors(vtkPropCollection *pc) override;
163  void ReleaseGraphicsResources(vtkWindow*) override;
164  int RenderOpaqueGeometry(vtkViewport*) override;
168 
169  /*
170  * Register internal Pickers within PickingManager
171  */
172  void RegisterPickers() override;
173 
174 protected:
177 
178  // Representing the button
183 
184  // Camera
186 
187  // Properties of the button
191  void CreateDefaultProperties();
192 
193  // Keep track of the images (textures) associated with the N
194  // states of the button. This is a PIMPLd stl map.
195  vtkTextureArray *TextureArray;
196 
197  // For picking the button
199 
200 
201 private:
203  void operator=(const vtkTexturedButtonRepresentation&) = delete;
204 };
205 
206 #endif
abstract superclass for all actors, volumes and annotations
Definition: vtkProp.h:52
represents an object (geometry & properties) in a rendered scene
Definition: vtkActor.h:51
void PrintSelf(ostream &os, vtkIndent indent) override
Standard methods for the class.
virtual int ComputeInteractionState(int X, int Y, int modify=0)
abstract specification for Viewports
Definition: vtkViewport.h:47
represent surface properties of a geometric object
Definition: vtkProperty.h:66
defines a representation for a vtkButtonWidget
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:85
void ShallowCopy(vtkProp *prop) override
Satisfy some of vtkProp's API.
virtual void BuildRepresentation()=0
Subclasses of vtkWidgetRepresentation must implement these methods.
Proxy object to connect input/output ports.
double * GetBounds() override
Methods to make this class behave as a vtkProp.
an ordered list of Props
int vtkTypeBool
Definition: vtkABI.h:69
window superclass for vtkRenderWindow
Definition: vtkWindow.h:37
int RenderTranslucentPolygonalGeometry(vtkViewport *vtkNotUsed(viewport)) override
a simple class to control print indentation
Definition: vtkIndent.h:39
virtual void RegisterPickers()
Register internal Pickers in the Picking Manager.
void Highlight(int) override
These methods control the appearance of the button as it is being interacted with.
topologically and geometrically regular array of data
Definition: vtkImageData.h:45
void ReleaseGraphicsResources(vtkWindow *) override
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE Release any graphics resources that are being...
handles properties associated with a texture map
Definition: vtkTexture.h:71
int RenderOpaqueGeometry(vtkViewport *vtkNotUsed(viewport)) override
abstract class defines the representation for a vtkButtonWidget
map vtkPolyData to graphics primitives
a subclass of actor that always faces the camera
Definition: vtkFollower.h:46
vtkTypeBool HasTranslucentPolygonalGeometry() override
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE DO NOT USE THESE METHODS OUTSIDE OF THE RENDE...
virtual void PlaceWidget(double *vtkNotUsed(bounds[6]))
The following is a suggested API for widget representations.
ray-cast cell picker for all kinds of Prop3Ds
Definition: vtkCellPicker.h:69
void GetActors(vtkPropCollection *) override
For some exporters and other other operations we must be able to collect all the actors or volumes...
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...