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 =========================================================================*/ 00045 #ifndef __vtkImageConnector_h 00046 #define __vtkImageConnector_h 00047 00048 #include "vtkObject.h" 00049 00050 class vtkImageData; 00051 00052 // 00053 // Special classes for manipulating data 00054 // 00055 //BTX - begin tcl exclude 00056 // 00057 // For the breadth first search 00058 class vtkImageConnectorSeed { //;prevent man page generation 00059 public: 00060 static vtkImageConnectorSeed *New() { return new vtkImageConnectorSeed;} 00061 void *Pointer; 00062 int Index[3]; 00063 vtkImageConnectorSeed *Next; 00064 }; 00065 //ETX - end tcl exclude 00066 // 00067 00068 00069 class VTK_IMAGING_EXPORT vtkImageConnector : public vtkObject 00070 { 00071 public: 00072 static vtkImageConnector *New(); 00073 00074 vtkTypeRevisionMacro(vtkImageConnector,vtkObject); 00075 void PrintSelf(ostream& os, vtkIndent indent); 00076 00077 //BTX 00078 vtkImageConnectorSeed *NewSeed(int index[3], void *ptr); 00079 void AddSeed(vtkImageConnectorSeed *seed); 00080 void AddSeedToEnd(vtkImageConnectorSeed *seed); 00081 //ETX 00082 void RemoveAllSeeds(); 00083 00085 00086 vtkSetMacro(ConnectedValue, unsigned char); 00087 vtkGetMacro(ConnectedValue, unsigned char); 00088 vtkSetMacro(UnconnectedValue, unsigned char); 00089 vtkGetMacro(UnconnectedValue, unsigned char); 00091 00092 00096 void MarkData(vtkImageData *data, int dimensionality, int ext[6]); 00097 00098 00099 protected: 00100 vtkImageConnector(); 00101 ~vtkImageConnector(); 00102 00103 unsigned char ConnectedValue; 00104 unsigned char UnconnectedValue; 00105 00106 vtkImageConnectorSeed *PopSeed(); 00107 00108 vtkImageConnectorSeed *Seeds; 00109 vtkImageConnectorSeed *LastSeed; 00110 private: 00111 vtkImageConnector(const vtkImageConnector&); // Not implemented. 00112 void operator=(const vtkImageConnector&); // Not implemented. 00113 }; 00114 00115 00116 00117 #endif 00118 00119