00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include "euler.h"
00019 #include "print.h"
00020
00021
00022 namespace euler
00023 {
00024
00025 void solid_t :: kffmh(face_t* f1, face_t* f2)
00026 {
00027 assert( ! f1->l->nxt && ! f2->l->nxt && f1->l->total_vertices() == f2->l->total_vertices() );
00028 edge_t *e1 = f1->l->e, *e2 = f2->l->e, *e20 = e2;
00029 do
00030 {
00031 for(edge_t *e = e2->o; e != e2->nxt; e = e->pre->o)
00032 {
00033 e->v = e1->v;
00034 }
00035 }
00036 while( (e1 = e1->nxt, e2 = e2->pre) != e20 );
00037
00038 e1 = f1->l->e, e2 = f2->l->e, e20 = e2;
00039 do
00040 {
00041 e1->o->o = e2->o;
00042 e2->o->o = e1->o;
00043 }
00044 while( (e1 = e1->nxt, e2 = e2->pre) != e20 );
00045
00046 del_face(f1);
00047 del_face(f2);
00048 }
00049
00050
00051
00052
00053 }