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);