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