VTK  9.3.20240419
vtkMNITagPointReader.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-FileCopyrightText: Copyright (c) 2006 Atamai, Inc.
3 // SPDX-License-Identifier: BSD-3-Clause
24 #ifndef vtkMNITagPointReader_h
25 #define vtkMNITagPointReader_h
26 
27 #include "vtkIOMINCModule.h" // For export macro
28 #include "vtkPolyDataAlgorithm.h"
29 
30 VTK_ABI_NAMESPACE_BEGIN
31 class vtkPolyData;
32 class vtkPoints;
33 class vtkStringArray;
34 class vtkDoubleArray;
35 class vtkIntArray;
36 
37 class VTKIOMINC_EXPORT vtkMNITagPointReader : public vtkPolyDataAlgorithm
38 {
39 public:
41 
43  void PrintSelf(ostream& os, vtkIndent indent) override;
44 
46 
52 
56  virtual const char* GetFileExtensions() { return ".tag"; }
57 
61  virtual const char* GetDescriptiveName() { return "MNI tags"; }
62 
66  virtual int CanReadFile(VTK_FILEPATH const char* name);
67 
74  virtual int GetNumberOfVolumes();
75 
81  virtual vtkPoints* GetPoints(int port);
82  virtual vtkPoints* GetPoints() { return this->GetPoints(0); }
83 
90 
97 
104 
111 
115  virtual const char* GetComments();
116 
117 protected:
120 
121  char* FileName;
123 
125  char* Comments;
126 
127  int ReadLine(istream& infile, std::string& linetext, std::string::iterator& pos);
128  int ReadLineAfterComments(istream& infile, std::string& linetext, std::string::iterator& pos);
129  int SkipWhitespace(istream& infile, std::string& linetext, std::string::iterator& pos, int nl);
131  istream& infile, std::string& linetext, std::string::iterator& pos, std::string& identifier);
133  istream& infile, std::string& linetext, std::string::iterator& pos, std::string& data);
135  istream& infile, std::string& linetext, std::string::iterator& pos, int* values, int count);
137  istream& infile, std::string& linetext, std::string::iterator& pos, double* values, int count);
138 
139  virtual int ReadFile(vtkPolyData* output1, vtkPolyData* output2);
140 
142  vtkInformation* request, vtkInformationVector** inInfo, vtkInformationVector* outInfo) override;
143 
144 private:
146  void operator=(const vtkMNITagPointReader&) = delete;
147 };
148 
149 VTK_ABI_NAMESPACE_END
150 #endif
dynamic, self-adjusting array of double
a simple class to control print indentation
Definition: vtkIndent.h:108
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
dynamic, self-adjusting array of int
Definition: vtkIntArray.h:144
A reader for MNI tag files.
~vtkMNITagPointReader() override
int ParseLeftHandSide(istream &infile, std::string &linetext, std::string::iterator &pos, std::string &identifier)
int SkipWhitespace(istream &infile, std::string &linetext, std::string::iterator &pos, int nl)
virtual vtkDoubleArray * GetWeights()
Get the weights.
int ParseFloatValues(istream &infile, std::string &linetext, std::string::iterator &pos, double *values, int count)
int ParseIntValues(istream &infile, std::string &linetext, std::string::iterator &pos, int *values, int count)
virtual vtkIntArray * GetPatientIds()
Get the patient ids.
int ParseStringValue(istream &infile, std::string &linetext, std::string::iterator &pos, std::string &data)
virtual const char * GetFileExtensions()
Get the extension for this file format.
virtual vtkPoints * GetPoints(int port)
Get the points.
virtual int GetNumberOfVolumes()
Get the number of volumes specified by the file, which will be equal to one or two.
vtkGetFilePathMacro(FileName)
Set the file name.
virtual int CanReadFile(VTK_FILEPATH const char *name)
Test whether the specified file can be read.
virtual const char * GetComments()
Get any comments that are included in the file.
static vtkMNITagPointReader * New()
int RequestData(vtkInformation *request, vtkInformationVector **inInfo, vtkInformationVector *outInfo) override
This is called by the superclass.
vtkSetFilePathMacro(FileName)
Set the file name.
int ReadLine(istream &infile, std::string &linetext, std::string::iterator &pos)
virtual int ReadFile(vtkPolyData *output1, vtkPolyData *output2)
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
virtual vtkStringArray * GetLabelText()
Get the labels.
virtual vtkIntArray * GetStructureIds()
Get the structure ids.
virtual const char * GetDescriptiveName()
Get the name of this file format.
virtual vtkPoints * GetPoints()
int ReadLineAfterComments(istream &infile, std::string &linetext, std::string::iterator &pos)
represent and manipulate 3D points
Definition: vtkPoints.h:139
Superclass for algorithms that produce only polydata as output.
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:181
a vtkAbstractArray subclass for strings
@ port
Definition: vtkX3D.h:447
@ name
Definition: vtkX3D.h:219
@ data
Definition: vtkX3D.h:315
@ string
Definition: vtkX3D.h:490
#define VTK_FILEPATH