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