VTK
dox/Graphics/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 "vtkAnnotationLayersAlgorithm.h"
00056 
00057 class vtkCommand;
00058 class vtkDataObjectCollection;
00059 class vtkInformation;
00060 class vtkInformationVector;
00061 class vtkSelection;
00062 class vtkTable;
00063 
00064 class VTK_GRAPHICS_EXPORT vtkAnnotationLink : public vtkAnnotationLayersAlgorithm
00065 {
00066 public:
00067   static vtkAnnotationLink *New();
00068   vtkTypeMacro(vtkAnnotationLink, vtkAnnotationLayersAlgorithm);
00069   void PrintSelf(ostream& os, vtkIndent indent);
00070   
00072 
00073   vtkGetObjectMacro(AnnotationLayers, vtkAnnotationLayers);
00074   virtual void SetAnnotationLayers(vtkAnnotationLayers* layers);
00076 
00078 
00079   virtual void SetCurrentSelection(vtkSelection* sel);
00080   virtual vtkSelection* GetCurrentSelection();
00082   
00084 
00085   void AddDomainMap(vtkTable* map);
00086   void RemoveDomainMap(vtkTable* map);
00087   void RemoveAllDomainMaps();
00088   int GetNumberOfDomainMaps();
00089   vtkTable* GetDomainMap(int i);
00091 
00093   virtual unsigned long GetMTime();
00094   
00095 protected:
00096   vtkAnnotationLink();
00097   ~vtkAnnotationLink();
00098   
00100 
00101   virtual void ProcessEvents(vtkObject* caller, unsigned long eventId, 
00102     void* callData);
00104 
00106   virtual int FillInputPortInformation(int, vtkInformation*);
00107   
00109   virtual int FillOutputPortInformation(int, vtkInformation*);
00110   
00112 
00113   void ShallowCopyToOutput(
00114     vtkAnnotationLayers* input,
00115     vtkAnnotationLayers* output,
00116     vtkSelection* sel);
00118 
00120 
00121   virtual int RequestData(
00122     vtkInformation *info,
00123     vtkInformationVector **inVector,
00124     vtkInformationVector *outVector);
00126 
00128   vtkAnnotationLayers* AnnotationLayers;
00129 
00131   vtkDataObjectCollection* DomainMaps;
00132     
00133 
00134 private:
00135   vtkAnnotationLink(const vtkAnnotationLink&);  // Not implemented.
00136   void operator=(const vtkAnnotationLink&);  // Not implemented.  
00137 
00138   //BTX
00139   class Command;
00140   friend class Command;
00141   Command* Observer;
00142   //ETX
00143 };
00144 
00145 #endif