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;
79 std::vector<Connection::Type> _connectivity;
82 std::vector<typename T::Type>& get_mut() noexcept;
85 const std::vector<typename T::Type>& get()
const noexcept;
87 const std::map<uint32_t, std::vector<uint32_t>>& predecessors()
const noexcept {
88 return _sectionLevel._predecessors;
90 const std::map<uint32_t, std::vector<uint32_t>>& successors()
const noexcept {
91 return _sectionLevel._successors;
95 std::ostream& operator<<(std::ostream& os,
const Properties& properties);
96 std::ostream& operator<<(std::ostream& os,
const VascPointLevel& pointLevel);
98 #define INSTANTIATE_TEMPLATE_GET(T, M) \
100 inline std::vector<T::Type>& Properties::get_mut<T>() noexcept { \
104 inline const std::vector<T::Type>& Properties::get<T>() const noexcept { \
108 INSTANTIATE_TEMPLATE_GET(
VascSection, _sectionLevel._sections)
109 INSTANTIATE_TEMPLATE_GET(
Point, _pointLevel._points)
110 INSTANTIATE_TEMPLATE_GET(
Connection, _connectivity)
111 INSTANTIATE_TEMPLATE_GET(
SectionType, _sectionLevel._sectionTypes)
112 INSTANTIATE_TEMPLATE_GET(
Diameter, _pointLevel._diameters)
114 #undef INSTANTIATE_TEMPLATE_GET