VTK
dox/Common/DataModel/vtkGenericAttribute.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkGenericAttribute.h
00005 
00006   Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
00007   All rights reserved.
00008   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00009 
00010      This software is distributed WITHOUT ANY WARRANTY; without even
00011      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00012      PURPOSE.  See the above copyright notice for more information.
00013 
00014 =========================================================================*/
00032 #ifndef __vtkGenericAttribute_h
00033 #define __vtkGenericAttribute_h
00034 
00035 #include "vtkCommonDataModelModule.h" // For export macro
00036 #include "vtkObject.h"
00037 
00038 class vtkGenericCellIterator;
00039 class vtkGenericAdaptorCell;
00040 class vtkGenericPointIterator;
00041 
00042 enum
00043 {
00044   vtkPointCentered,
00045   vtkCellCentered,
00046   vtkBoundaryCentered
00047 };
00048 
00049 class VTKCOMMONDATAMODEL_EXPORT vtkGenericAttribute : public vtkObject
00050 {
00051  public:
00052   vtkTypeMacro(vtkGenericAttribute,vtkObject);
00053   virtual void PrintSelf(ostream& os, vtkIndent indent);
00054 
00057   virtual const char *GetName() = 0;
00058 
00065   virtual int GetNumberOfComponents() = 0;
00066 
00070   virtual int GetCentering() = 0;
00071 
00078   virtual int GetType()=0;
00079 
00087   virtual int GetComponentType() = 0;
00088 
00090   virtual vtkIdType GetSize() = 0;
00091 
00093   virtual unsigned long GetActualMemorySize() = 0;
00094 
00100   virtual double *GetRange(int component=0) = 0;
00101 
00103 
00106   virtual void GetRange(int component,
00107                         double range[2]) = 0;
00109 
00112   virtual double GetMaxNorm()=0;
00113 
00119   virtual double *GetTuple(vtkGenericAdaptorCell *c) = 0;
00120 
00126   virtual void GetTuple(vtkGenericAdaptorCell *c, double *tuple) = 0;
00127 
00133   virtual double *GetTuple(vtkGenericCellIterator *c) = 0;
00134 
00140   virtual void GetTuple(vtkGenericCellIterator *c, double *tuple) = 0;
00141 
00145   virtual double *GetTuple(vtkGenericPointIterator *p) = 0;
00146 
00151   virtual void GetTuple(vtkGenericPointIterator *p, double *tuple) = 0;
00152 
00158   virtual void GetComponent(int i,vtkGenericCellIterator *c, double *values) = 0;
00159 
00163   virtual double GetComponent(int i,vtkGenericPointIterator *p) = 0;
00164 
00167   virtual void DeepCopy(vtkGenericAttribute *other) = 0;
00168 
00171   virtual void ShallowCopy(vtkGenericAttribute *other) = 0;
00172 
00173 protected:
00174   vtkGenericAttribute();
00175   ~vtkGenericAttribute();
00176 
00177 private:
00178   vtkGenericAttribute(const vtkGenericAttribute&);  // Not implemented.
00179   void operator=(const vtkGenericAttribute&);  // Not implemented.
00180 };
00181 
00182 #endif