00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00070 #ifndef __vtkMNITagPointWriter_h
00071 #define __vtkMNITagPointWriter_h
00072
00073 #include "vtkDataSetWriter.h"
00074
00075 class vtkDataSet;
00076 class vtkPointSet;
00077 class vtkStringArray;
00078 class vtkDoubleArray;
00079 class vtkIntArray;
00080 class vtkPoints;
00081
00082 class VTK_HYBRID_EXPORT vtkMNITagPointWriter : public vtkDataSetWriter
00083 {
00084 public:
00085 vtkTypeMacro(vtkMNITagPointWriter,vtkDataSetWriter);
00086
00087 static vtkMNITagPointWriter *New();
00088 virtual void PrintSelf(ostream& os, vtkIndent indent);
00089
00091
00092 virtual const char* GetFileExtensions() {
00093 return ".tag"; }
00095
00097
00098 virtual const char* GetDescriptiveName() {
00099 return "MNI tags"; }
00101
00103
00104 virtual void SetPoints(int port, vtkPoints *points);
00105 virtual void SetPoints(vtkPoints *points) {
00106 this->SetPoints(0, points); }
00107 virtual vtkPoints *GetPoints(int port);
00108 virtual vtkPoints *GetPoints() {
00109 return this->GetPoints(0); }
00111
00113
00115 virtual void SetLabelText(vtkStringArray *a);
00116 vtkGetObjectMacro(LabelText, vtkStringArray);
00118
00120
00122 virtual void SetWeights(vtkDoubleArray *a);
00123 vtkGetObjectMacro(Weights, vtkDoubleArray);
00125
00127
00129 virtual void SetStructureIds(vtkIntArray *a);
00130 vtkGetObjectMacro(StructureIds, vtkIntArray);
00132
00134
00136 virtual void SetPatientIds(vtkIntArray *a);
00137 vtkGetObjectMacro(PatientIds, vtkIntArray);
00139
00141
00142 vtkSetStringMacro(Comments);
00143 vtkGetStringMacro(Comments);
00145
00147 virtual int Write();
00148
00150 virtual unsigned long GetMTime();
00151
00152 protected:
00153 vtkMNITagPointWriter();
00154 ~vtkMNITagPointWriter();
00155
00156 vtkPoints *Points[2];
00157 vtkStringArray *LabelText;
00158 vtkDoubleArray *Weights;
00159 vtkIntArray *StructureIds;
00160 vtkIntArray *PatientIds;
00161 char *Comments;
00162
00163 virtual void WriteData() {};
00164 virtual void WriteData(vtkPointSet *inputs[2]);
00165
00166 int FillInputPortInformation(int port, vtkInformation *info);
00167
00168 int RequestData(vtkInformation *, vtkInformationVector **,
00169 vtkInformationVector *);
00170
00171 private:
00172 vtkMNITagPointWriter(const vtkMNITagPointWriter&);
00173 void operator=(const vtkMNITagPointWriter&);
00174
00175 };
00176
00177 #endif