00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #include "print.h"
00018 #include <cassert>
00019
00020
00021 namespace euler
00022 {
00023 void solid_t :: kef(edge_t* e)
00024 {
00025 assert( e->l->f->l == e->l );
00026 loop_t *l1 = e->o->l, *l2 = e->l;
00027
00028 add_face_to(e->l->f, e->o->l->f);
00029
00030 edge_t *temp = e;
00031 do
00032 {
00033 temp->l = l1;
00034 }
00035 while ( (temp=temp->nxt) != e );
00036
00037
00038 e->o->pre->nxt = e->nxt;
00039 e->nxt->pre = e->o->pre;
00040
00041 e->pre->nxt = e->o->nxt;
00042 e->o->nxt->pre = e->pre;
00043
00044 if(l1->e == e->o)
00045 l1->e = e->o->nxt;
00046
00047 l2->e = 0;
00048 l1->f->del_loop(l2);
00049
00050 delete e;
00051 delete e->o;
00052
00053 solid_t::assert_consistent_B_rep();
00054 }
00055
00056
00057
00058
00059
00060 }