mito_section.h
1 #pragma once
2 
3 #include <cstdint> // uint32_t
4 #include <memory> // std::shared_ptr
5 
6 #include <morphio/mitochondria.h>
7 #include <morphio/properties.h>
8 #include <morphio/section_base.h>
9 #include <morphio/types.h>
10 
11 namespace morphio {
12 using mito_upstream_iterator = upstream_iterator_t<MitoSection>;
13 using mito_breadth_iterator = morphio::breadth_iterator_t<MitoSection, Mitochondria>;
15 
17 class MitoSection: public SectionBase<MitoSection>
18 {
21 
22  public:
27  mito_depth_iterator depth_end() const;
28 
33  mito_breadth_iterator breadth_end() const;
34 
39  mito_upstream_iterator upstream_end() const;
40 
44  range<const uint32_t> neuriteSectionIds() const;
45 
49  range<const floatType> diameters() const;
50 
59  range<const floatType> relativePathLengths() const;
60 
64  bool hasSameShape(const MitoSection& other) const noexcept;
65 
66  protected:
67  MitoSection(uint32_t id, const std::shared_ptr<Property::Properties>& morphology)
68  : SectionBase(id, morphology) {}
69  friend MitoSection Mitochondria::section(uint32_t) const;
70  friend class SectionBase<MitoSection>;
71  friend class mut::MitoSection;
72 };
73 } // namespace morphio
morphio::depth_iterator_t
Definition: section_iterators.hpp:81
morphio::MitoSection
Definition: mito_section.h:17
morphio::Property::MitoDiameter
Definition: properties.h:53
morphio::MitoSection::upstream_begin
mito_upstream_iterator upstream_begin() const
morphio::upstream_iterator_t
Definition: section_iterators.hpp:109
morphio::MitoSection::diameters
range< const floatType > diameters() const
morphio::Property::MitoSection
Definition: properties.h:28
morphio::MitoSection::relativePathLengths
range< const floatType > relativePathLengths() const
morphio::MitoSection::breadth_begin
mito_breadth_iterator breadth_begin() const
morphio::breadth_iterator_t
Definition: section_iterators.hpp:53
morphio::MitoSection::neuriteSectionIds
range< const uint32_t > neuriteSectionIds() const
morphio::MitoSection::hasSameShape
bool hasSameShape(const MitoSection &other) const noexcept
morphio::mut::MitoSection
Definition: mito_section.h:13
morphio::MitoSection::depth_begin
mito_depth_iterator depth_begin() const
morphio::SectionBase
Definition: section_base.h:25