00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkScalarTree.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 =========================================================================*/ 00051 #ifndef __vtkScalarTree_h 00052 #define __vtkScalarTree_h 00053 00054 #include "vtkObject.h" 00055 00056 class vtkCell; 00057 class vtkDataArray; 00058 class vtkDataSet; 00059 class vtkIdList; 00060 class vtkTimeStamp; 00061 00062 class VTK_FILTERING_EXPORT vtkScalarTree : public vtkObject 00063 { 00064 public: 00065 vtkTypeRevisionMacro(vtkScalarTree,vtkObject); 00066 void PrintSelf(ostream& os, vtkIndent indent); 00067 00069 00070 virtual void SetDataSet(vtkDataSet*); 00071 vtkGetObjectMacro(DataSet,vtkDataSet); 00073 00077 virtual void BuildTree() = 0; 00078 00080 virtual void Initialize() = 0; 00081 00084 virtual void InitTraversal(float scalarValue) = 0; 00085 00087 00091 virtual vtkCell *GetNextCell(vtkIdType &cellId, vtkIdList* &ptIds, 00092 vtkDataArray *cellScalars) = 0; 00094 00095 protected: 00096 vtkScalarTree(); 00097 ~vtkScalarTree(); 00098 00099 vtkDataSet *DataSet; //the dataset over which the scalar tree is built 00100 vtkDataArray *Scalars; //the scalars of the DataSet 00101 00102 vtkTimeStamp BuildTime; //time at which tree was built 00103 float ScalarValue; //current scalar value for traversal 00104 00105 private: 00106 vtkScalarTree(const vtkScalarTree&); // Not implemented. 00107 void operator=(const vtkScalarTree&); // Not implemented. 00108 }; 00109 00110 #endif 00111 00112