00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00056 #ifndef __vtkTable_h
00057 #define __vtkTable_h
00058 
00059 #include "vtkDataObject.h"
00060 
00061 class vtkAbstractArray;
00062 class vtkDataSetAttributes;
00063 class vtkVariant;
00064 class vtkVariantArray;
00065 
00066 class VTK_FILTERING_EXPORT vtkTable : public vtkDataObject
00067 {
00068 public:
00069   static vtkTable* New();
00070   vtkTypeMacro(vtkTable, vtkDataObject);
00071   void PrintSelf(ostream &os, vtkIndent indent);
00072 
00074   void Dump( unsigned int colWidth = 16 ); 
00075 
00077   int GetDataObjectType() {return VTK_TABLE;}
00078 
00084   virtual unsigned long GetActualMemorySize();
00085 
00087 
00088   vtkGetObjectMacro(RowData, vtkDataSetAttributes);
00089   virtual void SetRowData(vtkDataSetAttributes* data);
00091 
00092   
00093   
00094   
00095 
00097   vtkIdType GetNumberOfRows();
00098 
00102   void SetNumberOfRows(const vtkIdType );
00103 
00106   vtkVariantArray* GetRow(vtkIdType row);
00107 
00110   void GetRow(vtkIdType row, vtkVariantArray *values);
00111 
00114   void SetRow(vtkIdType row, vtkVariantArray *values);
00115 
00117   vtkIdType InsertNextBlankRow(double default_num_val=0.0);
00118 
00121   vtkIdType InsertNextRow(vtkVariantArray* arr);
00122 
00125   void RemoveRow(vtkIdType row);
00126 
00127   
00128   
00129   
00130 
00132   vtkIdType GetNumberOfColumns();
00133 
00134   
00135   const char* GetColumnName(vtkIdType col);
00136 
00138   vtkAbstractArray* GetColumnByName(const char* name);
00139 
00141   vtkAbstractArray* GetColumn(vtkIdType col);
00142 
00144   void AddColumn(vtkAbstractArray* arr);
00145 
00147   void RemoveColumnByName(const char* name);
00148 
00150   void RemoveColumn(vtkIdType col);
00151 
00152   
00153   
00154   
00155 
00160   vtkVariant GetValue(vtkIdType row, vtkIdType col);
00161 
00164   vtkVariant GetValueByName(vtkIdType row, const char* col);
00165 
00167   void SetValue(vtkIdType row, vtkIdType col, vtkVariant value);
00168 
00170   void SetValueByName(vtkIdType row, const char* col, vtkVariant value);
00171   
00173   virtual void Initialize();
00174 
00176 
00177   static vtkTable* GetData(vtkInformation* info);
00178   static vtkTable* GetData(vtkInformationVector* v, int i=0);
00180 
00182 
00183   virtual void ShallowCopy(vtkDataObject* src);
00184   virtual void DeepCopy(vtkDataObject* src);
00186 
00191   virtual vtkFieldData* GetAttributesAsFieldData(int type);
00192 
00194   virtual vtkIdType GetNumberOfElements(int type);
00195 
00196 protected:
00197   vtkTable();
00198   ~vtkTable();
00199 
00201   vtkDataSetAttributes* RowData;
00202 
00204   vtkVariantArray* RowArray;
00205 
00206 private:
00207   vtkTable(const vtkTable&); 
00208   void operator=(const vtkTable&); 
00209 };
00210 
00211 #endif
00212