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