00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #include "euler.h"
00016 #include "print.h"
00017 #include <cmath>
00018
00019
00020 namespace euler
00021 {
00022 void solid_t :: tsweep_face(face_t* f, vector_t const& disp)
00023 {
00024 for(loop_t *l = f->l; l; l=l->nxt)
00025 {
00026 edge_t *e = l->e, *e0 = e;
00027 while( (e = l->mev(e, e->v->p + disp)->pre->pre) != e0 );
00028
00029 e0 = e = e->pre;
00030 edge_t
00031 *nxt_e = e->nxt->nxt->nxt,
00032 *end_e = mef(e, nxt_e)->e->o;
00033 while( (e=nxt_e) != end_e )
00034 {
00035 nxt_e = e->nxt->nxt->nxt;
00036 mef(e, nxt_e);
00037 }
00038 }
00039 }
00040
00041
00042 }