00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkScalarTree.h,v $ 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 =========================================================================*/ 00034 #ifndef __vtkScalarTree_h 00035 #define __vtkScalarTree_h 00036 00037 #include "vtkObject.h" 00038 00039 class vtkCell; 00040 class vtkDataArray; 00041 class vtkDataSet; 00042 class vtkIdList; 00043 class vtkTimeStamp; 00044 00045 class VTK_FILTERING_EXPORT vtkScalarTree : public vtkObject 00046 { 00047 public: 00048 vtkTypeRevisionMacro(vtkScalarTree,vtkObject); 00049 void PrintSelf(ostream& os, vtkIndent indent); 00050 00052 00053 virtual void SetDataSet(vtkDataSet*); 00054 vtkGetObjectMacro(DataSet,vtkDataSet); 00056 00060 virtual void BuildTree() = 0; 00061 00063 virtual void Initialize() = 0; 00064 00067 virtual void InitTraversal(double scalarValue) = 0; 00068 00070 00074 virtual vtkCell *GetNextCell(vtkIdType &cellId, vtkIdList* &ptIds, 00075 vtkDataArray *cellScalars) = 0; 00077 00078 protected: 00079 vtkScalarTree(); 00080 ~vtkScalarTree(); 00081 00082 vtkDataSet *DataSet; //the dataset over which the scalar tree is built 00083 vtkDataArray *Scalars; //the scalars of the DataSet 00084 00085 vtkTimeStamp BuildTime; //time at which tree was built 00086 double ScalarValue; //current scalar value for traversal 00087 00088 virtual void ReportReferences(vtkGarbageCollector*); 00089 00090 private: 00091 vtkScalarTree(const vtkScalarTree&); // Not implemented. 00092 void operator=(const vtkScalarTree&); // Not implemented. 00093 }; 00094 00095 #endif 00096 00097