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; }
69 void setVolumeSpace(
const VolumeSpace& space);
70 void addParcel(
const Parcel& parcel);
73 CiftiMappingType* clone()
const {
return new CiftiParcelsMap(*
this); }
74 MappingType getType()
const {
return PARCELS; }
75 int64_t getLength()
const {
return m_parcels.size(); }
76 bool operator==(
const CiftiMappingType& rhs)
const;
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;
84 VolumeSpace m_volSpace;
85 bool m_haveVolumeSpace, m_ignoreVolSpace;
89 std::vector<int64_t> m_lookup;
91 Compact3DLookup<int64_t> m_volLookup;
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);
Definition: CiftiMappingType.h:39
Definition: CiftiParcelsMap.h:45
Enum
Definition: StructureEnum.h:49
Definition: VolumeSpace.h:42
namespace for all CiftiLib functionality
Definition: CiftiBrainModelsMap.h:42
Definition: CiftiParcelsMap.h:48