From 617526ac6def9ff08eac27cf36490439133d1640 Mon Sep 17 00:00:00 2001 From: tomaz Date: Mon, 30 Aug 2004 14:47:35 +0000 Subject: [PATCH 1/1] Renamed QuadraticSpline code in curves.c to QuadraticBSpline. git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@4408 d7cf8633-e32d-0410-b094-e92efae38249 --- curves.c | 32 ++++++++++++++++---------------- curves.h | 14 +++++++------- model_brush.c | 18 +++++++++--------- 3 files changed, 32 insertions(+), 32 deletions(-) diff --git a/curves.c b/curves.c index 5713197a..3fdb26c5 100644 --- a/curves.c +++ b/curves.c @@ -10,7 +10,7 @@ #include "zone.h" #if 0 -void QuadraticSplineSubdivideFloat(int inpoints, int components, const float *in, int instride, float *out, int outstride) +void QuadraticBSplineSubdivideFloat(int inpoints, int components, const float *in, int instride, float *out, int outstride) { int s; // the input (control points) is read as a stream of points, and buffered @@ -59,7 +59,7 @@ void QuadraticSplineSubdivideFloat(int inpoints, int components, const float *in { // more components can be handled, but slowly, by calling self multiple times... for (c = 0;c < components;c++, in++, out++) - QuadraticSplineSubdivideFloat(inpoints, 1, in, instride, out, outstride); + QuadraticBSplineSubdivideFloat(inpoints, 1, in, instride, out, outstride); return; } for (c = 0;c < components;c++) @@ -104,7 +104,7 @@ void QuadraticSplineSubdivideFloat(int inpoints, int components, const float *in // note: out must have enough room! // (see finalwidth/finalheight calcs below) -void QuadraticSplinePatchSubdivideFloatBuffer(int cpwidth, int cpheight, int xlevel, int ylevel, int components, const float *in, float *out) +void QuadraticBSplinePatchSubdivideFloatBuffer(int cpwidth, int cpheight, int xlevel, int ylevel, int components, const float *in, float *out) { int finalwidth, finalheight, xstep, ystep, x, y, c; float *o; @@ -126,13 +126,13 @@ void QuadraticSplinePatchSubdivideFloatBuffer(int cpwidth, int cpheight, int xle if (xlevel == 1 && ylevel == 0) { for (y = 0;y < finalheight;y++) - QuadraticSplineSubdivideFloat(cpwidth, components, in + y * cpwidth * components, sizeof(float) * components, out + y * finalwidth * components, sizeof(float) * components); + QuadraticBSplineSubdivideFloat(cpwidth, components, in + y * cpwidth * components, sizeof(float) * components, out + y * finalwidth * components, sizeof(float) * components); return; } if (xlevel == 0 && ylevel == 1) { for (x = 0;x < finalwidth;x++) - QuadraticSplineSubdivideFloat(cpheight, components, in + x * components, sizeof(float) * cpwidth * components, out + x * components, sizeof(float) * finalwidth * components); + QuadraticBSplineSubdivideFloat(cpheight, components, in + x * components, sizeof(float) * cpwidth * components, out + x * components, sizeof(float) * finalwidth * components); return; } @@ -149,20 +149,20 @@ void QuadraticSplinePatchSubdivideFloatBuffer(int cpwidth, int cpheight, int xle { xstep >>= 1; for (y = 0;y < finalheight;y += ystep) - QuadraticSplineSubdivideFloat(cpwidth, components, out + y * finalwidth * components, sizeof(float) * xstep * 2 * components, out + y * finalwidth * components, sizeof(float) * xstep * components); + QuadraticBSplineSubdivideFloat(cpwidth, components, out + y * finalwidth * components, sizeof(float) * xstep * 2 * components, out + y * finalwidth * components, sizeof(float) * xstep * components); cpwidth = (cpwidth - 1) * 2 + 1; } if (ystep > 1) { ystep >>= 1; for (x = 0;x < finalwidth;x += xstep) - QuadraticSplineSubdivideFloat(cpheight, components, out + x * components, sizeof(float) * ystep * 2 * finalwidth * components, out + x * components, sizeof(float) * ystep * finalwidth * components); + QuadraticBSplineSubdivideFloat(cpheight, components, out + x * components, sizeof(float) * ystep * 2 * finalwidth * components, out + x * components, sizeof(float) * ystep * finalwidth * components); cpheight = (cpheight - 1) * 2 + 1; } } } #elif 1 -void QuadraticSplinePatchSubdivideFloatBuffer(int cpwidth, int cpheight, int xlevel, int ylevel, int components, const float *in, float *out) +void QuadraticBSplinePatchSubdivideFloatBuffer(int cpwidth, int cpheight, int xlevel, int ylevel, int components, const float *in, float *out) { int c, x, y, outwidth, outheight, halfstep, xstep, ystep; float prev, curr, next; @@ -288,7 +288,7 @@ void QuadraticSplinePatchSubdivideFloatBuffer(int cpwidth, int cpheight, int xle } #else // unfinished code -void QuadraticSplinePatchSubdivideFloatBuffer(int cpwidth, int cpheight, int xlevel, int ylevel, int components, const float *in, float *out) +void QuadraticBSplinePatchSubdivideFloatBuffer(int cpwidth, int cpheight, int xlevel, int ylevel, int components, const float *in, float *out) { int outwidth, outheight; outwidth = ((cpwidth - 1) << xlevel) + 1; @@ -321,7 +321,7 @@ void QuadraticSplinePatchSubdivideFloatBuffer(int cpwidth, int cpheight, int xle 0.00000 0.12500 0.21875 0.31250 0.37500 0.43750 0.46875 0.50000 0.50000 0.50000 0.46875 0.43750 0.37500 0.31250 0.21875 0.12500 0.00000 deviation: not available */ -float QuadraticSplinePatchLargestDeviationOnX(int cpwidth, int cpheight, int components, const float *in) +float QuadraticBSplinePatchLargestDeviationOnX(int cpwidth, int cpheight, int components, const float *in) { int c, x, y; const float *cp; @@ -344,7 +344,7 @@ float QuadraticSplinePatchLargestDeviationOnX(int cpwidth, int cpheight, int com return (float)sqrt(bestsquareddeviation); } -float QuadraticSplinePatchLargestDeviationOnY(int cpwidth, int cpheight, int components, const float *in) +float QuadraticBSplinePatchLargestDeviationOnY(int cpwidth, int cpheight, int components, const float *in) { int c, x, y; const float *cp; @@ -367,7 +367,7 @@ float QuadraticSplinePatchLargestDeviationOnY(int cpwidth, int cpheight, int com return (float)sqrt(bestsquareddeviation); } -int QuadraticSplinePatchSubdivisionLevelForDeviation(float deviation, float level1tolerance, int levellimit) +int QuadraticBSplinePatchSubdivisionLevelForDeviation(float deviation, float level1tolerance, int levellimit) { int level; // count the automatic flatten step which reduces deviation by 50% @@ -378,14 +378,14 @@ int QuadraticSplinePatchSubdivisionLevelForDeviation(float deviation, float leve return level; } -int QuadraticSplinePatchSubdivisionLevelOnX(int cpwidth, int cpheight, int components, const float *in, float level1tolerance, int levellimit) +int QuadraticBSplinePatchSubdivisionLevelOnX(int cpwidth, int cpheight, int components, const float *in, float level1tolerance, int levellimit) { - return QuadraticSplinePatchSubdivisionLevelForDeviation(QuadraticSplinePatchLargestDeviationOnX(cpwidth, cpheight, components, in), level1tolerance, levellimit); + return QuadraticBSplinePatchSubdivisionLevelForDeviation(QuadraticBSplinePatchLargestDeviationOnX(cpwidth, cpheight, components, in), level1tolerance, levellimit); } -int QuadraticSplinePatchSubdivisionLevelOnY(int cpwidth, int cpheight, int components, const float *in, float level1tolerance, int levellimit) +int QuadraticBSplinePatchSubdivisionLevelOnY(int cpwidth, int cpheight, int components, const float *in, float level1tolerance, int levellimit) { - return QuadraticSplinePatchSubdivisionLevelForDeviation(QuadraticSplinePatchLargestDeviationOnY(cpwidth, cpheight, components, in), level1tolerance, levellimit); + return QuadraticBSplinePatchSubdivisionLevelForDeviation(QuadraticBSplinePatchLargestDeviationOnY(cpwidth, cpheight, components, in), level1tolerance, levellimit); } /* diff --git a/curves.h b/curves.h index 0b461037..8924c4a5 100644 --- a/curves.h +++ b/curves.h @@ -2,13 +2,13 @@ #ifndef CURVES_H #define CURVES_H -void QuadraticSplineSubdivideFloat(int inpoints, int components, const float *in, int instride, float *out, int outstride); -void QuadraticSplinePatchSubdivideFloatBuffer(int cpwidth, int cpheight, int xlevel, int ylevel, int components, const float *in, float *out); -float QuadraticSplinePatchLargestDeviationOnX(int cpwidth, int cpheight, int components, const float *in); -float QuadraticSplinePatchLargestDeviationOnY(int cpwidth, int cpheight, int components, const float *in); -int QuadraticSplinePatchSubdivisionLevelForDeviation(float deviation, float level1tolerance, int levellimit); -int QuadraticSplinePatchSubdivisionLevelOnX(int cpwidth, int cpheight, int components, const float *in, float level1tolerance, int levellimit); -int QuadraticSplinePatchSubdivisionLevelOnY(int cpwidth, int cpheight, int components, const float *in, float level1tolerance, int levellimit); +void QuadraticBSplineSubdivideFloat(int inpoints, int components, const float *in, int instride, float *out, int outstride); +void QuadraticBSplinePatchSubdivideFloatBuffer(int cpwidth, int cpheight, int xlevel, int ylevel, int components, const float *in, float *out); +float QuadraticBSplinePatchLargestDeviationOnX(int cpwidth, int cpheight, int components, const float *in); +float QuadraticBSplinePatchLargestDeviationOnY(int cpwidth, int cpheight, int components, const float *in); +int QuadraticBSplinePatchSubdivisionLevelForDeviation(float deviation, float level1tolerance, int levellimit); +int QuadraticBSplinePatchSubdivisionLevelOnX(int cpwidth, int cpheight, int components, const float *in, float level1tolerance, int levellimit); +int QuadraticBSplinePatchSubdivisionLevelOnY(int cpwidth, int cpheight, int components, const float *in, float level1tolerance, int levellimit); #endif diff --git a/model_brush.c b/model_brush.c index c0a7345e..cc011c4c 100644 --- a/model_brush.c +++ b/model_brush.c @@ -4142,8 +4142,8 @@ static void Mod_Q3BSP_LoadFaces(lump_t *l) //originalneighbor3i = out->data_neighbor3i; */ // convert patch to Q3FACETYPE_MESH - xlevel = QuadraticSplinePatchSubdivisionLevelOnX(patchsize[0], patchsize[1], 3, originalvertex3f, r_subdivisions_tolerance.value, 10); - ylevel = QuadraticSplinePatchSubdivisionLevelOnY(patchsize[0], patchsize[1], 3, originalvertex3f, r_subdivisions_tolerance.value, 10); + xlevel = QuadraticBSplinePatchSubdivisionLevelOnX(patchsize[0], patchsize[1], 3, originalvertex3f, r_subdivisions_tolerance.value, 10); + ylevel = QuadraticBSplinePatchSubdivisionLevelOnY(patchsize[0], patchsize[1], 3, originalvertex3f, r_subdivisions_tolerance.value, 10); // bound to user settings xlevel = bound(r_subdivisions_minlevel.integer, xlevel, r_subdivisions_maxlevel.integer); ylevel = bound(r_subdivisions_minlevel.integer, ylevel, r_subdivisions_maxlevel.integer); @@ -4178,10 +4178,10 @@ static void Mod_Q3BSP_LoadFaces(lump_t *l) out->num_triangles = finaltriangles; // generate geometry // (note: normals are skipped because they get recalculated) - QuadraticSplinePatchSubdivideFloatBuffer(patchsize[0], patchsize[1], xlevel, ylevel, 3, originalvertex3f, out->data_vertex3f); - QuadraticSplinePatchSubdivideFloatBuffer(patchsize[0], patchsize[1], xlevel, ylevel, 2, originaltexcoordtexture2f, out->data_texcoordtexture2f); - QuadraticSplinePatchSubdivideFloatBuffer(patchsize[0], patchsize[1], xlevel, ylevel, 2, originaltexcoordlightmap2f, out->data_texcoordlightmap2f); - QuadraticSplinePatchSubdivideFloatBuffer(patchsize[0], patchsize[1], xlevel, ylevel, 4, originalcolor4f, out->data_color4f); + QuadraticBSplinePatchSubdivideFloatBuffer(patchsize[0], patchsize[1], xlevel, ylevel, 3, originalvertex3f, out->data_vertex3f); + QuadraticBSplinePatchSubdivideFloatBuffer(patchsize[0], patchsize[1], xlevel, ylevel, 2, originaltexcoordtexture2f, out->data_texcoordtexture2f); + QuadraticBSplinePatchSubdivideFloatBuffer(patchsize[0], patchsize[1], xlevel, ylevel, 2, originaltexcoordlightmap2f, out->data_texcoordlightmap2f); + QuadraticBSplinePatchSubdivideFloatBuffer(patchsize[0], patchsize[1], xlevel, ylevel, 4, originalcolor4f, out->data_color4f); // generate elements e = out->data_element3i; for (y = 0;y < finalheight - 1;y++) @@ -4211,8 +4211,8 @@ static void Mod_Q3BSP_LoadFaces(lump_t *l) // q3map does not put in collision brushes for curves... ugh // build the lower quality collision geometry out->collisions = true; - xlevel = QuadraticSplinePatchSubdivisionLevelOnX(patchsize[0], patchsize[1], 3, originalvertex3f, r_subdivisions_collision_tolerance.value, 10); - ylevel = QuadraticSplinePatchSubdivisionLevelOnY(patchsize[0], patchsize[1], 3, originalvertex3f, r_subdivisions_collision_tolerance.value, 10); + xlevel = QuadraticBSplinePatchSubdivisionLevelOnX(patchsize[0], patchsize[1], 3, originalvertex3f, r_subdivisions_collision_tolerance.value, 10); + ylevel = QuadraticBSplinePatchSubdivisionLevelOnY(patchsize[0], patchsize[1], 3, originalvertex3f, r_subdivisions_collision_tolerance.value, 10); // bound to user settings xlevel = bound(r_subdivisions_collision_minlevel.integer, xlevel, r_subdivisions_collision_maxlevel.integer); ylevel = bound(r_subdivisions_collision_minlevel.integer, ylevel, r_subdivisions_collision_maxlevel.integer); @@ -4235,7 +4235,7 @@ static void Mod_Q3BSP_LoadFaces(lump_t *l) out->data_collisionelement3i = Mem_Alloc(loadmodel->mempool, sizeof(int[3]) * finaltriangles); out->num_collisionvertices = finalvertices; out->num_collisiontriangles = finaltriangles; - QuadraticSplinePatchSubdivideFloatBuffer(patchsize[0], patchsize[1], xlevel, ylevel, 3, originalvertex3f, out->data_collisionvertex3f); + QuadraticBSplinePatchSubdivideFloatBuffer(patchsize[0], patchsize[1], xlevel, ylevel, 3, originalvertex3f, out->data_collisionvertex3f); // generate elements e = out->data_collisionelement3i; for (y = 0;y < finalheight - 1;y++) -- 2.39.2