19#ifndef itkFreeSurferAsciiMeshIO_h
20#define itkFreeSurferAsciiMeshIO_h
21#include "ITKIOMeshFreeSurferExport.h"
116 template <
typename T>
118 WritePoints(T * buffer, std::ofstream & outputFile, T label = T{})
120 outputFile.precision(6);
122 for (
SizeValueType ii = 0; ii < this->m_NumberOfPoints; ++ii)
124 for (
unsigned int jj = 0; jj < this->m_PointDimension; ++jj)
126 outputFile << std::fixed << buffer[index++] <<
" ";
128 outputFile << label <<
'\n';
133 template <
typename T>
135 WriteCells(T * buffer, std::ofstream & outputFile, T label = T{})
137 constexpr unsigned int numberOfCellPoints{ 3 };
138 SizeValueType index = 0;
140 const auto data = make_unique_for_overwrite<T[]>(this->m_NumberOfCells * numberOfCellPoints);
142 ReadCellsBuffer(buffer, data.get());
144 for (SizeValueType ii = 0; ii < this->m_NumberOfCells; ++ii)
146 for (
unsigned int jj = 0; jj < numberOfCellPoints; ++jj)
148 outputFile << data[index++] <<
" ";
150 outputFile << label <<
'\n';
155 template <
typename TInput,
typename TOutput>
163 for (
unsigned int jj = 0; jj < 3; ++jj)
168 output[ii * 3 + jj] =
static_cast<TOutput
>(input[5 * ii + jj + 2]);
void ReadCells(void *buffer) override
void WriteMeshInformation() override
SmartPointer< const Self > ConstPointer
FreeSurferAsciiMeshIO Self
SmartPointer< Self > Pointer
void ReadPoints(void *buffer) override
bool CanReadFile(const char *fileName) override
void WritePoints(T *buffer, std::ofstream &outputFile, T label=T{})
void ReadPointData(void *buffer) override
void WriteCells(void *buffer) override
std::ifstream m_InputFile
void ReadCellsBuffer(TInput *input, TOutput *output)
~FreeSurferAsciiMeshIO() override
bool CanWriteFile(const char *fileName) override
void PrintSelf(std::ostream &os, Indent indent) const override
void WritePoints(void *buffer) override
Superclass::SizeValueType SizeValueType
void WriteCellData(void *buffer) override
void WriteCells(T *buffer, std::ofstream &outputFile, T label=T{})
void WritePointData(void *buffer) override
void ReadCellData(void *buffer) override
void ReadMeshInformation() override
Control indentation during Print() invocation.
IdentifierType SizeValueType
Implements transparent reference counting.
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
unsigned long SizeValueType