5 #include <morphio/properties.h>
6 #include <morphio/section.h>
7 #include <morphio/types.h>
9 #include <morphio/section_iterators.hpp>
19 class Section:
public std::enable_shared_from_this<Section>
27 inline uint32_t
id()
const noexcept;
39 inline std::vector<Point>&
points() noexcept;
40 inline const std::vector<Point>&
points()
const noexcept;
46 inline std::vector<morphio::floatType>&
diameters() noexcept;
47 inline const std::vector<morphio::floatType>&
diameters()
const noexcept;
53 inline std::vector<morphio::floatType>&
perimeters() noexcept;
54 inline const std::vector<morphio::floatType>&
perimeters()
const noexcept;
74 const std::shared_ptr<Section>&
parent()
const;
95 const std::vector<std::shared_ptr<Section>>&
children()
const;
106 std::shared_ptr<Section> appendSection(
const morphio::Section&,
bool recursive =
false);
108 std::shared_ptr<Section> appendSection(std::shared_ptr<Section> original_section,
109 bool recursive =
false);
111 std::shared_ptr<Section> appendSection(
125 void throwIfNoOwningMorphology()
const;
130 Morphology* getOwningMorphologyOrThrow()
const;
138 std::ostream& operator<<(std::ostream&,
const std::shared_ptr<Section>&);
145 return section_type_;
149 return section_type_;
153 return point_properties_._points;
157 return point_properties_._points;
161 return point_properties_._diameters;
165 return point_properties_._diameters;
169 return point_properties_._perimeters;
173 return point_properties_._perimeters;
177 return point_properties_;
181 return point_properties_;