mekr.cpp

Go to the documentation of this file.
00001 /**
00002  *\file         mekr.cpp
00003  *
00004  *\brief        make edge and kill ring (inner loop)
00005  *
00006  *\image        html mekr.jpg
00007  *
00008  *
00009  *\author       Xianming Chen\n
00010  *              Computer Science Department\n
00011  *              University of Utah
00012  *
00013  *\date         16 Aug 2006\n
00014  *              Copyright (c) 2006, University of Utah
00015  */
00016 
00017 
00018 #include <cassert>
00019 #include "print.h"
00020 
00021 
00022 namespace euler
00023 {
00024   edge_t* face_t :: mekr(edge_t * e1, edge_t * e2)
00025   {
00026     assert(e1->l != e2->l && e2->l != l);
00027     loop_t *lp1 = e1->l, *lp2 = e2->l;
00028     edge_t
00029       *ne2 = lp1->mev(e1, e2->v), 
00030       *ne1 = ne2->o;
00031     
00032     if(e2->nxt != e2)
00033     {
00034       ne1->nxt = e2;
00035       ne2->pre = e2->pre;
00036 
00037       e2->pre->nxt = ne2;
00038       e2->pre = ne1;
00039 
00040       for(edge_t *e = e2; e!= ne2; e=e->nxt)
00041         e->l = lp1;
00042     }
00043     lp2->e = 0;
00044     del_loop(lp2);
00045 
00046     solid_t::assert_consistent_B_rep();
00047 
00048     return ne1;
00049   }
00050 
00051 
00052 
00053 
00054 }//end namespace euler

Generated on Wed Aug 30 16:27:58 2006 for euler by  doxygen 1.4.6