1 #ifndef __CIFTI_PARCELS_MAP_H__ 2 #define __CIFTI_PARCELS_MAP_H__ 31 #include "CiftiMappingType.h" 33 #include "Common/Compact3DLookup.h" 34 #include "StructureEnum.h" 35 #include "VolumeSpace.h" 36 #include "Common/VoxelIJK.h" 49 std::map<StructureEnum::Enum, std::set<int64_t> > m_surfaceNodes;
50 std::set<VoxelIJK> m_voxelIndices;
52 bool operator==(
const Parcel& rhs)
const;
53 bool operator!=(
const Parcel& rhs)
const {
return !((*this) == rhs); }
54 bool approximateMatch(
const Parcel& rhs, AString* explanation = NULL)
const;
56 bool hasVolumeData()
const;
62 int64_t getIndexForVoxel(
const int64_t* ijk)
const;
63 int64_t getIndexForVoxel(
const int64_t& i,
const int64_t& j,
const int64_t& k)
const;
64 std::vector<StructureEnum::Enum> getParcelSurfaceStructures()
const;
65 const std::vector<Parcel>& getParcels()
const {
return m_parcels; }
67 CiftiParcelsMap() { m_haveVolumeSpace =
false; m_ignoreVolSpace =
false; }
70 void addParcel(
const Parcel& parcel);
74 MappingType getType()
const {
return PARCELS; }
75 int64_t getLength()
const {
return m_parcels.size(); }
77 bool approximateMatch(
const CiftiMappingType& rhs, AString* explanation = NULL)
const;
78 void readXML1(XmlReader& xml);
79 void readXML2(XmlReader& xml);
80 void writeXML1(XmlWriter& xml)
const;
81 void writeXML2(XmlWriter& xml)
const;
83 std::vector<Parcel> m_parcels;
85 bool m_haveVolumeSpace, m_ignoreVolSpace;
89 std::vector<int64_t> m_lookup;
92 std::map<StructureEnum::Enum, SurfaceInfo> m_surfInfo;
93 static Parcel readParcel1(XmlReader& xml);
94 static Parcel readParcel2(XmlReader& xml);
95 static std::vector<int64_t> readIndexArray(XmlReader& xml);
99 #endif //__CIFTI_PARCELS_MAP_H__ namespace for all CiftiLib functionality
Definition: CiftiBrainModelsMap.h:41
Definition: CiftiMappingType.h:38
Definition: CiftiParcelsMap.h:44
Definition: CiftiParcelsMap.h:47
Definition: VolumeSpace.h:41
Enum
Definition: StructureEnum.h:49