Public Member Functions | Protected Member Functions | Friends
morphio::Section Class Reference

#include <section.h>

Inheritance diagram for morphio::Section:
morphio::SectionBase< T >

Public Member Functions

depth_iterator depth_begin () const
 Depth first iterator.
 
depth_iterator depth_end () const
 
breadth_iterator breadth_begin () const
 Breadth first iterator.
 
breadth_iterator breadth_end () const
 
upstream_iterator upstream_begin () const
 Upstream iterator.
 
upstream_iterator upstream_end () const
 
range< const Point > points () const
 
range< const floatType > diameters () const
 
range< const floatType > perimeters () const
 
SectionType type () const
 Return the morphological type of this section (dendrite, axon, ...)
 
bool isHeterogeneous (bool downstream=true) const
 
bool hasSameShape (const Section &other) const noexcept
 Return true if the both sections have the same points, diameters and perimeters.
 
- Public Member Functions inherited from morphio::SectionBase< T >
bool operator== (const SectionBase &other) const noexcept
 
bool operator!= (const SectionBase &other) const noexcept
 
bool isRoot () const
 
parent () const
 
std::vector< T > children () const
 
uint32_t id () const noexcept
 
template<typename TProperty >
range< const typename TProperty::Type > get () const
 

Protected Member Functions

 Section (uint32_t id, const std::shared_ptr< Property::Properties > &properties)
 
- Protected Member Functions inherited from morphio::SectionBase< T >
 SectionBase (uint32_t id, const std::shared_ptr< Property::Properties > &properties)
 
template<typename Property >
range< const typename Property::Type > get () const
 

Friends

class mut::Section
 
class SectionBase< Section >
 
Section Morphology::section (uint32_t) const
 

Additional Inherited Members

- Protected Attributes inherited from morphio::SectionBase< T >
uint32_t id_ = 0
 
SectionRange range_
 
std::shared_ptr< Property::Propertiesproperties_
 

Detailed Description

A class to represent a morphological section.

A Section is an unbranched piece of a morphological skeleton. This class provides functions to query information about the sample points that compose the section and functions to obtain the parent and children sections.

The cell soma is also considered a section, but some functions have special meaning for it.

Sections cannot be directly created, but are returned by several morphio::Morphology and morphio::Section methods.

This is a lightweight object with STL container style thread safety. It is also safe to use a section after the morphology from where it comes has been deallocated. The morphological data will be kept as long as there is a Section referring to it.

Member Function Documentation

◆ diameters()

range<const floatType> morphio::Section::diameters ( ) const
inline

◆ isHeterogeneous()

bool morphio::Section::isHeterogeneous ( bool  downstream = true) const

Return true if the sections of the tree downstream (downstream = true) or upstream (donwstream = false) have the same section type as the current section.

◆ perimeters()

range<const floatType> morphio::Section::perimeters ( ) const
inline

◆ points()

range<const Point> morphio::Section::points ( ) const
inline