00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
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&);
00136 void operator=(const vtkAnnotationLink&);
00137
00138
00139 class Command;
00140 friend class Command;
00141 Command* Observer;
00142
00143 };
00144
00145 #endif