00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkImageConnector.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 =========================================================================*/ 00032 #ifndef __vtkImageConnector_h 00033 #define __vtkImageConnector_h 00034 00035 #include "vtkObject.h" 00036 00037 class vtkImageData; 00038 00039 // 00040 // Special classes for manipulating data 00041 // 00042 //BTX - begin tcl exclude 00043 // 00044 // For the breadth first search 00045 class vtkImageConnectorSeed { //;prevent man page generation 00046 public: 00047 static vtkImageConnectorSeed *New() { return new vtkImageConnectorSeed;} 00048 void *Pointer; 00049 int Index[3]; 00050 vtkImageConnectorSeed *Next; 00051 }; 00052 //ETX - end tcl exclude 00053 // 00054 00055 00056 class VTK_IMAGING_EXPORT vtkImageConnector : public vtkObject 00057 { 00058 public: 00059 static vtkImageConnector *New(); 00060 00061 vtkTypeRevisionMacro(vtkImageConnector,vtkObject); 00062 void PrintSelf(ostream& os, vtkIndent indent); 00063 00064 //BTX 00065 vtkImageConnectorSeed *NewSeed(int index[3], void *ptr); 00066 void AddSeed(vtkImageConnectorSeed *seed); 00067 void AddSeedToEnd(vtkImageConnectorSeed *seed); 00068 //ETX 00069 void RemoveAllSeeds(); 00070 00072 00073 vtkSetMacro(ConnectedValue, unsigned char); 00074 vtkGetMacro(ConnectedValue, unsigned char); 00075 vtkSetMacro(UnconnectedValue, unsigned char); 00076 vtkGetMacro(UnconnectedValue, unsigned char); 00078 00079 00083 void MarkData(vtkImageData *data, int dimensionality, int ext[6]); 00084 00085 00086 protected: 00087 vtkImageConnector(); 00088 ~vtkImageConnector(); 00089 00090 unsigned char ConnectedValue; 00091 unsigned char UnconnectedValue; 00092 00093 vtkImageConnectorSeed *PopSeed(); 00094 00095 vtkImageConnectorSeed *Seeds; 00096 vtkImageConnectorSeed *LastSeed; 00097 private: 00098 vtkImageConnector(const vtkImageConnector&); // Not implemented. 00099 void operator=(const vtkImageConnector&); // Not implemented. 00100 }; 00101 00102 00103 00104 #endif 00105 00106