[Patchanim-commit] SF.net SVN: patchanim:[276] trunk/patchanim/src/com/mebigfatguy/patchanim/ gui/J
Brought to you by:
dbrosius
From: <dbr...@us...> - 2009-01-02 05:44:02
|
Revision: 276 http://patchanim.svn.sourceforge.net/patchanim/?rev=276&view=rev Author: dbrosius Date: 2009-01-02 05:43:59 +0000 (Fri, 02 Jan 2009) Log Message: ----------- add shape gradients Modified Paths: -------------- trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchSamplePanel.java Modified: trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchSamplePanel.java =================================================================== --- trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchSamplePanel.java 2009-01-02 02:01:40 UTC (rev 275) +++ trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchSamplePanel.java 2009-01-02 05:43:59 UTC (rev 276) @@ -312,6 +312,25 @@ radialGradient.add(inward); menu.add(radialGradient); + JMenu shapeGradient = new JMenu(rb.getString(PatchAnimBundle.SHAPEGRADIENT)); + JMenuItem outwardSh = new JMenuItem(rb.getString(PatchAnimBundle.OUTWARD)); + outwardSh.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent ae) { + shapeGradient(BlendDirection.Outward); + } + }); + + JMenuItem inwardSh = new JMenuItem(rb.getString(PatchAnimBundle.INWARD)); + inwardSh.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent ae) { + shapeGradient(BlendDirection.Inward); + } + }); + + shapeGradient.add(outwardSh); + shapeGradient.add(inwardSh); + menu.add(shapeGradient); + JMenu shift = new JMenu(rb.getString(PatchAnimBundle.SHIFT)); JMenuItem left = new JMenuItem(rb.getString(PatchAnimBundle.LEFT)); left.addActionListener(new ActionListener() { @@ -515,7 +534,36 @@ } mediator.setNewActivePatch(patch); } + + private void shapeGradient(BlendDirection direction) { + PatchPanelMediator mediator = PatchPanelMediator.getMediator(); + CombinedPatch patch = mediator.getActivePatch(); + PatchCoords coords = patch.getPatch(color); + int order = coords.getOrder(); + double color = 0.0; + double midOrder = (order - 1) / 2.0; + for (int i = 0; i < order; i++) { + for (int j = 0; j < order; j++) { + Coordinate c = coords.getCoordinate(i, j); + double outside = Math.max(Math.abs(i - midOrder), Math.abs(j - midOrder)); + switch (direction) { + case Outward: + color = (int)(255.0 * (outside / midOrder)); + break; + + case Inward: + color = (int)(255.0 - (255.0 * (outside / midOrder))); + break; + } + + c.setColor(color); + coords.setCoordinate(i, j, c); + } + } + mediator.setNewActivePatch(patch); + } + private void shiftPatch(ShiftDirection dir) { PatchPanelMediator mediator = PatchPanelMediator.getMediator(); CombinedPatch patch = mediator.getActivePatch(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |