VTK
dox/Filters/General/vtkAnnotationLink.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkAnnotationLink.h
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 =========================================================================*/
00052 #ifndef __vtkAnnotationLink_h
00053 #define __vtkAnnotationLink_h
00054 
00055 #include "vtkFiltersGeneralModule.h" // For export macro
00056 #include "vtkAnnotationLayersAlgorithm.h"
00057 
00058 class vtkCommand;
00059 class vtkDataObjectCollection;
00060 class vtkInformation;
00061 class vtkInformationVector;
00062 class vtkSelection;
00063 class vtkTable;
00064 
00065 class VTKFILTERSGENERAL_EXPORT vtkAnnotationLink : public vtkAnnotationLayersAlgorithm
00066 {
00067 public:
00068   static vtkAnnotationLink *New();
00069   vtkTypeMacro(vtkAnnotationLink, vtkAnnotationLayersAlgorithm);
00070   void PrintSelf(ostream& os, vtkIndent indent);
00071 
00073 
00074   vtkGetObjectMacro(AnnotationLayers, vtkAnnotationLayers);
00075   virtual void SetAnnotationLayers(vtkAnnotationLayers* layers);
00077 
00079 
00080   virtual void SetCurrentSelection(vtkSelection* sel);
00081   virtual vtkSelection* GetCurrentSelection();
00083 
00085 
00086   void AddDomainMap(vtkTable* map);
00087   void RemoveDomainMap(vtkTable* map);
00088   void RemoveAllDomainMaps();
00089   int GetNumberOfDomainMaps();
00090   vtkTable* GetDomainMap(int i);
00092 
00094   virtual unsigned long GetMTime();
00095 
00096 protected:
00097   vtkAnnotationLink();
00098   ~vtkAnnotationLink();
00099 
00101 
00102   virtual void ProcessEvents(vtkObject* caller, unsigned long eventId,
00103     void* callData);
00105 
00107   virtual int FillInputPortInformation(int, vtkInformation*);
00108 
00110   virtual int FillOutputPortInformation(int, vtkInformation*);
00111 
00113 
00114   void ShallowCopyToOutput(
00115     vtkAnnotationLayers* input,
00116     vtkAnnotationLayers* output,
00117     vtkSelection* sel);
00119 
00121 
00122   virtual int RequestData(
00123     vtkInformation *info,
00124     vtkInformationVector **inVector,
00125     vtkInformationVector *outVector);
00127 
00129   vtkAnnotationLayers* AnnotationLayers;
00130 
00132   vtkDataObjectCollection* DomainMaps;
00133 
00134 
00135 private:
00136   vtkAnnotationLink(const vtkAnnotationLink&);  // Not implemented.
00137   void operator=(const vtkAnnotationLink&);  // Not implemented.
00138 
00139   //BTX
00140   class Command;
00141   friend class Command;
00142   Command* Observer;
00143   //ETX
00144 };
00145 
00146 #endif