VTK
vtkMNITagPointWriter.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkMNITagPointWriter.h
5
6 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7 All rights reserved.
8 See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9
10 This software is distributed WITHOUT ANY WARRANTY; without even
11 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12 PURPOSE. See the above copyright notice for more information.
13
14=========================================================================*/
15/*=========================================================================
16
17Copyright (c) 2006 Atamai, Inc.
18
19Use, modification and redistribution of the software, in source or
20binary forms, are permitted provided that the following terms and
21conditions are met:
22
231) Redistribution of the source code, in verbatim or modified
24 form, must retain the above copyright notice, this license,
25 the following disclaimer, and any notices that refer to this
26 license and/or the following disclaimer.
27
282) Redistribution in binary form must include the above copyright
29 notice, a copy of this license and the following disclaimer
30 in the documentation or with other materials provided with the
31 distribution.
32
333) Modified copies of the source code must be clearly marked as such,
34 and must not be misrepresented as verbatim copies of the source code.
35
36THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE SOFTWARE "AS IS"
37WITHOUT EXPRESSED OR IMPLIED WARRANTY INCLUDING, BUT NOT LIMITED TO,
38THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
39PURPOSE. IN NO EVENT SHALL ANY COPYRIGHT HOLDER OR OTHER PARTY WHO MAY
40MODIFY AND/OR REDISTRIBUTE THE SOFTWARE UNDER THE TERMS OF THIS LICENSE
41BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL OR CONSEQUENTIAL DAMAGES
42(INCLUDING, BUT NOT LIMITED TO, LOSS OF DATA OR DATA BECOMING INACCURATE
43OR LOSS OF PROFIT OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF
44THE USE OR INABILITY TO USE THE SOFTWARE, EVEN IF ADVISED OF THE
45POSSIBILITY OF SUCH DAMAGES.
46
47=========================================================================*/
68#ifndef vtkMNITagPointWriter_h
69#define vtkMNITagPointWriter_h
70
71#include "vtkIOMINCModule.h" // For export macro
72#include "vtkWriter.h"
73
74class vtkDataSet;
75class vtkPointSet;
76class vtkStringArray;
77class vtkDoubleArray;
78class vtkIntArray;
79class vtkPoints;
80
81class VTKIOMINC_EXPORT vtkMNITagPointWriter : public vtkWriter
82{
83public:
85
87 void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
88
92 virtual const char* GetFileExtensions() {
93 return ".tag"; }
94
98 virtual const char* GetDescriptiveName() {
99 return "MNI tags"; }
100
102
105 virtual void SetPoints(int port, vtkPoints *points);
106 virtual void SetPoints(vtkPoints *points) {
107 this->SetPoints(0, points); }
108 virtual vtkPoints *GetPoints(int port);
109 virtual vtkPoints *GetPoints() {
110 return this->GetPoints(0); }
112
114
118 virtual void SetLabelText(vtkStringArray *a);
119 vtkGetObjectMacro(LabelText, vtkStringArray);
121
123
127 virtual void SetWeights(vtkDoubleArray *a);
128 vtkGetObjectMacro(Weights, vtkDoubleArray);
130
132
136 virtual void SetStructureIds(vtkIntArray *a);
137 vtkGetObjectMacro(StructureIds, vtkIntArray);
139
141
145 virtual void SetPatientIds(vtkIntArray *a);
146 vtkGetObjectMacro(PatientIds, vtkIntArray);
148
150
153 vtkSetStringMacro(Comments);
156
160 virtual int Write();
161
166
168
171 vtkSetStringMacro(FileName);
174
175protected:
178
179 vtkPoints *Points[2];
184 char *Comments;
185
186 virtual void WriteData() {}
187 virtual void WriteData(vtkPointSet *inputs[2]);
188
190
193
194 char* FileName;
195
197
198 ostream *OpenFile();
199 void CloseFile(ostream *fp);
200
201private:
202 vtkMNITagPointWriter(const vtkMNITagPointWriter&) VTK_DELETE_FUNCTION;
203 void operator=(const vtkMNITagPointWriter&) VTK_DELETE_FUNCTION;
204
205};
206
207#endif
abstract class to specify dataset behavior
Definition: vtkDataSet.h:63
dynamic, self-adjusting array of double
a simple class to control print indentation
Definition: vtkIndent.h:40
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
dynamic, self-adjusting array of int
Definition: vtkIntArray.h:46
A writer for MNI tag point files.
virtual void SetWeights(vtkDoubleArray *a)
Set the weights (unless the input PointData has an array called Weights).
virtual void SetLabelText(vtkStringArray *a)
Set the labels (unless the input PointData has an array called LabelText).
void CloseFile(ostream *fp)
virtual const char * GetDescriptiveName()
Get the name of this file format.
virtual void WriteData(vtkPointSet *inputs[2])
virtual vtkPoints * GetPoints(int port)
virtual void SetPoints(vtkPoints *points)
virtual void SetStructureIds(vtkIntArray *a)
Set the structure ids (unless the input PointData has an array called StructureIds).
vtkStringArray * LabelText
virtual void SetPoints(int port, vtkPoints *points)
Set the points (unless you set them as inputs).
virtual vtkPoints * GetPoints()
int FillInputPortInformation(int port, vtkInformation *info)
Fill the input port information objects for this algorithm.
virtual int Write()
Write the file.
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
virtual void SetPatientIds(vtkIntArray *a)
Set the structure ids (unless the input PointData has an array called PatientIds).
virtual vtkMTimeType GetMTime()
Get the MTime.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
static vtkMNITagPointWriter * New()
ostream * OpenFile()
virtual const char * GetFileExtensions()
Get the entension for this file format.
abstract class for specifying dataset behavior
Definition: vtkPointSet.h:43
represent and manipulate 3D points
Definition: vtkPoints.h:40
a vtkAbstractArray subclass for strings
abstract class to write data to file(s)
Definition: vtkWriter.h:43
@ points
Definition: vtkX3D.h:446
@ info
Definition: vtkX3D.h:376
@ port
Definition: vtkX3D.h:447
vtkGetStringMacro(ExtensionsString)
Returns a string listing all available extensions.
vtkTypeUInt64 vtkMTimeType
Definition: vtkType.h:248