void FiberPushCutter::pushCutter2(Fiber& f) { std::list<Triangle>::iterator it,it_end; // for looping over found triangles Interval* i; std::list<Triangle>* tris; CLPoint cl; if ( x_direction ) { cl.x=0; cl.y=f.p1.y; cl.z=f.p1.z; } else if (y_direction ) { cl.x=f.p1.x; cl.y=0; cl.z=f.p1.z; } tris = root->search_cutter_overlap(cutter, &cl); it_end = tris->end(); for ( it=tris->begin() ; it!=it_end ; ++it) { i = new Interval(); cutter->pushCutter(f,*i,*it); f.addInterval(*i); ++nCalls; delete i; } delete( tris ); }
void FiberPushCutter::pushCutter1(Fiber& f) { nCalls = 0; BOOST_FOREACH( const Triangle& t, surf->tris) {// test against all triangles in s Interval i; cutter->pushCutter(f,i,t); f.addInterval(i); ++nCalls; } }