00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00059 #ifndef __vtkParallelCoordinatesActor_h
00060 #define __vtkParallelCoordinatesActor_h
00061
00062 #include "vtkActor2D.h"
00063
00064 class vtkAxisActor2D;
00065 class vtkDataObject;
00066 class vtkPolyData;
00067 class vtkPolyDataMapper2D;
00068 class vtkTextMapper;
00069 class vtkTextProperty;
00070
00071 #define VTK_IV_COLUMN 0
00072 #define VTK_IV_ROW 1
00073
00074 class VTK_RENDERING_EXPORT vtkParallelCoordinatesActor : public vtkActor2D
00075 {
00076 public:
00077 vtkTypeRevisionMacro(vtkParallelCoordinatesActor,vtkActor2D);
00078 void PrintSelf(ostream& os, vtkIndent indent);
00079
00083 static vtkParallelCoordinatesActor *New();
00084
00086
00089 vtkSetClampMacro(IndependentVariables,int,VTK_IV_COLUMN, VTK_IV_ROW);
00090 vtkGetMacro(IndependentVariables,int);
00091 void SetIndependentVariablesToColumns()
00092 {this->SetIndependentVariables(VTK_IV_COLUMN);};
00093 void SetIndependentVariablesToRows()
00094 {this->SetIndependentVariables(VTK_IV_ROW);};
00096
00098
00099 vtkSetStringMacro(Title);
00100 vtkGetStringMacro(Title);
00102
00104
00107 vtkSetClampMacro(NumberOfLabels, int, 0, 50);
00108 vtkGetMacro(NumberOfLabels, int);
00110
00112
00113 vtkSetStringMacro(LabelFormat);
00114 vtkGetStringMacro(LabelFormat);
00116
00118
00119 virtual void SetTitleTextProperty(vtkTextProperty *p);
00120 vtkGetObjectMacro(TitleTextProperty,vtkTextProperty);
00122
00124
00125 virtual void SetLabelTextProperty(vtkTextProperty *p);
00126 vtkGetObjectMacro(LabelTextProperty,vtkTextProperty);
00128
00130
00131 int RenderOpaqueGeometry(vtkViewport*);
00132 int RenderOverlay(vtkViewport*);
00133 int RenderTranslucentGeometry(vtkViewport *) {return 0;}
00135
00137 virtual void SetInput(vtkDataObject*);
00138
00140
00141 vtkGetObjectMacro(Input,vtkDataObject);
00143
00147 void ReleaseGraphicsResources(vtkWindow *);
00148
00149 protected:
00150 vtkParallelCoordinatesActor();
00151 ~vtkParallelCoordinatesActor();
00152
00153 private:
00154 vtkDataObject *Input;
00155
00156 int IndependentVariables;
00157 vtkIdType N;
00158 double *Mins;
00159 double *Maxs;
00160 int *Xs;
00161 int YMin;
00162 int YMax;
00163 int NumberOfLabels;
00164 char *LabelFormat;
00165 char *Title;
00166
00167 vtkAxisActor2D **Axes;
00168 vtkTextMapper *TitleMapper;
00169 vtkActor2D *TitleActor;
00170
00171 vtkTextProperty *TitleTextProperty;
00172 vtkTextProperty *LabelTextProperty;
00173
00174 vtkPolyData *PlotData;
00175 vtkPolyDataMapper2D *PlotMapper;
00176 vtkActor2D *PlotActor;
00177
00178 vtkTimeStamp BuildTime;
00179
00180 int LastPosition[2];
00181 int LastPosition2[2];
00182
00183 void Initialize();
00184 int PlaceAxes(vtkViewport *viewport, int *size);
00185
00186 private:
00187 vtkParallelCoordinatesActor(const vtkParallelCoordinatesActor&);
00188 void operator=(const vtkParallelCoordinatesActor&);
00189 };
00190
00191
00192 #endif
00193