dri: Rework planar image interface
[mesa.git] / src / glu / sgi / libnurbs / internals / arctess.cc
index 0559c35029e4fe7f71ad4ae29e3f3e1f64c4e884..29e7cf4c0028d0d77598cb771e514dfb541e14b0 100644 (file)
@@ -35,8 +35,6 @@
 /*
  * arctessellator.c++
  *
- * $Date: 2001/03/17 00:25:40 $ $Revision: 1.1 $
- * $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/internals/arctess.cc,v 1.1 2001/03/17 00:25:40 brianp Exp $
  */
 
 #include "glimports.h"
@@ -59,7 +57,7 @@
  */
 
 ArcTessellator::ArcTessellator( TrimVertexPool& t, Pool& p ) 
-       : trimvertexpool(t), pwlarcpool(p)
+       : pwlarcpool(p), trimvertexpool(t)
 {
 }
 
@@ -247,8 +245,8 @@ ArcTessellator::pwl( Arc *arc, REAL s1, REAL s2, REAL t1, REAL t2, REAL rate )
 
 /*    if(rate <= 0.06) rate = 0.06;*/
 
-    int snsteps = 1 + (int) (abs(s2 - s1) / rate );
-    int tnsteps = 1 + (int) (abs(t2 - t1) / rate );
+    int snsteps = 1 + (int) (glu_abs(s2 - s1) / rate );
+    int tnsteps = 1 + (int) (glu_abs(t2 - t1) / rate );
     int nsteps = max(1,max( snsteps, tnsteps ));
 
     REAL sstepsize = (s2 - s1) / (REAL) nsteps;
@@ -337,7 +335,7 @@ ArcTessellator::tessellateNonlinear( Arc *arc, REAL geo_stepsize, REAL arc_steps
       REAL min_u, min_v, max_u,max_v;
       min_u = max_u = bezierArc->cpts[0];
       min_v = max_v = bezierArc->cpts[1];
-      for(i=1, j=2; i<bezierArc->order; i++, j+= bezierArc->stride)
+      for(i=1, j=bezierArc->stride; i<bezierArc->order; i++, j+= bezierArc->stride)
        {
          if(bezierArc->cpts[j] < min_u)
            min_u = bezierArc->cpts[j];
@@ -380,7 +378,9 @@ ArcTessellator::tessellateNonlinear( Arc *arc, REAL geo_stepsize, REAL arc_steps
 
        /* strength reduction on p = dp * step would introduce error */
        int step;
+#ifndef NOELIMINATION
        int ocanremove = 0;
+#endif
        register long order =  bezierArc->order;
        for( step=1, ++vert; step<nsteps; step++, vert++ ) {
            register REAL p = dp * step;
@@ -395,8 +395,8 @@ ArcTessellator::tessellateNonlinear( Arc *arc, REAL geo_stepsize, REAL arc_steps
             vert->param[0] = u/w;
            vert->param[1] = v/w;
 #ifndef NOELIMINATION
-           REAL ds = abs(vert[0].param[0] - vert[-1].param[0]);
-           REAL dt = abs(vert[0].param[1] - vert[-1].param[1]);
+           REAL ds = glu_abs(vert[0].param[0] - vert[-1].param[0]);
+           REAL dt = glu_abs(vert[0].param[1] - vert[-1].param[1]);
            int canremove = (ds<geo_stepsize && dt<geo_stepsize) ? 1 : 0;
            REAL ods=0.0, odt=0.0;
 
@@ -441,7 +441,9 @@ ArcTessellator::tessellateNonlinear( Arc *arc, REAL geo_stepsize, REAL arc_steps
 
        /* strength reduction on p = dp * step would introduce error */
        int step;
+#ifndef NOELIMINATION
        int ocanremove = 0;
+#endif
        register long order =  bezierArc->order;
        for( step=1, ++vert; step<nsteps; step++, vert++ ) {
            register REAL p = dp * step;
@@ -454,8 +456,8 @@ ArcTessellator::tessellateNonlinear( Arc *arc, REAL geo_stepsize, REAL arc_steps
             vert->param[0] = u;
            vert->param[1] = v;
 #ifndef NOELIMINATION
-           REAL ds = abs(vert[0].param[0] - vert[-1].param[0]);
-           REAL dt = abs(vert[0].param[1] - vert[-1].param[1]);
+           REAL ds = glu_abs(vert[0].param[0] - vert[-1].param[0]);
+           REAL dt = glu_abs(vert[0].param[1] - vert[-1].param[1]);
            int canremove = (ds<geo_stepsize && dt<geo_stepsize) ? 1 : 0;
            REAL ods=0.0, odt=0.0;