00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00049 #ifndef __vtkAnnotationLink_h
00050 #define __vtkAnnotationLink_h
00051
00052 #include "vtkAnnotationLayersAlgorithm.h"
00053
00054 class vtkCommand;
00055 class vtkDataObjectCollection;
00056 class vtkInformation;
00057 class vtkInformationVector;
00058 class vtkSelection;
00059 class vtkTable;
00060
00061 class VTK_GRAPHICS_EXPORT vtkAnnotationLink : public vtkAnnotationLayersAlgorithm
00062 {
00063 public:
00064 static vtkAnnotationLink *New();
00065 vtkTypeRevisionMacro(vtkAnnotationLink, vtkAnnotationLayersAlgorithm);
00066 void PrintSelf(ostream& os, vtkIndent indent);
00067
00069
00070 vtkGetObjectMacro(AnnotationLayers, vtkAnnotationLayers);
00071 virtual void SetAnnotationLayers(vtkAnnotationLayers* layers);
00073
00075
00076 virtual void SetCurrentSelection(vtkSelection* sel);
00077 virtual vtkSelection* GetCurrentSelection();
00079
00081
00082 void AddDomainMap(vtkTable* map);
00083 void RemoveDomainMap(vtkTable* map);
00084 void RemoveAllDomainMaps();
00085 int GetNumberOfDomainMaps();
00086 vtkTable* GetDomainMap(int i);
00088
00090 virtual unsigned long GetMTime();
00091
00092 protected:
00093 vtkAnnotationLink();
00094 ~vtkAnnotationLink();
00095
00097
00098 virtual void ProcessEvents(vtkObject* caller, unsigned long eventId,
00099 void* callData);
00101
00103 virtual int FillInputPortInformation(int, vtkInformation*);
00104
00106 virtual int FillOutputPortInformation(int, vtkInformation*);
00107
00109
00110 void ShallowCopyToOutput(
00111 vtkAnnotationLayers* input,
00112 vtkAnnotationLayers* output,
00113 vtkSelection* sel);
00115
00117
00118 virtual int RequestData(
00119 vtkInformation *info,
00120 vtkInformationVector **inVector,
00121 vtkInformationVector *outVector);
00123
00125 vtkAnnotationLayers* AnnotationLayers;
00126
00128 vtkDataObjectCollection* DomainMaps;
00129
00130
00131 private:
00132 vtkAnnotationLink(const vtkAnnotationLink&);
00133 void operator=(const vtkAnnotationLink&);
00134
00135
00136 class Command;
00137 friend class Command;
00138 Command* Observer;
00139
00140 };
00141
00142 #endif