The Parametric Pseudo-Manifold (PPS) Library 1.0
|
00001 00027 #include "halfedge_attribute.h" // HalfedgeAttribute 00028 00029 #include <cassert> // assert 00030 00031 00046 namespace ppsfrompnt { 00047 00048 00057 unsigned 00058 HalfedgeAttribute::compute_pps_id() const 00059 { 00060 // 00061 // This attribute must be owned by some half-edge. 00062 // 00063 assert( get_owner() != 0 ) ; 00064 00065 unsigned i = 0 ; 00066 Halfedge* h = get_owner()->get_origin()->get_halfedge() ; 00067 00068 while ( h != get_owner() ) { 00069 i++ ; 00070 h = h->get_prev()->get_mate() ; 00071 } 00072 00073 return i ; 00074 } 00075 00076 00085 unsigned 00086 HalfedgeAttribute::compute_origin_vertex_degree() const 00087 { 00088 // 00089 // This attribute must be owned by some half-edge. 00090 // 00091 assert( get_owner() != 0 ) ; 00092 00093 unsigned i = 0 ; 00094 Halfedge* h = get_owner() ; 00095 do { 00096 ++i ; 00097 00098 h = h->get_prev()->get_mate() ; 00099 } 00100 while ( h != get_owner() ) ; 00101 00102 return i ; 00103 } 00104 00105 } 00106 //end of group class.