[Patchanim-commit] SF.net SVN: patchanim: [207] trunk/patchanim/src/com/mebigfatguy/patchanim
Brought to you by:
dbrosius
|
From: <dbr...@us...> - 2008-02-18 07:33:59
|
Revision: 207
http://patchanim.svn.sourceforge.net/patchanim/?rev=207&view=rev
Author: dbrosius
Date: 2008-02-17 23:34:04 -0800 (Sun, 17 Feb 2008)
Log Message:
-----------
rename oob roll to be cycle, and add roll (wave)
Modified Paths:
--------------
trunk/patchanim/src/com/mebigfatguy/patchanim/OutOfBoundsColor.java
trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchControlPanel.java
trunk/patchanim/src/com/mebigfatguy/patchanim/surface/PatchGenerator.java
Modified: trunk/patchanim/src/com/mebigfatguy/patchanim/OutOfBoundsColor.java
===================================================================
--- trunk/patchanim/src/com/mebigfatguy/patchanim/OutOfBoundsColor.java 2008-02-18 06:53:28 UTC (rev 206)
+++ trunk/patchanim/src/com/mebigfatguy/patchanim/OutOfBoundsColor.java 2008-02-18 07:34:04 UTC (rev 207)
@@ -26,11 +26,13 @@
* denotes how to render colors when they are outside the range of 0 - 255
* <ul>
* <li><b>Clip</b> Clip high values to 255, and low values to 0</li>
- * <li><b>Roll</b> Use the remainder from the color value and 255 to calculate a value</li>
+ * <li><b>Cycle</b> Uses the remainder of the color with 255</li>
+ * <li><b>Roll</b> Inverses the value at 255 and 0</li>
* </ul>
*/
public enum OutOfBoundsColor {
Clip,
+ Cycle,
Roll;
/**
Modified: trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchControlPanel.java
===================================================================
--- trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchControlPanel.java 2008-02-18 06:53:28 UTC (rev 206)
+++ trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchControlPanel.java 2008-02-18 07:34:04 UTC (rev 207)
@@ -113,6 +113,7 @@
{
outOfBoundsLabel = new JLabel(rb.getString(PatchAnimBundle.OUTOFBOUNDSCOLOR));
outOfBoundsColorCB = new JComboBox(new Object[] { OutOfBoundsColor.Clip,
+ OutOfBoundsColor.Cycle,
OutOfBoundsColor.Roll });
outOfBoundsColorCB.setToolTipText(rb.getString(PatchAnimBundle.OUTOFBOUNDSCOLOR_TT));
outOfBoundsLabel.setLabelFor(outOfBoundsColorCB);
Modified: trunk/patchanim/src/com/mebigfatguy/patchanim/surface/PatchGenerator.java
===================================================================
--- trunk/patchanim/src/com/mebigfatguy/patchanim/surface/PatchGenerator.java 2008-02-18 06:53:28 UTC (rev 206)
+++ trunk/patchanim/src/com/mebigfatguy/patchanim/surface/PatchGenerator.java 2008-02-18 07:34:04 UTC (rev 207)
@@ -78,19 +78,7 @@
}
for (int k = 0; k < 3; k++) {
- iValue[k] = (int)value[k];
- if (iValue[k] > 255) {
- if (oob == OutOfBoundsColor.Clip)
- iValue[k] = 255;
- else
- iValue[k] = iValue[k] & 0x00FF;
- }
- else if (iValue[k] < 0) {
- if (oob == OutOfBoundsColor.Clip)
- iValue[k] = 0;
- else
- iValue[k] = iValue[k] & 0x00FF;
- }
+ iValue[k] = adjustColor(value[k], oob);
}
db.setElem(pixel++, iValue[2]);
@@ -133,25 +121,40 @@
value += coords.getCoordinate(i, j).getColor() * uCoeffs[i] * vCoeffs[j];
}
}
-
- int iValue = (int)value;
- if (iValue > 255) {
- if (oob == OutOfBoundsColor.Clip)
- iValue = 255;
- else
- iValue = iValue & 0x00FF;
- }
- else if (iValue < 0) {
- if (oob == OutOfBoundsColor.Clip)
- iValue = 0;
- else
- iValue = iValue & 0x00FF;
- }
-
- db.setElem(pixel++, iValue);
+
+ db.setElem(pixel++, adjustColor(value, oob));
}
}
}
+
+ private static int adjustColor(double color, OutOfBoundsColor oob) {
+ int value = (int)color;
+ if ((value & 0xFFFFFF00) == 0)
+ return value;
+
+ switch (oob) {
+ case Clip:
+ if (value < 0)
+ value = 0;
+ else
+ value = 255;
+ break;
+
+ case Cycle:
+ value = value & 0x00FF;
+ break;
+
+ case Roll:
+ int period = value / 256;
+ if ((period & 0x01) != 0)
+ value = 255 - value & 0x00FF;
+ else
+ value = value & 0x00FF;
+ break;
+ }
+
+ return value;
+ }
public static BufferedImage buildImage(Color color, int sampleSizeX, int sampleSizeY) {
BufferedImage image = null;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|