40 #include "glimports.h"
43 #include "subdivider.h"
44 #include "renderhints.h"
47 #include "curvelist.h"
49 #include "nurbsconsts.h"
57 Subdivider::drawCurves(
void )
61 qlist->getRange( from, to, bpts );
66 for(
int i=bpts.start; i<bpts.end-1; i++ ) {
71 qlist->downloadAll( &pta, &ptb, backend );
74 samplingSplit( curvelist, renderhints.maxsubdivisions );
86 Subdivider::samplingSplit(
Curvelist& curvelist,
int subdivisions )
88 if( curvelist.cullCheck() == CULL_TRIVIAL_REJECT )
return;
90 curvelist.getstepsize();
92 if( curvelist.needsSamplingSubdivision() && (subdivisions > 0) ) {
93 REAL mid = ( curvelist.range[0] + curvelist.range[1] ) * 0.5;
95 samplingSplit( lowerlist, subdivisions-1 );
96 samplingSplit( curvelist, subdivisions-1 );
98 long nu = 1 + ((long) (curvelist.range[2] / curvelist.stepsize));
99 backend.curvgrid( curvelist.range[0], curvelist.range[1], nu );
100 backend.curvmesh( 0, nu );