Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

dox/Rendering/vtkParallelCoordinatesActor.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkParallelCoordinatesActor.h,v $
00005   Language:  C++
00006 
00007   Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen 
00008   All rights reserved.
00009   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00010 
00011      This software is distributed WITHOUT ANY WARRANTY; without even 
00012      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
00013      PURPOSE.  See the above copyright notice for more information.
00014 
00015 =========================================================================*/
00063 #ifndef __vtkParallelCoordinatesActor_h
00064 #define __vtkParallelCoordinatesActor_h
00065 
00066 #include "vtkActor2D.h"
00067 
00068 class vtkAxisActor2D;
00069 class vtkDataObject;
00070 class vtkPolyData;
00071 class vtkPolyDataMapper2D;
00072 class vtkTextMapper;
00073 class vtkTextProperty;
00074 
00075 #define VTK_IV_COLUMN 0
00076 #define VTK_IV_ROW    1
00077 
00078 class VTK_RENDERING_EXPORT vtkParallelCoordinatesActor : public vtkActor2D
00079 {
00080 public:
00081   vtkTypeRevisionMacro(vtkParallelCoordinatesActor,vtkActor2D);
00082   void PrintSelf(ostream& os, vtkIndent indent);
00083 
00087   static vtkParallelCoordinatesActor *New();
00088 
00090 
00093   vtkSetClampMacro(IndependentVariables,int,VTK_IV_COLUMN, VTK_IV_ROW);
00094   vtkGetMacro(IndependentVariables,int);
00095   void SetIndependentVariablesToColumns()
00096     {this->SetIndependentVariables(VTK_IV_COLUMN);};
00097   void SetIndependentVariablesToRows()
00098     {this->SetIndependentVariables(VTK_IV_ROW);};
00100 
00102 
00103   vtkSetStringMacro(Title);
00104   vtkGetStringMacro(Title);
00106 
00108 
00111   vtkSetClampMacro(NumberOfLabels, int, 0, 50);
00112   vtkGetMacro(NumberOfLabels, int);
00114   
00116 
00117   vtkSetStringMacro(LabelFormat);
00118   vtkGetStringMacro(LabelFormat);
00120 
00122 
00123   virtual void SetTitleTextProperty(vtkTextProperty *p);
00124   vtkGetObjectMacro(TitleTextProperty,vtkTextProperty);
00126   
00128 
00129   virtual void SetLabelTextProperty(vtkTextProperty *p);
00130   vtkGetObjectMacro(LabelTextProperty,vtkTextProperty);
00132       
00133 #ifndef VTK_REMOVE_LEGACY_CODE
00134 
00135 
00140   virtual void SetFontFamily(int val);
00141   virtual int GetFontFamily();
00142   void SetFontFamilyToArial()   { this->SetFontFamily(VTK_ARIAL);  };
00143   void SetFontFamilyToCourier() { this->SetFontFamily(VTK_COURIER);};
00144   void SetFontFamilyToTimes()   { this->SetFontFamily(VTK_TIMES);  };
00146 #endif
00147 
00148 #ifndef VTK_REMOVE_LEGACY_CODE
00149 
00150 
00153   virtual void SetBold(int val);
00154   virtual int GetBold();
00155   vtkBooleanMacro(Bold, int);
00157 #endif
00158 
00159 #ifndef VTK_REMOVE_LEGACY_CODE
00160 
00161 
00164   virtual void SetItalic(int val);
00165   virtual int GetItalic();
00166   vtkBooleanMacro(Italic, int);
00168 #endif
00169 
00170 #ifndef VTK_REMOVE_LEGACY_CODE
00171 
00172 
00175   virtual void SetShadow(int val);
00176   virtual int GetShadow();
00177   vtkBooleanMacro(Shadow, int);
00179 #endif
00180 
00182 
00183   int RenderOpaqueGeometry(vtkViewport*);
00184   int RenderOverlay(vtkViewport*);
00185   int RenderTranslucentGeometry(vtkViewport *) {return 0;}
00187 
00189   virtual void SetInput(vtkDataObject*);
00190 
00192 
00193   vtkGetObjectMacro(Input,vtkDataObject);
00195 
00199   void ReleaseGraphicsResources(vtkWindow *);
00200 
00201 protected:
00202   vtkParallelCoordinatesActor();
00203   ~vtkParallelCoordinatesActor();
00204 
00205 private:
00206   vtkDataObject *Input;        // List of data sets to plot
00207 
00208   int IndependentVariables;    // Use column or row
00209   vtkIdType N;                 // The number of independent variables
00210   float *Mins;                 // Minimum data value along this row/column
00211   float *Maxs;                 // Maximum data value along this row/column
00212   int   *Xs;                   // Axes x-values (in viewport coordinates)
00213   int   YMin;                  // Axes y-min-value (in viewport coordinates)
00214   int   YMax;                  // Axes y-max-value (in viewport coordinates)
00215   int   NumberOfLabels;        // Along each axis
00216   char  *LabelFormat;
00217   char  *Title;
00218 
00219   vtkAxisActor2D **Axes;       
00220   vtkTextMapper  *TitleMapper;
00221   vtkActor2D     *TitleActor;
00222 
00223   vtkTextProperty *TitleTextProperty;
00224   vtkTextProperty *LabelTextProperty;
00225 
00226   vtkPolyData         *PlotData;    // The lines drawn within the axes
00227   vtkPolyDataMapper2D *PlotMapper;
00228   vtkActor2D          *PlotActor;
00229   
00230   vtkTimeStamp  BuildTime;
00231 
00232   int   LastPosition[2];
00233   int   LastPosition2[2];
00234 
00235   void Initialize();
00236   int PlaceAxes(vtkViewport *viewport, int *size);
00237 
00238 private:
00239   vtkParallelCoordinatesActor(const vtkParallelCoordinatesActor&);  // Not implemented.
00240   void operator=(const vtkParallelCoordinatesActor&);  // Not implemented.
00241 };
00242 
00243 
00244 #endif
00245