Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

Imaging/vtkImageConnector.h

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