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