00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00062 #ifndef __vtkParallelCoordinatesActor_h
00063 #define __vtkParallelCoordinatesActor_h
00064
00065 #include "vtkActor2D.h"
00066
00067 class vtkAxisActor2D;
00068 class vtkDataObject;
00069 class vtkPolyData;
00070 class vtkPolyDataMapper2D;
00071 class vtkTextMapper;
00072 class vtkTextProperty;
00073
00074 #define VTK_IV_COLUMN 0
00075 #define VTK_IV_ROW 1
00076
00077 class VTK_RENDERING_EXPORT vtkParallelCoordinatesActor : public vtkActor2D
00078 {
00079 public:
00080 vtkTypeMacro(vtkParallelCoordinatesActor,vtkActor2D);
00081 void PrintSelf(ostream& os, vtkIndent indent);
00082
00086 static vtkParallelCoordinatesActor *New();
00087
00089
00092 vtkSetClampMacro(IndependentVariables,int,VTK_IV_COLUMN, VTK_IV_ROW);
00093 vtkGetMacro(IndependentVariables,int);
00094 void SetIndependentVariablesToColumns()
00095 {this->SetIndependentVariables(VTK_IV_COLUMN);};
00096 void SetIndependentVariablesToRows()
00097 {this->SetIndependentVariables(VTK_IV_ROW);};
00099
00101
00102 vtkSetStringMacro(Title);
00103 vtkGetStringMacro(Title);
00105
00107
00110 vtkSetClampMacro(NumberOfLabels, int, 0, 50);
00111 vtkGetMacro(NumberOfLabels, int);
00113
00115
00116 vtkSetStringMacro(LabelFormat);
00117 vtkGetStringMacro(LabelFormat);
00119
00121
00122 virtual void SetTitleTextProperty(vtkTextProperty *p);
00123 vtkGetObjectMacro(TitleTextProperty,vtkTextProperty);
00125
00127
00128 virtual void SetLabelTextProperty(vtkTextProperty *p);
00129 vtkGetObjectMacro(LabelTextProperty,vtkTextProperty);
00131
00133
00134 int RenderOpaqueGeometry(vtkViewport*);
00135 int RenderOverlay(vtkViewport*);
00136 virtual int RenderTranslucentPolygonalGeometry(vtkViewport *) {return 0;}
00138
00140 virtual int HasTranslucentPolygonalGeometry();
00141
00143 virtual void SetInput(vtkDataObject*);
00144
00146
00147 vtkGetObjectMacro(Input,vtkDataObject);
00149
00153 void ReleaseGraphicsResources(vtkWindow *);
00154
00155 protected:
00156 vtkParallelCoordinatesActor();
00157 ~vtkParallelCoordinatesActor();
00158
00159 private:
00160 vtkDataObject *Input;
00161
00162 int IndependentVariables;
00163 vtkIdType N;
00164 double *Mins;
00165 double *Maxs;
00166 int *Xs;
00167 int YMin;
00168 int YMax;
00169 int NumberOfLabels;
00170 char *LabelFormat;
00171 char *Title;
00172
00173 vtkAxisActor2D **Axes;
00174 vtkTextMapper *TitleMapper;
00175 vtkActor2D *TitleActor;
00176
00177 vtkTextProperty *TitleTextProperty;
00178 vtkTextProperty *LabelTextProperty;
00179
00180 vtkPolyData *PlotData;
00181 vtkPolyDataMapper2D *PlotMapper;
00182 vtkActor2D *PlotActor;
00183
00184 vtkTimeStamp BuildTime;
00185
00186 int LastPosition[2];
00187 int LastPosition2[2];
00188
00189 void Initialize();
00190 int PlaceAxes(vtkViewport *viewport, int *size);
00191
00192 private:
00193 vtkParallelCoordinatesActor(const vtkParallelCoordinatesActor&);
00194 void operator=(const vtkParallelCoordinatesActor&);
00195 };
00196
00197
00198 #endif
00199