VTK
|
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