11 #include <morphio/types.h>
14 namespace vasculature {
20 using Type =
unsigned int;
24 using Type = morphio::Point;
32 using Type = floatType;
40 using Type = std::array<unsigned int, 2>;
45 std::vector<Point::Type> _points;
46 std::vector<Diameter::Type> _diameters;
50 const std::vector<Diameter::Type>& diameters);
58 std::vector<morphio::floatType> leakiness;
63 std::vector<VascSection::Type> _sections;
64 std::vector<SectionType::Type> _sectionTypes;
65 std::map<uint32_t, std::vector<uint32_t>> _predecessors;
66 std::map<uint32_t, std::vector<uint32_t>> _successors;
78 std::vector<Connection::Type> _connectivity;
81 std::vector<typename T::Type>& get_mut() noexcept;
84 const std::vector<typename T::Type>& get()
const noexcept;
86 const std::map<uint32_t, std::vector<uint32_t>>& predecessors()
const noexcept {
87 return _sectionLevel._predecessors;
89 const std::map<uint32_t, std::vector<uint32_t>>& successors()
const noexcept {
90 return _sectionLevel._successors;
94 std::ostream& operator<<(std::ostream& os,
const Properties& properties);
95 std::ostream& operator<<(std::ostream& os,
const VascPointLevel& pointLevel);
97 #define INSTANTIATE_TEMPLATE_GET(T, M) \
99 inline std::vector<T::Type>& Properties::get_mut<T>() noexcept { \
103 inline const std::vector<T::Type>& Properties::get<T>() const noexcept { \
107 INSTANTIATE_TEMPLATE_GET(
VascSection, _sectionLevel._sections)
108 INSTANTIATE_TEMPLATE_GET(
Point, _pointLevel._points)
109 INSTANTIATE_TEMPLATE_GET(
Connection, _connectivity)
110 INSTANTIATE_TEMPLATE_GET(
SectionType, _sectionLevel._sectionTypes)
111 INSTANTIATE_TEMPLATE_GET(
Diameter, _pointLevel._diameters)
113 #undef INSTANTIATE_TEMPLATE_GET