22 : start(root->get_root_loop()->get_fixpoint_strand()), curr(start)
31 if (curr == start) curr =
NULp;
36 operator bool()
const {
return curr; }
46 SEC_helix_strand& strand =
static_cast<SEC_helix_strand&
>(*part);
48 ?
static_cast<SEC_base*
>(strand.get_origin_loop())
49 : static_cast<SEC_base*>(strand.get_helix());
60 if (do_loop) do_loop =
false;
68 while (part && static_cast<SEC_helix_strand&>(*part).pointsToRoot());
69 do_loop = (steps == 1);
75 operator bool()
const {
return part; }
81 SEC_helix_strand *start;
82 SEC_helix_strand *curr;
91 SEC_segment *seg = curr->get_next_segment();
94 curr = seg->get_next_strand();
95 if (curr == start) curr =
NULp;
103 operator bool()
const {
return curr; }
113 SEC_segment&
operator*() {
return *strand_iter()->get_next_segment(); }
114 SEC_segment*
operator->() {
return strand_iter()->get_next_segment(); }
122 operator bool()
const {
return strand_iter(); }
135 const SEC_helix_strand&
operator*() {
return *strand_iter(); }
136 const SEC_helix_strand*
operator->() {
return strand_iter().operator->(); }
138 operator bool()
const {
return bool(strand_iter()); }
142 #error SEC_iter.hxx included twice
143 #endif // SEC_ITER_HXX
SEC_base_part_iterator(SEC_root *root)
SEC_base_iterator(SEC_root *root)
SEC_segment * operator->()
SEC_helix_strand * get_previous_strand()
SEC_base_iterator & operator++()
SEC_helix_strand & operator*()
const SEC_helix_strand & operator*()
SEC_base_part * operator->()
SEC_segment_iterator & operator++()
SEC_base_part & operator*()
SEC_segment & operator*()
SEC_segment_iterator(SEC_loop *loop)
const SEC_helix_strand * operator->()
SEC_base_part_iterator & operator++()
SEC_strand_const_iterator & operator++()
SEC_strand_iterator(SEC_loop *loop)
SEC_strand_iterator & operator++()
SEC_strand_const_iterator(const SEC_loop *loop)
SEC_helix_strand * operator->()