[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.
|