VTK
vtkSliderRepresentation3D.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkSliderRepresentation3D.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 =========================================================================*/
34 #ifndef vtkSliderRepresentation3D_h
35 #define vtkSliderRepresentation3D_h
36 
37 #include "vtkInteractionWidgetsModule.h" // For export macro
39 #include "vtkCoordinate.h" // For vtkViewportCoordinateMacro
40 
41 class vtkActor;
42 class vtkPolyDataMapper;
43 class vtkSphereSource;
44 class vtkCellPicker;
45 class vtkProperty;
46 class vtkCylinderSource;
47 class vtkVectorText;
48 class vtkAssembly;
49 class vtkTransform;
51 class vtkMatrix4x4;
52 
53 
55 {
56 public:
59 
61 
63  void PrintSelf(ostream& os, vtkIndent indent);
65 
67 
74  void SetPoint1InWorldCoordinates(double x, double y, double z);
76 
78 
85  void SetPoint2InWorldCoordinates(double x, double y, double z);
87 
89 
91  virtual void SetTitleText(const char*);
92  virtual const char* GetTitleText();
94 
96 
98  vtkSetClampMacro(SliderShape,int,SphereShape,CylinderShape);
99  vtkGetMacro(SliderShape, int);
100  void SetSliderShapeToSphere() { this->SetSliderShape(SphereShape); }
101  void SetSliderShapeToCylinder() { this->SetSliderShape(CylinderShape); }
103 
105 
108  vtkSetMacro(Rotation,double);
109  vtkGetMacro(Rotation,double);
111 
113 
117 
119 
123 
125 
127  vtkGetObjectMacro(SelectedProperty,vtkProperty);
129 
131 
132  virtual void PlaceWidget(double bounds[6]);
133  virtual void BuildRepresentation();
134  virtual void StartWidgetInteraction(double eventPos[2]);
135  virtual void WidgetInteraction(double newEventPos[2]);
136  virtual void Highlight(int);
138 
140 
141  virtual double *GetBounds();
142  virtual void GetActors(vtkPropCollection*);
148 
150  virtual unsigned long GetMTime();
151 
152 protected:
155 
156  // Positioning the widget
159  double Length;
160 
161  // These are the slider end points taking into account the thickness
162  // of the slider
163  double SP1[3];
164  double SP2[3];
165 
166  // More ivars controlling the appearance of the widget
167  double Rotation;
169 
170  // Do the picking
172 
173  // Register internal Pickers within PickingManager
174  virtual void RegisterPickers();
175 
176  // Determine the parameter t along the slider
177  virtual double ComputePickPosition(double eventPos[2]);
178 
179  // The widget consists of several actors, all grouped
180  // together using an assembly. This makes it easier to
181  // perform the final transformation into
183 
184  // Cylinder used by other objects
187 
188  // The tube
192 
193  // The slider
199 
200  // The left cap
204 
205  // The right cap
208 
209  // The text. There is an extra transform used to rotate
210  // both the title and label
214 
218 
219  // Transform used during slider motion
222 
223 //BTX - manage the state of the widget
226  CylinderShape
227  };
228 
229 //ETX
230 
231 
232 private:
233  vtkSliderRepresentation3D(const vtkSliderRepresentation3D&); //Not implemented
234  void operator=(const vtkSliderRepresentation3D&); //Not implemented
235 };
236 
237 #endif
vtkPolyDataMapper
map vtkPolyData to graphics primitives
Definition: vtkPolyDataMapper.h:42
vtkgl::z
GLdouble GLdouble z
Definition: vtkgl.h:11754
vtkSliderRepresentation3D::SliderProperty
vtkProperty * SliderProperty
Definition: vtkSliderRepresentation3D.h:197
vtkSliderRepresentation3D::HasTranslucentPolygonalGeometry
virtual int HasTranslucentPolygonalGeometry()
vtkSliderRepresentation3D::TitleActor
vtkActor * TitleActor
Definition: vtkSliderRepresentation3D.h:217
vtkGetObjectMacro
#define vtkGetObjectMacro(name, type)
Definition: vtkSetGet.h:232
vtkSliderRepresentation3D::vtkSliderRepresentation3D
vtkSliderRepresentation3D()
vtkSliderRepresentation3D
provide the representation for a vtkSliderWidget with a 3D skin
Definition: vtkSliderRepresentation3D.h:55
vtkSliderRepresentation3D::TubeMapper
vtkPolyDataMapper * TubeMapper
Definition: vtkSliderRepresentation3D.h:189
vtkSliderRepresentation3D::CapProperty
vtkProperty * CapProperty
Definition: vtkSliderRepresentation3D.h:203
vtkSliderRepresentation3D::Highlight
virtual void Highlight(int)
vtkSliderRepresentation3D::ReleaseGraphicsResources
virtual void ReleaseGraphicsResources(vtkWindow *)
vtkSliderRepresentation3D::SetTitleText
virtual void SetTitleText(const char *)
vtkSliderRepresentation3D::Cylinder
vtkTransformPolyDataFilter * Cylinder
Definition: vtkSliderRepresentation3D.h:186
vtkSliderRepresentation3D::RightCapMapper
vtkPolyDataMapper * RightCapMapper
Definition: vtkSliderRepresentation3D.h:206
vtkSliderRepresentation3D::~vtkSliderRepresentation3D
~vtkSliderRepresentation3D()
vtkSliderRepresentation3D::WidgetInteraction
virtual void WidgetInteraction(double newEventPos[2])
vtkSliderRepresentation3D::LabelText
vtkVectorText * LabelText
Definition: vtkSliderRepresentation3D.h:211
vtkSliderRepresentation3D::Matrix
vtkMatrix4x4 * Matrix
Definition: vtkSliderRepresentation3D.h:220
vtkSliderRepresentation3D::Rotation
double Rotation
Definition: vtkSliderRepresentation3D.h:167
vtkSliderRepresentation3D::SliderMapper
vtkPolyDataMapper * SliderMapper
Definition: vtkSliderRepresentation3D.h:195
vtkSliderRepresentation3D::GetPoint1Coordinate
vtkCoordinate * GetPoint1Coordinate()
vtkSliderRepresentation3D::SliderActor
vtkActor * SliderActor
Definition: vtkSliderRepresentation3D.h:196
vtkSliderRepresentation3D::WidgetAssembly
vtkAssembly * WidgetAssembly
Definition: vtkSliderRepresentation3D.h:182
vtkSliderRepresentation3D::GetBounds
virtual double * GetBounds()
vtkTypeMacro
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:642
vtkSliderRepresentation3D::_SliderShape
_SliderShape
Definition: vtkSliderRepresentation3D.h:224
vtkInteractionWidgetsModule.h
vtkgl::x
GLint GLint GLint GLint GLint x
Definition: vtkgl.h:11318
vtkTransform
describes linear transformations via a 4x4 matrix
Definition: vtkTransform.h:60
vtkVectorText
create polygonal text
Definition: vtkVectorText.h:47
vtkWindow
window superclass for vtkRenderWindow
Definition: vtkWindow.h:34
vtkSliderRepresentation3D::SetSliderShapeToSphere
void SetSliderShapeToSphere()
Definition: vtkSliderRepresentation3D.h:100
vtkSliderRepresentation3D::New
static vtkSliderRepresentation3D * New()
vtkSetClampMacro
#define vtkSetClampMacro(name, type, min, max)
Definition: vtkSetGet.h:143
vtkSliderRepresentation3D::CylinderSource
vtkCylinderSource * CylinderSource
Definition: vtkSliderRepresentation3D.h:185
vtkSliderRepresentation3D::RightCapActor
vtkActor * RightCapActor
Definition: vtkSliderRepresentation3D.h:207
vtkSliderRepresentation3D::SphereShape
@ SphereShape
Definition: vtkSliderRepresentation3D.h:225
vtkSliderRepresentation3D::TubeProperty
vtkProperty * TubeProperty
Definition: vtkSliderRepresentation3D.h:191
vtkSliderRepresentation3D::GetPoint2Coordinate
vtkCoordinate * GetPoint2Coordinate()
vtkSliderRepresentation3D::SetPoint1InWorldCoordinates
void SetPoint1InWorldCoordinates(double x, double y, double z)
vtkSphereSource
create a polygonal sphere centered at the origin
Definition: vtkSphereSource.h:46
vtkSliderRepresentation3D::TitleMapper
vtkPolyDataMapper * TitleMapper
Definition: vtkSliderRepresentation3D.h:216
vtkSliderRepresentation3D::RegisterPickers
virtual void RegisterPickers()
vtkActor
represents an object (geometry & properties) in a rendered scene
Definition: vtkActor.h:51
vtkSliderRepresentation3D::SliderSource
vtkSphereSource * SliderSource
Definition: vtkSliderRepresentation3D.h:194
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkSliderRepresentation3D::Length
double Length
Definition: vtkSliderRepresentation3D.h:159
vtkMatrix4x4
represent and manipulate 4x4 transformation matrices
Definition: vtkMatrix4x4.h:39
vtkSliderRepresentation3D::GetActors
virtual void GetActors(vtkPropCollection *)
vtkSliderRepresentation3D::Point1Coordinate
vtkCoordinate * Point1Coordinate
Definition: vtkSliderRepresentation3D.h:157
vtkSliderRepresentation3D::BuildRepresentation
virtual void BuildRepresentation()
vtkSliderRepresentation3D::SetPoint2InWorldCoordinates
void SetPoint2InWorldCoordinates(double x, double y, double z)
vtkSliderRepresentation3D::LeftCapActor
vtkActor * LeftCapActor
Definition: vtkSliderRepresentation3D.h:202
vtkCoordinate
perform coordinate transformation, and represent position, in a variety of vtk coordinate systems
Definition: vtkCoordinate.h:70
vtkGetMacro
#define vtkGetMacro(name, type)
Definition: vtkSetGet.h:93
vtkSliderRepresentation3D::TubeActor
vtkActor * TubeActor
Definition: vtkSliderRepresentation3D.h:190
vtkCylinderSource
generate a cylinder centered at origin
Definition: vtkCylinderSource.h:42
vtkSliderRepresentation3D::SelectedProperty
vtkProperty * SelectedProperty
Definition: vtkSliderRepresentation3D.h:198
vtkSliderRepresentation3D::GetTitleText
virtual const char * GetTitleText()
vtkSliderRepresentation3D::GetMTime
virtual unsigned long GetMTime()
vtkTransformPolyDataFilter
transform points and associated normals and vectors for polygonal dataset
Definition: vtkTransformPolyDataFilter.h:51
vtkViewport
abstract specification for Viewports
Definition: vtkViewport.h:47
vtkSliderRepresentation3D::TitleText
vtkVectorText * TitleText
Definition: vtkSliderRepresentation3D.h:215
vtkCoordinate.h
vtkSetMacro
vtkSetMacro(IgnoreDriverBugs, bool)
vtkSliderRepresentation3D::Picker
vtkCellPicker * Picker
Definition: vtkSliderRepresentation3D.h:171
vtkSliderRepresentation3D::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent)
vtkSliderRepresentation.h
vtkSliderRepresentation3D::PlaceWidget
virtual void PlaceWidget(double bounds[6])
VTKINTERACTIONWIDGETS_EXPORT
#define VTKINTERACTIONWIDGETS_EXPORT
Definition: vtkInteractionWidgetsModule.h:15
vtkgl::y
GLint GLint GLint GLint GLint GLint y
Definition: vtkgl.h:11318
vtkSliderRepresentation3D::SliderShape
int SliderShape
Definition: vtkSliderRepresentation3D.h:168
vtkSliderRepresentation3D::RenderOpaqueGeometry
virtual int RenderOpaqueGeometry(vtkViewport *)
vtkSliderRepresentation3D::RenderTranslucentPolygonalGeometry
virtual int RenderTranslucentPolygonalGeometry(vtkViewport *)
vtkProperty
represent surface properties of a geometric object
Definition: vtkProperty.h:64
vtkSliderRepresentation3D::ComputePickPosition
virtual double ComputePickPosition(double eventPos[2])
vtkSliderRepresentation3D::Transform
vtkTransform * Transform
Definition: vtkSliderRepresentation3D.h:221
vtkSliderRepresentation3D::LeftCapMapper
vtkPolyDataMapper * LeftCapMapper
Definition: vtkSliderRepresentation3D.h:201
vtkSliderRepresentation3D::SetSliderShapeToCylinder
void SetSliderShapeToCylinder()
Definition: vtkSliderRepresentation3D.h:101
vtkPropCollection
a list of Props
Definition: vtkPropCollection.h:38
vtkCellPicker
ray-cast cell picker for all kinds of Prop3Ds
Definition: vtkCellPicker.h:69
vtkSliderRepresentation3D::LabelActor
vtkActor * LabelActor
Definition: vtkSliderRepresentation3D.h:213
vtkSliderRepresentation3D::StartWidgetInteraction
virtual void StartWidgetInteraction(double eventPos[2])
vtkSliderRepresentation
abstract class defines the representation for a vtkSliderWidget
Definition: vtkSliderRepresentation.h:45
vtkSliderRepresentation3D::Point2Coordinate
vtkCoordinate * Point2Coordinate
Definition: vtkSliderRepresentation3D.h:158
vtkAssembly
create hierarchies of vtkProp3Ds (transformable props)
Definition: vtkAssembly.h:75
vtkSliderRepresentation3D::LabelMapper
vtkPolyDataMapper * LabelMapper
Definition: vtkSliderRepresentation3D.h:212