1#ifndef __NIFTI_HEADER_H__
2#define __NIFTI_HEADER_H__
31#include "Common/BinaryFile.h"
36#include "boost/shared_ptr.hpp"
45 std::vector<char> m_bytes;
50 std::vector<boost::shared_ptr<NiftiExtension> > m_extensions;
54 void write(
BinaryFile& outFile,
const int& version = 1,
const bool& swapEndian =
false);
55 bool canWriteVersion(
const int& version)
const;
56 bool isSwapped()
const {
return m_isSwapped; }
57 int version()
const {
return m_version; }
59 std::vector<int64_t> getDimensions()
const;
60 std::vector<std::vector<float> > getSForm()
const;
61 double getTimeStep()
const;
62 int64_t getDataOffset()
const {
return m_header.
vox_offset; }
63 int16_t getDataType()
const {
return m_header.
datatype; }
64 int32_t getIntentCode()
const {
return m_header.
intent_code; }
65 const char* getIntentName()
const {
return m_header.
intent_name; }
66 const char* getDescription()
const {
return m_header.
descrip; }
67 bool getDataScaling(
double& mult,
double& offset)
const;
68 int getNumComponents()
const;
69 AString toString()
const;
71 void setDimensions(
const std::vector<int64_t>& dimsIn);
72 void setSForm(
const std::vector<std::vector<float> > &sForm);
73 void setTimeStep(
const double& seconds);
74 void setIntent(
const int32_t& code,
const char name[16]);
75 void setDescription(
const char descrip[80]);
76 void setDataType(
const int16_t& type);
77 void clearDataScaling();
78 void setDataScaling(
const double& mult,
const double& offset);
79 void setDataTypeAndScaleRange(
const int16_t& type,
const double& minval,
const double& maxval);
81 std::vector<std::vector<float> >
getFSLSpace()
const;
84 bool operator!=(
const NiftiHeader& rhs)
const {
return !((*this) == rhs); }
89 Quirks() { no_extender =
false; }
98 Quirks setupFrom(
const nifti_1_header& header,
const AString& filename);
99 Quirks setupFrom(
const nifti_2_header& header,
const AString& filename);
100 static int typeToNumBits(
const int64_t& type);
101 int64_t computeVoxOffset(
const int& version)
const;
Definition: BinaryFile.h:41
namespace for all CiftiLib functionality
Definition: CiftiBrainModelsMap.h:42
Definition: NiftiHeader.h:43