7 #include <morphio/properties.h>
8 #include <morphio/section.h>
9 #include <morphio/types.h>
11 #include <morphio/section_iterators.hpp>
21 class Section:
public std::enable_shared_from_this<Section>
29 inline uint32_t
id()
const noexcept;
41 inline std::vector<Point>&
points() noexcept;
42 inline const std::vector<Point>&
points()
const noexcept;
48 inline std::vector<morphio::floatType>&
diameters() noexcept;
49 inline const std::vector<morphio::floatType>&
diameters()
const noexcept;
55 inline std::vector<morphio::floatType>&
perimeters() noexcept;
56 inline const std::vector<morphio::floatType>&
perimeters()
const noexcept;
76 const std::shared_ptr<Section>&
parent()
const;
97 const std::vector<std::shared_ptr<Section>>&
children()
const;
108 std::shared_ptr<Section> appendSection(
const morphio::Section&,
bool recursive =
false);
110 std::shared_ptr<Section> appendSection(std::shared_ptr<Section> original_section,
111 bool recursive =
false);
113 std::shared_ptr<Section> appendSection(
127 void throwIfNoOwningMorphology()
const;
132 Morphology* getOwningMorphologyOrThrow()
const;
134 void emitWarning(std::shared_ptr<WarningMessage>);
142 std::ostream& operator<<(std::ostream&,
const std::shared_ptr<Section>&);
149 return section_type_;
153 return section_type_;
157 return point_properties_._points;
161 return point_properties_._points;
165 return point_properties_._diameters;
169 return point_properties_._diameters;
173 return point_properties_._perimeters;
177 return point_properties_._perimeters;
181 return point_properties_;
185 return point_properties_;