Subversion Repositories gelsvn

Rev

Rev 512 | Rev 520 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 512 Rev 518
Line 29... Line 29...
29
 
29
 
30
        HalfEdgeWalker circulate_face_cw() const;
30
        HalfEdgeWalker circulate_face_cw() const;
31
        HalfEdgeWalker circulate_face_ccw() const;
31
        HalfEdgeWalker circulate_face_ccw() const;
32
 
32
 
33
        bool full_circle() const;
33
        bool full_circle() const;
34
        IndexType no_steps() const;
34
        int no_steps() const;
35
 
35
 
36
        VertexID vertex() const; 
36
        VertexID vertex() const; 
37
        FaceID face() const; 
37
        FaceID face() const; 
38
        HalfEdgeID halfedge() const;
38
        HalfEdgeID halfedge() const;
39
 
39
 
40
        HalfEdgeWalker operator =(const HalfEdgeWalker& w);
40
        HalfEdgeWalker operator =(const HalfEdgeWalker& w);
41
 
41
 
42
    private:
42
    private:
43
        const ConnectivityKernel* const ck;
43
        const ConnectivityKernel* ck;
44
        HalfEdgeID const last;
44
        HalfEdgeID last;
45
        HalfEdgeID current;
45
        HalfEdgeID current;
46
        IndexType counter;
46
        int counter;
47
 
47
 
48
        HalfEdgeWalker(const ConnectivityKernel& _ck, HalfEdgeID _current, HalfEdgeID _last, IndexType _counter);
48
        HalfEdgeWalker(const ConnectivityKernel& _ck, HalfEdgeID _current, HalfEdgeID _last, int _counter);
49
    };
49
    };
50
 
50
 
51
    inline HalfEdgeWalker::HalfEdgeWalker(const ConnectivityKernel& _ck, HalfEdgeID _current) 
51
    inline HalfEdgeWalker::HalfEdgeWalker(const ConnectivityKernel& _ck, HalfEdgeID _current) 
52
        : ck(&_ck), current(_current), last(_current), counter(0){}
52
        : ck(&_ck), current(_current), last(_current), counter(0){}
53
 
53
 
54
    inline HalfEdgeWalker::HalfEdgeWalker(const ConnectivityKernel& _ck, HalfEdgeID _current, HalfEdgeID _last, IndexType _counter)
54
    inline HalfEdgeWalker::HalfEdgeWalker(const ConnectivityKernel& _ck, HalfEdgeID _current, HalfEdgeID _last, int _counter)
55
        : ck(&_ck), current(_current), last(_last), counter(_counter){}
55
        : ck(&_ck), current(_current), last(_last), counter(_counter){}
56
 
56
 
57
    inline HalfEdgeWalker HalfEdgeWalker::next() const
57
    inline HalfEdgeWalker HalfEdgeWalker::next() const
58
    { return HalfEdgeWalker(*ck, ck->next(current), last, counter + 1); }
58
    { return HalfEdgeWalker(*ck, ck->next(current), last, counter + 1); }
59
 
59
 
Line 76... Line 76...
76
    { return HalfEdgeWalker(*ck, ck->prev(current), last, counter + 1); }
76
    { return HalfEdgeWalker(*ck, ck->prev(current), last, counter + 1); }
77
 
77
 
78
    inline bool HalfEdgeWalker::full_circle() const
78
    inline bool HalfEdgeWalker::full_circle() const
79
    { return (counter > 0 && current == last) ? true : false; }
79
    { return (counter > 0 && current == last) ? true : false; }
80
 
80
 
81
    inline IndexType HalfEdgeWalker::no_steps() const
81
    inline int HalfEdgeWalker::no_steps() const
82
    { return counter; }
82
    { return counter; }
83
 
83
 
84
    inline VertexID HalfEdgeWalker::vertex() const
84
    inline VertexID HalfEdgeWalker::vertex() const
85
    { return ck->vert(current); }
85
    { return ck->vert(current); }
86
 
86
 
Line 92... Line 92...
92
 
92
 
93
    inline HalfEdgeWalker HalfEdgeWalker::operator =(const HalfEdgeWalker& w)
93
    inline HalfEdgeWalker HalfEdgeWalker::operator =(const HalfEdgeWalker& w)
94
    { 
94
    { 
95
        current = w.current;
95
        current = w.current;
96
        counter = w.counter;
96
        counter = w.counter;
-
 
97
        ck = w.ck;
-
 
98
        last = w.last;
97
        return *this;
99
        return *this;
98
    }
100
    }
99
 
101
 
100
}
102
}
101
 
103