VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkSliderRepresentation2D.h 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 00013 00014 =========================================================================*/ 00034 #ifndef vtkSliderRepresentation2D_h 00035 #define vtkSliderRepresentation2D_h 00036 00037 #include "vtkInteractionWidgetsModule.h" // For export macro 00038 #include "vtkSliderRepresentation.h" 00039 #include "vtkCoordinate.h" // For vtkViewportCoordinateMacro 00040 00041 class vtkPoints; 00042 class vtkCellArray; 00043 class vtkPolyData; 00044 class vtkPolyDataMapper2D; 00045 class vtkActor2D; 00046 class vtkCoordinate; 00047 class vtkProperty2D; 00048 class vtkPropCollection; 00049 class vtkWindow; 00050 class vtkViewport; 00051 class vtkTransform; 00052 class vtkTransformPolyDataFilter; 00053 class vtkTextProperty; 00054 class vtkTextMapper; 00055 class vtkTextActor; 00056 00057 00058 class VTKINTERACTIONWIDGETS_EXPORT vtkSliderRepresentation2D : public vtkSliderRepresentation 00059 { 00060 public: 00062 static vtkSliderRepresentation2D *New(); 00063 00065 00066 vtkTypeMacro(vtkSliderRepresentation2D,vtkSliderRepresentation); 00067 void PrintSelf(ostream& os, vtkIndent indent); 00069 00076 vtkCoordinate *GetPoint1Coordinate(); 00077 00084 vtkCoordinate *GetPoint2Coordinate(); 00085 00087 00089 virtual void SetTitleText(const char*); 00090 virtual const char* GetTitleText(); 00092 00094 00096 vtkGetObjectMacro(SliderProperty,vtkProperty2D); 00098 00100 00101 vtkGetObjectMacro(TubeProperty,vtkProperty2D); 00102 vtkGetObjectMacro(CapProperty,vtkProperty2D); 00104 00106 00108 vtkGetObjectMacro(SelectedProperty,vtkProperty2D); 00110 00112 00113 vtkGetObjectMacro(LabelProperty,vtkTextProperty); 00114 vtkGetObjectMacro(TitleProperty,vtkTextProperty); 00116 00118 00121 virtual void PlaceWidget(double bounds[6]); 00122 virtual void BuildRepresentation(); 00123 virtual void StartWidgetInteraction(double eventPos[2]); 00124 virtual void WidgetInteraction(double newEventPos[2]); 00125 virtual void Highlight(int); 00127 00129 00130 virtual void GetActors2D(vtkPropCollection*); 00131 virtual void ReleaseGraphicsResources(vtkWindow*); 00132 virtual int RenderOverlay(vtkViewport*); 00133 virtual int RenderOpaqueGeometry(vtkViewport*); 00135 00136 protected: 00137 vtkSliderRepresentation2D(); 00138 ~vtkSliderRepresentation2D(); 00139 00140 // Positioning the widget 00141 vtkCoordinate *Point1Coordinate; 00142 vtkCoordinate *Point2Coordinate; 00143 00144 // Determine the parameter t along the slider 00145 virtual double ComputePickPosition(double eventPos[2]); 00146 00147 // Define the geometry. It is constructed in canaonical position 00148 // along the x-axis and then rotated into position. 00149 vtkTransform *XForm; 00150 vtkPoints *Points; 00151 00152 vtkCellArray *SliderCells; 00153 vtkPolyData *Slider; 00154 vtkTransformPolyDataFilter *SliderXForm; 00155 vtkPolyDataMapper2D *SliderMapper; 00156 vtkActor2D *SliderActor; 00157 vtkProperty2D *SliderProperty; 00158 00159 vtkCellArray *TubeCells; 00160 vtkPolyData *Tube; 00161 vtkTransformPolyDataFilter *TubeXForm; 00162 vtkPolyDataMapper2D *TubeMapper; 00163 vtkActor2D *TubeActor; 00164 vtkProperty2D *TubeProperty; 00165 00166 vtkCellArray *CapCells; 00167 vtkPolyData *Cap; 00168 vtkTransformPolyDataFilter *CapXForm; 00169 vtkPolyDataMapper2D *CapMapper; 00170 vtkActor2D *CapActor; 00171 vtkProperty2D *CapProperty; 00172 00173 vtkTextProperty *LabelProperty; 00174 vtkTextMapper *LabelMapper; 00175 vtkActor2D *LabelActor; 00176 00177 vtkTextProperty *TitleProperty; 00178 vtkTextMapper *TitleMapper; 00179 vtkActor2D *TitleActor; 00180 00181 vtkProperty2D *SelectedProperty; 00182 00183 // internal variables used for computation 00184 double X; 00185 00186 private: 00187 vtkSliderRepresentation2D(const vtkSliderRepresentation2D&); //Not implemented 00188 void operator=(const vtkSliderRepresentation2D&); //Not implemented 00189 }; 00190 00191 #endif