Actual Clipping Code
	float t;
        v0 = normalize(v0);
        v1 = normalize(v1);
        v2 = normalize(v2);
        if (flag == 4) {    // hither clipping yields 2 triangles
          float tx = v2.x, ty = v2.y, tz = v2.z, tw = v2.w;
          int trgb = rgb[2];

          t = (near - v1.w)/(tw - v1.w);
          Vertex3D.lerp(v2, v1, v2, t);
          rgb[2] = rgbLerp(rgb[1], trgb, t);
          v0 = normalize(v0);
          v1 = normalize(v1);
          v2 = normalize(v2);
          ClipYon(raster);

          v0 = normalize(v0);
          v1.x = v2.x; v1.y = v2.y; v1.z = v2.z; v1.w = v2.w; rgb[1] = rgb[2];
          v2.x = tx;  v2.y = ty;  v2.z = tz;  v2.w = tw;

          t = (near - v0.w)/(tw - v0.w);
          Vertex3D.lerp(v2, v0, v2, t);
          rgb[2] = rgbLerp(rgb[0], trgb, t);
          v0 = normalize(v0);
          v2 = normalize(v2);
          ClipYon(raster);
        } else
	
Lecture 12   Slide 18   6.837 Fall '00