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);
82 
84 
87  void SetButtonGeometry(vtkPolyData *pd);
88  void SetButtonGeometryConnection(vtkAlgorithmOutput* algOutput);
89  vtkPolyData *GetButtonGeometry();
91 
93 
97  vtkSetMacro(FollowCamera,int);
98  vtkGetMacro(FollowCamera,int);
99  vtkBooleanMacro(FollowCamera,int);
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  virtual int ComputeInteractionState(int X, int Y, int modify=0);
151  virtual void PlaceWidget(double bounds[6]);
152  virtual void BuildRepresentation();
153  virtual void Highlight(int state);
155 
157 
160  virtual void ShallowCopy(vtkProp *prop);
161  virtual double *GetBounds();
162  virtual void GetActors(vtkPropCollection *pc);
163  virtual void ReleaseGraphicsResources(vtkWindow*);
164  virtual int RenderOpaqueGeometry(vtkViewport*);
166  virtual int HasTranslucentPolygonalGeometry();
168 
169 protected:
172 
173  // Representing the button
178 
179  // Camera
181 
182  // Properties of the button
186  void CreateDefaultProperties();
187 
188  // Keep track of the images (textures) associated with the N
189  // states of the button. This is a PIMPLd stl map.
190  vtkTextureArray *TextureArray;
191 
192  // For picking the button
194 
195  // Register internal Pickers within PickingManager
196  virtual void RegisterPickers();
197 
198 private:
200  void operator=(const vtkTexturedButtonRepresentation&) VTK_DELETE_FUNCTION;
201 };
202 
203 #endif
abstract superclass for all actors, volumes and annotations
Definition: vtkProp.h:50
represents an object (geometry & properties) in a rendered scene
Definition: vtkActor.h:51
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:64
virtual void ShallowCopy(vtkProp *prop)
Satisfy some of vtkProp's API.
defines a representation for a vtkButtonWidget
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:85
virtual void ReleaseGraphicsResources(vtkWindow *)
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE Release any graphics resources that are being...
virtual void BuildRepresentation()=0
Subclasses of vtkWidgetRepresentation must implement these methods.
Proxy object to connect input/output ports.
a list of Props
virtual void Highlight(int)
These methods control the appearance of the button as it is being interacted with.
window superclass for vtkRenderWindow
Definition: vtkWindow.h:37
void PrintSelf(ostream &os, vtkIndent indent)
Standard methods for the class.
virtual double * GetBounds()
Methods to make this class behave as a vtkProp.
virtual int HasTranslucentPolygonalGeometry()
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE DO NOT USE THESE METHODS OUTSIDE OF THE RENDE...
a simple class to control print indentation
Definition: vtkIndent.h:39
virtual void RegisterPickers()
Register internal Pickers in the Picking Manager.
topologically and geometrically regular array of data
Definition: vtkImageData.h:45
handles properties associated with a texture map
Definition: vtkTexture.h:70
abstract class defines the representation for a vtkButtonWidget
virtual void GetActors(vtkPropCollection *)
For some exporters and other other operations we must be able to collect all the actors or volumes...
vtkSetMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
map vtkPolyData to graphics primitives
virtual int RenderOpaqueGeometry(vtkViewport *vtkNotUsed(viewport))
a subclass of actor that always faces the camera
Definition: vtkFollower.h:46
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
vtkBooleanMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
virtual int RenderTranslucentPolygonalGeometry(vtkViewport *vtkNotUsed(viewport))