The Parametric Pseudo-Manifold (PPS) Library 1.0
halfedge_attribute.cpp
Go to the documentation of this file.
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.