VTK  9.3.0
vtkTexturedButtonRepresentation2D.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
35 #ifndef vtkTexturedButtonRepresentation2D_h
36 #define vtkTexturedButtonRepresentation2D_h
37 
39 #include "vtkInteractionWidgetsModule.h" // For export macro
40 
41 VTK_ABI_NAMESPACE_BEGIN
42 class vtkProperty2D;
43 class vtkImageData;
44 class vtkTextureArray; // PIMPLd
45 class vtkProperty2D;
46 class vtkAlgorithmOutput;
48 class vtkCoordinate;
49 
50 class VTKINTERACTIONWIDGETS_EXPORT vtkTexturedButtonRepresentation2D
52 {
53 public:
58 
60 
64  void PrintSelf(ostream& os, vtkIndent indent) override;
66 
68 
72  virtual void SetProperty(vtkProperty2D* p);
73  vtkGetObjectMacro(Property, vtkProperty2D);
75 
77 
81  vtkGetObjectMacro(HoveringProperty, vtkProperty2D);
83 
85 
89  vtkGetObjectMacro(SelectingProperty, vtkProperty2D);
91 
93 
100 
105  vtkBalloonRepresentation* GetBalloon() { return this->Balloon; }
106 
108 
111  int ComputeInteractionState(int X, int Y, int modify = 0) override;
112  void BuildRepresentation() override;
113  void Highlight(int state) override;
115 
123  void PlaceWidget(double bounds[6]) override;
124 
135  virtual void PlaceWidget(double anchor[3], int size[2]);
136 
138 
141  void ShallowCopy(vtkProp* prop) override;
142  double* GetBounds() override;
143  void GetActors(vtkPropCollection* pc) override;
145  int RenderOverlay(vtkViewport*) override;
148 
149 protected:
152 
153  // Representing the button
155 
156  // Properties of the button
161 
162  // Keep track of the images (textures) associated with the N
163  // states of the button.
164  vtkTextureArray* TextureArray;
165 
166  // Tracking world position
168 
169 private:
171  void operator=(const vtkTexturedButtonRepresentation2D&) = delete;
172 };
173 
174 VTK_ABI_NAMESPACE_END
175 #endif
Proxy object to connect input/output ports.
represent the vtkBalloonWidget
abstract class defines the representation for a vtkButtonWidget
perform coordinate transformation, and represent position, in a variety of vtk coordinate systems
Definition: vtkCoordinate.h:69
topologically and geometrically regular array of data
Definition: vtkImageData.h:43
a simple class to control print indentation
Definition: vtkIndent.h:29
an ordered list of Props
abstract superclass for all actors, volumes and annotations
Definition: vtkProp.h:46
represent surface properties of a 2D image
Definition: vtkProperty2D.h:30
defines a representation for a vtkButtonWidget
static vtkTexturedButtonRepresentation2D * New()
Instantiate the class.
virtual void SetProperty(vtkProperty2D *p)
Specify the property to use when the button is to appear "normal" i.e., the mouse pointer is not hove...
vtkImageData * GetButtonTexture(int i)
Add the ith texture corresponding to the ith button state.
void ReleaseGraphicsResources(vtkWindow *) override
Provide the necessary methods to satisfy the rendering API.
void PlaceWidget(double bounds[6]) override
Conventional PlaceWidget() method to satisfy the vtkWidgetRepresentation API.
virtual void SetHoveringProperty(vtkProperty2D *p)
Specify the property to use when the hovering over the button.
vtkBalloonRepresentation * GetBalloon()
Grab the underlying vtkBalloonRepresentation used to position and display the button texture.
void Highlight(int state) override
Provide the necessary methods to satisfy the vtkWidgetRepresentation API.
void SetButtonTexture(int i, vtkImageData *image)
Add the ith texture corresponding to the ith button state.
virtual void PlaceWidget(double anchor[3], int size[2])
This alternative PlaceWidget() method can be used to anchor the button to a 3D point.
virtual void SetSelectingProperty(vtkProperty2D *p)
Specify the property to use when selecting the button.
int RenderOverlay(vtkViewport *) override
Provide the necessary methods to satisfy the rendering API.
double * GetBounds() override
Provide the necessary methods to satisfy the rendering API.
void PrintSelf(ostream &os, vtkIndent indent) override
Standard methods for the class.
void BuildRepresentation() override
Provide the necessary methods to satisfy the vtkWidgetRepresentation API.
vtkTypeBool HasTranslucentPolygonalGeometry() override
Provide the necessary methods to satisfy the rendering API.
void GetActors(vtkPropCollection *pc) override
Provide the necessary methods to satisfy the rendering API.
void ShallowCopy(vtkProp *prop) override
Provide the necessary methods to satisfy the rendering API.
int ComputeInteractionState(int X, int Y, int modify=0) override
Provide the necessary methods to satisfy the vtkWidgetRepresentation API.
abstract specification for Viewports
Definition: vtkViewport.h:45
window superclass for vtkRenderWindow
Definition: vtkWindow.h:28
@ image
Definition: vtkX3D.h:374
@ size
Definition: vtkX3D.h:253
int vtkTypeBool
Definition: vtkABI.h:64