[Patchanim-commit] SF.net SVN: patchanim: [104] trunk/patchanim/src/com/mebigfatguy/patchanim/ surf
Brought to you by:
dbrosius
From: <dbr...@us...> - 2008-02-08 05:37:13
|
Revision: 104 http://patchanim.svn.sourceforge.net/patchanim/?rev=104&view=rev Author: dbrosius Date: 2008-02-07 21:37:17 -0800 (Thu, 07 Feb 2008) Log Message: ----------- pull out buildCoefficients Modified Paths: -------------- trunk/patchanim/src/com/mebigfatguy/patchanim/surface/PatchGenerator.java Modified: trunk/patchanim/src/com/mebigfatguy/patchanim/surface/PatchGenerator.java =================================================================== --- trunk/patchanim/src/com/mebigfatguy/patchanim/surface/PatchGenerator.java 2008-02-08 05:29:50 UTC (rev 103) +++ trunk/patchanim/src/com/mebigfatguy/patchanim/surface/PatchGenerator.java 2008-02-08 05:37:17 UTC (rev 104) @@ -47,8 +47,8 @@ coords[1] = patch.getPatch(PatchColor.Green); coords[2] = patch.getPatch(PatchColor.Blue); - double u, u2, u3, oneMinusU, oneMinusU2, oneMinusU3; - double v, v2, v3, oneMinusV, oneMinusV2, oneMinusV3; + double u; + double v; double[] uCoeffs = new double[PatchCoords.ORDER]; double[] vCoeffs = new double[PatchCoords.ORDER]; double[] value = new double[3]; @@ -59,29 +59,11 @@ for (int iv = 0; iv < sampleSizeY; iv++) { v = (double)iv / (double)sampleSizeY; - v2 = v * v; - v3 = v2 * v; - oneMinusV = 1.0 - v; - oneMinusV2 = oneMinusV * oneMinusV; - oneMinusV3 = oneMinusV2 * oneMinusV; + buildCoefficients(v, vCoeffs); - vCoeffs[0] = oneMinusV3; - vCoeffs[1] = 3.0 * v * oneMinusV2; - vCoeffs[2] = 3.0 * v2 * oneMinusV; - vCoeffs[3] = v3; - for (int iu = 0; iu < sampleSizeX; iu++) { u = (double)iu / (double)sampleSizeX; - u2 = u * u; - u3 = u2 * u; - oneMinusU = 1.0 - u; - oneMinusU2 = oneMinusU * oneMinusU; - oneMinusU3 = oneMinusU2 * oneMinusU; - - uCoeffs[0] = oneMinusU3; - uCoeffs[1] = 3.0 * u * oneMinusU2; - uCoeffs[2] = 3.0 * u2 * oneMinusU; - uCoeffs[3] = u3; + buildCoefficients(u, uCoeffs); value[0] = value[1] = value[2] = 0.0; @@ -127,8 +109,8 @@ PatchCoords coords = patch.getPatch(color); - double u, u2, u3, oneMinusU, oneMinusU2, oneMinusU3; - double v, v2, v3, oneMinusV, oneMinusV2, oneMinusV3; + double u; + double v; double[] uCoeffs = new double[PatchCoords.ORDER]; double[] vCoeffs = new double[PatchCoords.ORDER]; @@ -137,29 +119,11 @@ for (int iv = 0; iv < sampleSizeY; iv++) { v = (double)iv / (double)sampleSizeY; - v2 = v * v; - v3 = v2 * v; - oneMinusV = 1.0 - v; - oneMinusV2 = oneMinusV * oneMinusV; - oneMinusV3 = oneMinusV2 * oneMinusV; + buildCoefficients(v, vCoeffs); - vCoeffs[0] = oneMinusV3; - vCoeffs[1] = 3.0 * v * oneMinusV2; - vCoeffs[2] = 3.0 * v2 * oneMinusV; - vCoeffs[3] = v3; - for (int iu = 0; iu < sampleSizeX; iu++) { u = (double)iu / (double)sampleSizeX; - u2 = u * u; - u3 = u2 * u; - oneMinusU = 1.0 - u; - oneMinusU2 = oneMinusU * oneMinusU; - oneMinusU3 = oneMinusU2 * oneMinusU; - - uCoeffs[0] = oneMinusU3; - uCoeffs[1] = 3.0 * u * oneMinusU2; - uCoeffs[2] = 3.0 * u2 * oneMinusU; - uCoeffs[3] = u3; + buildCoefficients(u, uCoeffs); double value = 0.0; for (int i = 0; i < PatchCoords.ORDER; i++) { @@ -212,5 +176,18 @@ graphics.fillRect(0, 0, sampleSizeX, sampleSizeY); return image; } + + private static void buildCoefficients(double t, double[] coeffs) { + double t2 = t * t; + double t3 = t2 * t; + double oneMinusT = 1.0 - t; + double oneMinusT2 = oneMinusT * oneMinusT; + double oneMinusT3 = oneMinusT2 * oneMinusT; + + coeffs[0] = oneMinusT3; + coeffs[1] = 3.0 * t * oneMinusT2; + coeffs[2] = 3.0 * t2 * oneMinusT; + coeffs[3] = t3; + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |