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 
00064   virtual int GetNumberOfComponents() = 0;
00065 
00069   virtual int GetCentering() = 0;
00070 
00077   virtual int GetType()=0;
00078 
00086   virtual int GetComponentType() = 0;
00087 
00089   virtual vtkIdType GetSize() = 0;
00090 
00092   virtual unsigned long GetActualMemorySize() = 0;
00093 
00099   virtual double *GetRange(int component=0) = 0;
00100 
00102 
00105   virtual void GetRange(int component,
00106                         double range[2]) = 0;
00108 
00111   virtual double GetMaxNorm()=0;
00112 
00117   virtual double *GetTuple(vtkGenericAdaptorCell *c) = 0;
00118 
00123   virtual void GetTuple(vtkGenericAdaptorCell *c, double *tuple) = 0;
00124 
00129   virtual double *GetTuple(vtkGenericCellIterator *c) = 0;
00130 
00135   virtual void GetTuple(vtkGenericCellIterator *c, double *tuple) = 0;
00136 
00140   virtual double *GetTuple(vtkGenericPointIterator *p) = 0;
00141 
00146   virtual void GetTuple(vtkGenericPointIterator *p, double *tuple) = 0;
00147 
00153   virtual void GetComponent(int i,vtkGenericCellIterator *c, double *values) = 0;
00154 
00158   virtual double GetComponent(int i,vtkGenericPointIterator *p) = 0;
00159 
00162   virtual void DeepCopy(vtkGenericAttribute *other) = 0;
00163 
00166   virtual void ShallowCopy(vtkGenericAttribute *other) = 0;
00167 
00168 protected:
00169   vtkGenericAttribute();
00170   ~vtkGenericAttribute();
00171 
00172 private:
00173   vtkGenericAttribute(const vtkGenericAttribute&);  // Not implemented.
00174   void operator=(const vtkGenericAttribute&);  // Not implemented.
00175 };
00176 
00177 #endif