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

vtkImageConnector.h

Go to the documentation of this file.
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