patchanim-commit Mailing List for patchanim (Page 12)
Brought to you by:
dbrosius
You can subscribe to this list here.
2008 |
Jan
(80) |
Feb
(158) |
Mar
|
Apr
|
May
(3) |
Jun
(7) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(26) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2009 |
Jan
(6) |
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(9) |
Aug
(1) |
Sep
(2) |
Oct
|
Nov
(2) |
Dec
(3) |
2010 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
(4) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2012 |
Jan
(2) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <dbr...@us...> - 2008-01-27 01:44:19
|
Revision: 30 http://patchanim.svn.sourceforge.net/patchanim/?rev=30&view=rev Author: dbrosius Date: 2008-01-26 17:44:22 -0800 (Sat, 26 Jan 2008) Log Message: ----------- Switch to double document from integer document Added Paths: ----------- trunk/patchanim/src/com/mebigfatguy/patchanim/gui/DoubleDocument.java Added: trunk/patchanim/src/com/mebigfatguy/patchanim/gui/DoubleDocument.java =================================================================== --- trunk/patchanim/src/com/mebigfatguy/patchanim/gui/DoubleDocument.java (rev 0) +++ trunk/patchanim/src/com/mebigfatguy/patchanim/gui/DoubleDocument.java 2008-01-27 01:44:22 UTC (rev 30) @@ -0,0 +1,46 @@ +/* + * patchanim - A bezier surface patch color blend gif builder + * Copyright (C) 2008 Dave Brosius + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ +package com.mebigfatguy.patchanim.gui; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import javax.swing.text.AttributeSet; +import javax.swing.text.BadLocationException; +import javax.swing.text.PlainDocument; + + +public class DoubleDocument extends PlainDocument +{ + private static final long serialVersionUID = 2390424803444456428L; + + private static final Pattern DOUBLEPATTERN = Pattern.compile("-?[0-9]*(\\.[0-9]*)?"); + + @Override + public void insertString(int offs, String str, AttributeSet a) throws BadLocationException { + String start = getText(0, offs); + String end = getText(offs, this.getLength() - offs); + String newIntegerString = (start + str + end).trim(); + + Matcher m = DOUBLEPATTERN.matcher(newIntegerString); + if (m.matches()) { + super.insertString(offs, str, a); + } + } +} \ No newline at end of file Property changes on: trunk/patchanim/src/com/mebigfatguy/patchanim/gui/DoubleDocument.java ___________________________________________________________________ Name: svn:mime-type + text/plain Name: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dbr...@us...> - 2008-01-27 01:43:20
|
Revision: 29 http://patchanim.svn.sourceforge.net/patchanim/?rev=29&view=rev Author: dbrosius Date: 2008-01-26 17:43:26 -0800 (Sat, 26 Jan 2008) Log Message: ----------- The test frame for animations Added Paths: ----------- trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JTestFrame.java Added: trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JTestFrame.java =================================================================== --- trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JTestFrame.java (rev 0) +++ trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JTestFrame.java 2008-01-27 01:43:26 UTC (rev 29) @@ -0,0 +1,140 @@ +package com.mebigfatguy.patchanim.gui; + +import java.awt.BorderLayout; +import java.awt.Dimension; +import java.awt.Graphics; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.awt.image.BufferedImage; +import java.lang.reflect.InvocationTargetException; +import java.util.List; + +import javax.swing.JFrame; +import javax.swing.JPanel; +import javax.swing.SwingUtilities; + +import com.mebigfatguy.patchanim.PatchAnimDocument; +import com.mebigfatguy.patchanim.surface.CombinedPatch; +import com.mebigfatguy.patchanim.surface.PatchGenerator; + +public class JTestFrame extends JFrame { + + private Thread animThread = null; + private TestPanel testPanel = null; + private int tweenCount; + private int width; + private int height; + private List<CombinedPatch> patches; + private BufferedImage image; + + public JTestFrame() { + PatchPanelMediator mediator = PatchPanelMediator.getMediator(); + PatchAnimDocument document = mediator.getDocument(); + tweenCount = document.getTweenCount(); + width = document.getWidth(); + height = document.getHeight(); + patches = document.getPatches(); + + initComponents(); + initListeners(); + } + + public synchronized void beginAnimation() { + if (animThread != null) + return; + image = PatchGenerator.buildImage(null, width, height); + + animThread = new Thread(new Runnable() { + public void run() { + try { + PatchGenerator.recalcCombinedImage(patches.get(0), image); + while (!Thread.interrupted()) { + testPanel.redraw(); + int lastPatch = patches.size() - 1; + long lastRedraw = System.currentTimeMillis(); + for (int p = 0; p < lastPatch; p++) { + CombinedPatch startPatch = patches.get(p); + CombinedPatch endPatch = patches.get(p+1); + for (int t = 0; t < tweenCount; t++) { + CombinedPatch tweenPatch = CombinedPatch.tween(startPatch, endPatch, (double)t / (double)tweenCount); + PatchGenerator.recalcCombinedImage(tweenPatch, image); + long now = System.currentTimeMillis(); + long sleepTime = 100 - (now - lastRedraw); + if (sleepTime > 0) + Thread.sleep(sleepTime); + testPanel.redraw(); + lastRedraw = now; + } + } + } + } catch (InterruptedException ie) { + //OK + } + } + }); + animThread.start(); + + } + + public synchronized void endAnimation() { + if (animThread == null) + return; + + try { + animThread.interrupt(); + animThread.join(); + } catch (InterruptedException ie) { + //OK + } finally { + animThread = null; + } + } + + private void initComponents() { + testPanel = new TestPanel(); + setLayout(new BorderLayout(4, 4)); + add(testPanel, BorderLayout.CENTER); + pack(); + } + + private void initListeners() { + addWindowListener(new WindowAdapter() { + @Override + public void windowClosing(WindowEvent we) { + endAnimation(); + dispose(); + } + }); + } + + class TestPanel extends JPanel { + public TestPanel() { + Dimension d = new Dimension(width, height); + setMinimumSize(d); + setMaximumSize(d); + setPreferredSize(d); + setSize(width, height); + } + + public void redraw() throws InterruptedException { + try { + SwingUtilities.invokeAndWait(new Runnable() { + public void run() { + invalidate(); + revalidate(); + repaint(); + } + }); + } catch (InvocationTargetException ite) { + InterruptedException ie = new InterruptedException("Error rendering test"); + ie.initCause(ite); + throw ie; + } + } + + @Override + public void paintComponent(Graphics g) { + g.drawImage(image, 0, 0, width, height, 0, 0, width, height, null); + } + } +} Property changes on: trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JTestFrame.java ___________________________________________________________________ Name: svn:mime-type + text/plain Name: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dbr...@us...> - 2008-01-27 01:42:12
|
Revision: 28 http://patchanim.svn.sourceforge.net/patchanim/?rev=28&view=rev Author: dbrosius Date: 2008-01-26 17:42:18 -0800 (Sat, 26 Jan 2008) Log Message: ----------- patch animation is starting to work. Shift coordinates to be doubles. Modified Paths: -------------- trunk/patchanim/src/com/mebigfatguy/patchanim/PatchAnimDocument.java trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JColorControlPatchPanel.java trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchAnimFrame.java trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchAnimPanel.java trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchControlPanel.java trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchListPanel.java trunk/patchanim/src/com/mebigfatguy/patchanim/gui/PatchPanelMediator.java trunk/patchanim/src/com/mebigfatguy/patchanim/surface/CombinedPatch.java trunk/patchanim/src/com/mebigfatguy/patchanim/surface/Coordinate.java trunk/patchanim/src/com/mebigfatguy/patchanim/surface/PatchCoords.java Modified: trunk/patchanim/src/com/mebigfatguy/patchanim/PatchAnimDocument.java =================================================================== --- trunk/patchanim/src/com/mebigfatguy/patchanim/PatchAnimDocument.java 2008-01-27 00:24:02 UTC (rev 27) +++ trunk/patchanim/src/com/mebigfatguy/patchanim/PatchAnimDocument.java 2008-01-27 01:42:18 UTC (rev 28) @@ -36,10 +36,10 @@ public PatchAnimDocument() { patches = new ArrayList<CombinedPatch>(); - CombinedPatch patch = new CombinedPatch(); + CombinedPatch patch = new CombinedPatch(true); patches.add(patch); - width = 100; - height = 100; + width = 200; + height = 200; animationType = AnimationType.Wave; outOfBoundsColor = OutOfBoundsColor.Clip; tweenCount = 10; Modified: trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JColorControlPatchPanel.java =================================================================== --- trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JColorControlPatchPanel.java 2008-01-27 00:24:02 UTC (rev 27) +++ trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JColorControlPatchPanel.java 2008-01-27 01:42:18 UTC (rev 28) @@ -66,7 +66,7 @@ sample.setDecorator(this); colorLabel = new JLabel(rb.getString(PatchAnimBundle.COLOR)); - colorField = new JTextField(new IntegerDocument(), "", 4); + colorField = new JTextField(new DoubleDocument(), "", 4); add(Box.createVerticalGlue()); JPanel p = new JPanel(); @@ -109,11 +109,20 @@ SwingUtilities.invokeLater(new Runnable() { public void run() { Coordinate coord = coords.getCoordinate(selectedXPt, selectedYPt); - if (!fireEvents) - colorField.getDocument().removeDocumentListener(docListener); - colorField.setText(String.valueOf(coord.getColor())); - if (!fireEvents) - colorField.getDocument().addDocumentListener(docListener); + double newColor = coord.getColor(); + double oldColor; + try { + oldColor = Double.parseDouble(colorField.getText()); + } catch (NumberFormatException nfe) { + oldColor = 0.0; + } + if (newColor != oldColor) { + if (!fireEvents) + colorField.getDocument().removeDocumentListener(docListener); + colorField.setText(String.valueOf(coord.getColor())); + if (!fireEvents) + colorField.getDocument().addDocumentListener(docListener); + } } }); } @@ -127,9 +136,11 @@ for (int v = 0; v < 4; v++) { Coordinate c = coords.getCoordinate(u, v); if ((selectedXPt == u) && (selectedYPt == v)) { - g.fillOval(((c.getX() * (bounds.width - 5)) / 100) + bounds.x, ((c.getY() * (bounds.height - 5)) / 100) + bounds.y, 5, 5); + g.fillOval((int)(((c.getX() * (bounds.width - 5)) / 100.0) + bounds.x), + (int)(((c.getY() * (bounds.height - 5)) / 100.0) + bounds.y), 5, 5); } else { - g.drawOval(((c.getX() * (bounds.width - 5)) / 100) + bounds.x, ((c.getY() * (bounds.height - 5)) / 100) + bounds.y, 5, 5); + g.drawOval((int)(((c.getX() * (bounds.width - 5)) / 100.0) + bounds.x), + (int)(((c.getY() * (bounds.height - 5)) / 100.0) + bounds.y), 5, 5); } } } @@ -163,13 +174,13 @@ } private void processChange() { - int value; - String color = colorField.getText().trim(); - if ((color.length() == 0) || ("-".equals(color))) - return; - else - value = Integer.parseInt(colorField.getText()); - + double value; + + try { + value = Double.parseDouble(colorField.getText()); + } catch (NumberFormatException nfe) { + value = 0.0; + } Coordinate coord = coords.getCoordinate(selectedXPt, selectedYPt); coord.setColor(value); coords.setCoordinate(selectedXPt, selectedYPt, coord); Modified: trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchAnimFrame.java =================================================================== --- trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchAnimFrame.java 2008-01-27 00:24:02 UTC (rev 27) +++ trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchAnimFrame.java 2008-01-27 01:42:18 UTC (rev 28) @@ -31,7 +31,6 @@ import com.mebigfatguy.patchanim.PatchAnimDocument; import com.mebigfatguy.patchanim.main.PatchAnimBundle; -import com.mebigfatguy.patchanim.main.PatchMain; public class JPatchAnimFrame extends JFrame { Modified: trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchAnimPanel.java =================================================================== --- trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchAnimPanel.java 2008-01-27 00:24:02 UTC (rev 27) +++ trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchAnimPanel.java 2008-01-27 01:42:18 UTC (rev 28) @@ -19,19 +19,13 @@ package com.mebigfatguy.patchanim.gui; import java.awt.BorderLayout; -import java.awt.Color; -import java.awt.Dimension; import javax.swing.BorderFactory; import javax.swing.Box; import javax.swing.BoxLayout; -import javax.swing.JList; import javax.swing.JPanel; -import javax.swing.JScrollPane; -import javax.swing.SwingUtilities; import com.mebigfatguy.patchanim.PatchColor; -import com.mebigfatguy.patchanim.surface.CombinedPatch; public class JPatchAnimPanel extends JPanel { Modified: trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchControlPanel.java =================================================================== --- trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchControlPanel.java 2008-01-27 00:24:02 UTC (rev 27) +++ trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchControlPanel.java 2008-01-27 01:42:18 UTC (rev 28) @@ -19,6 +19,8 @@ package com.mebigfatguy.patchanim.gui; import java.awt.Dimension; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; import java.util.ResourceBundle; import javax.swing.BorderFactory; @@ -143,5 +145,14 @@ }); } }); + + testButton.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent ae) { + JTestFrame tf = new JTestFrame(); + tf.setLocationRelativeTo(null); + tf.setVisible(true); + tf.beginAnimation(); + } + }); } } Modified: trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchListPanel.java =================================================================== --- trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchListPanel.java 2008-01-27 00:24:02 UTC (rev 27) +++ trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchListPanel.java 2008-01-27 01:42:18 UTC (rev 28) @@ -96,7 +96,7 @@ if (selIndex < 0) selIndex = patchListModel.getSize() - 1; - CombinedPatch newPatch = new CombinedPatch(); + CombinedPatch newPatch = new CombinedPatch(true); patchListModel.add(selIndex, newPatch); PatchPanelMediator mediator = PatchPanelMediator.getMediator(); mediator.setNewActivePatch(newPatch); Modified: trunk/patchanim/src/com/mebigfatguy/patchanim/gui/PatchPanelMediator.java =================================================================== --- trunk/patchanim/src/com/mebigfatguy/patchanim/gui/PatchPanelMediator.java 2008-01-27 00:24:02 UTC (rev 27) +++ trunk/patchanim/src/com/mebigfatguy/patchanim/gui/PatchPanelMediator.java 2008-01-27 01:42:18 UTC (rev 28) @@ -50,6 +50,10 @@ } } + public PatchAnimDocument getDocument() { + return document; + } + public void addActivePatchChangedListener(ActivePatchChangedListener apcl) { apclisteners.add(apcl); } Modified: trunk/patchanim/src/com/mebigfatguy/patchanim/surface/CombinedPatch.java =================================================================== --- trunk/patchanim/src/com/mebigfatguy/patchanim/surface/CombinedPatch.java 2008-01-27 00:24:02 UTC (rev 27) +++ trunk/patchanim/src/com/mebigfatguy/patchanim/surface/CombinedPatch.java 2008-01-27 01:42:18 UTC (rev 28) @@ -20,7 +20,6 @@ import java.io.Serializable; import java.util.EnumMap; -import java.util.Random; import com.mebigfatguy.patchanim.PatchColor; @@ -29,10 +28,16 @@ private EnumMap<PatchColor, PatchCoords> patches = new EnumMap<PatchColor, PatchCoords>(PatchColor.class); - public CombinedPatch() { - patches.put(PatchColor.Red, PatchCoords.buildRandomPatch()); - patches.put(PatchColor.Green, PatchCoords.buildRandomPatch()); - patches.put(PatchColor.Blue, PatchCoords.buildRandomPatch()); + public CombinedPatch(boolean init) { + if (init) { + patches.put(PatchColor.Red, PatchCoords.buildRandomPatch()); + patches.put(PatchColor.Green, PatchCoords.buildRandomPatch()); + patches.put(PatchColor.Blue, PatchCoords.buildRandomPatch()); + } else { + patches.put(PatchColor.Red, new PatchCoords()); + patches.put(PatchColor.Green, new PatchCoords()); + patches.put(PatchColor.Blue, new PatchCoords()); + } } public CombinedPatch(PatchCoords redPatch, PatchCoords greenPatch, PatchCoords bluePatch) { @@ -41,6 +46,26 @@ patches.put(PatchColor.Blue, bluePatch); } + public static CombinedPatch tween(CombinedPatch startPatch, CombinedPatch endPatch, double frac) { + CombinedPatch tweenPatch = new CombinedPatch(false); + { + PatchCoords sRedCoords = startPatch.getPatch(PatchColor.Red); + PatchCoords eRedCoords = endPatch.getPatch(PatchColor.Red); + tweenPatch.setPatch(PatchColor.Red, PatchCoords.tween(sRedCoords, eRedCoords, frac)); + } + { + PatchCoords sGreenCoords = startPatch.getPatch(PatchColor.Green); + PatchCoords eGreenCoords = endPatch.getPatch(PatchColor.Green); + tweenPatch.setPatch(PatchColor.Green, PatchCoords.tween(sGreenCoords, eGreenCoords, frac)); + } + { + PatchCoords sBlueCoords = startPatch.getPatch(PatchColor.Blue); + PatchCoords eBlueCoords = endPatch.getPatch(PatchColor.Blue); + tweenPatch.setPatch(PatchColor.Blue, PatchCoords.tween(sBlueCoords, eBlueCoords, frac)); + } + return tweenPatch; + } + public PatchCoords getPatch(PatchColor color) { return patches.get(color); } Modified: trunk/patchanim/src/com/mebigfatguy/patchanim/surface/Coordinate.java =================================================================== --- trunk/patchanim/src/com/mebigfatguy/patchanim/surface/Coordinate.java 2008-01-27 00:24:02 UTC (rev 27) +++ trunk/patchanim/src/com/mebigfatguy/patchanim/surface/Coordinate.java 2008-01-27 01:42:18 UTC (rev 28) @@ -22,35 +22,35 @@ public class Coordinate implements Serializable { - private int x, y, color; + private double x, y, color; - public Coordinate(int xPos, int yPos, int colorVal) { + public Coordinate(double xPos, double yPos, double colorVal) { x = xPos; y = yPos; color = colorVal; } - public int getX() { + public double getX() { return x; } - public void setX(int xPos) { + public void setX(double xPos) { x = xPos; } - public int getY() { + public double getY() { return y; } - public void sety(int yPos) { + public void sety(double yPos) { y = yPos; } - public int getColor() { + public double getColor() { return color; } - public void setColor(int colorVal) { + public void setColor(double colorVal) { color = colorVal; } Modified: trunk/patchanim/src/com/mebigfatguy/patchanim/surface/PatchCoords.java =================================================================== --- trunk/patchanim/src/com/mebigfatguy/patchanim/surface/PatchCoords.java 2008-01-27 00:24:02 UTC (rev 27) +++ trunk/patchanim/src/com/mebigfatguy/patchanim/surface/PatchCoords.java 2008-01-27 01:42:18 UTC (rev 28) @@ -34,16 +34,35 @@ Random r = new Random(); for (int u = 0; u < PatchCoords.ORDER; u++) { for (int v = 0; v < PatchCoords.ORDER; v++) { - coords[u][v] = new Coordinate((u * 100) / (PatchCoords.ORDER - 1), (v * 100) / (PatchCoords.ORDER - 1), r.nextInt(256)); + coords[u][v] = new Coordinate((u * 100.0) / (PatchCoords.ORDER - 1), (v * 100.0) / (PatchCoords.ORDER - 1), r.nextInt(256)); } } return new PatchCoords(coords); } + public PatchCoords() { + coords = new Coordinate[ORDER][ORDER]; + } + public PatchCoords(Coordinate[][] coordinates) { coords = coordinates; } + public static PatchCoords tween(PatchCoords startCoords, PatchCoords endCoords, double frac) { + + PatchCoords tweenCoords = new PatchCoords(); + for (int x = 0; x < ORDER; x++) { + for (int y = 0; y < ORDER; y++) { + Coordinate startC = startCoords.getCoordinate(x,y); + Coordinate endC = endCoords.getCoordinate(x,y); + int tweenColor = (int)(startC.getColor() + (endC.getColor() - startC.getColor()) * frac); + Coordinate tweenC = new Coordinate(startC.getX(), endC.getY(), tweenColor); + tweenCoords.setCoordinate(x, y, tweenC); + } + } + return tweenCoords; + } + public Coordinate getCoordinate(int i, int j) { return coords[i][j]; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dbr...@us...> - 2008-01-27 00:23:57
|
Revision: 27 http://patchanim.svn.sourceforge.net/patchanim/?rev=27&view=rev Author: dbrosius Date: 2008-01-26 16:24:02 -0800 (Sat, 26 Jan 2008) Log Message: ----------- enforce the ORDER constant throughout the app Modified Paths: -------------- trunk/patchanim/src/com/mebigfatguy/patchanim/surface/CombinedPatch.java trunk/patchanim/src/com/mebigfatguy/patchanim/surface/PatchCoords.java trunk/patchanim/src/com/mebigfatguy/patchanim/surface/PatchGenerator.java Modified: trunk/patchanim/src/com/mebigfatguy/patchanim/surface/CombinedPatch.java =================================================================== --- trunk/patchanim/src/com/mebigfatguy/patchanim/surface/CombinedPatch.java 2008-01-27 00:17:33 UTC (rev 26) +++ trunk/patchanim/src/com/mebigfatguy/patchanim/surface/CombinedPatch.java 2008-01-27 00:24:02 UTC (rev 27) @@ -30,9 +30,9 @@ private EnumMap<PatchColor, PatchCoords> patches = new EnumMap<PatchColor, PatchCoords>(PatchColor.class); public CombinedPatch() { - patches.put(PatchColor.Red, buildRandomPatch()); - patches.put(PatchColor.Green, buildRandomPatch()); - patches.put(PatchColor.Blue, buildRandomPatch()); + patches.put(PatchColor.Red, PatchCoords.buildRandomPatch()); + patches.put(PatchColor.Green, PatchCoords.buildRandomPatch()); + patches.put(PatchColor.Blue, PatchCoords.buildRandomPatch()); } public CombinedPatch(PatchCoords redPatch, PatchCoords greenPatch, PatchCoords bluePatch) { @@ -41,17 +41,6 @@ patches.put(PatchColor.Blue, bluePatch); } - private PatchCoords buildRandomPatch() { - Coordinate[][] coords = new Coordinate[4][4]; - Random r = new Random(); - for (int u = 0; u < 4; u++) { - for (int v = 0; v < 4; v++) { - coords[u][v] = new Coordinate(u * 33, v * 33, r.nextInt(256)); - } - } - return new PatchCoords(coords); - } - public PatchCoords getPatch(PatchColor color) { return patches.get(color); } Modified: trunk/patchanim/src/com/mebigfatguy/patchanim/surface/PatchCoords.java =================================================================== --- trunk/patchanim/src/com/mebigfatguy/patchanim/surface/PatchCoords.java 2008-01-27 00:17:33 UTC (rev 26) +++ trunk/patchanim/src/com/mebigfatguy/patchanim/surface/PatchCoords.java 2008-01-27 00:24:02 UTC (rev 27) @@ -20,12 +20,26 @@ import java.io.Serializable; import java.util.Arrays; +import java.util.Random; public class PatchCoords implements Serializable { private static final long serialVersionUID = -4052789167154764908L; + public static final int ORDER = 4; + private Coordinate[][] coords; + public static PatchCoords buildRandomPatch() { + Coordinate[][] coords = new Coordinate[PatchCoords.ORDER][PatchCoords.ORDER]; + Random r = new Random(); + for (int u = 0; u < PatchCoords.ORDER; u++) { + for (int v = 0; v < PatchCoords.ORDER; v++) { + coords[u][v] = new Coordinate((u * 100) / (PatchCoords.ORDER - 1), (v * 100) / (PatchCoords.ORDER - 1), r.nextInt(256)); + } + } + return new PatchCoords(coords); + } + public PatchCoords(Coordinate[][] coordinates) { coords = coordinates; } Modified: trunk/patchanim/src/com/mebigfatguy/patchanim/surface/PatchGenerator.java =================================================================== --- trunk/patchanim/src/com/mebigfatguy/patchanim/surface/PatchGenerator.java 2008-01-27 00:17:33 UTC (rev 26) +++ trunk/patchanim/src/com/mebigfatguy/patchanim/surface/PatchGenerator.java 2008-01-27 00:24:02 UTC (rev 27) @@ -26,7 +26,6 @@ import com.mebigfatguy.patchanim.PatchColor; public class PatchGenerator { - private static final int ORDER = 4; private PatchGenerator() { } @@ -40,8 +39,8 @@ double u, u2, u3, oneMinusU, oneMinusU2, oneMinusU3; double v, v2, v3, oneMinusV, oneMinusV2, oneMinusV3; - double[] uCoeffs = new double[ORDER]; - double[] vCoeffs = new double[ORDER]; + double[] uCoeffs = new double[PatchCoords.ORDER]; + double[] vCoeffs = new double[PatchCoords.ORDER]; double[] value = new double[3]; int[] iValue = new int[3]; @@ -76,8 +75,8 @@ value[0] = value[1] = value[2] = 0.0; - for (int i = 0; i < ORDER; i++) { - for (int j = 0; j < ORDER; j++) { + for (int i = 0; i < PatchCoords.ORDER; i++) { + for (int j = 0; j < PatchCoords.ORDER; j++) { double coeff = uCoeffs[i] * vCoeffs[j]; for (int k = 0; k < 3; k++) { value[k] += coords[k].getCoordinate(i, j).getColor() * coeff; @@ -103,8 +102,8 @@ double u, u2, u3, oneMinusU, oneMinusU2, oneMinusU3; double v, v2, v3, oneMinusV, oneMinusV2, oneMinusV3; - double[] uCoeffs = new double[ORDER]; - double[] vCoeffs = new double[ORDER]; + double[] uCoeffs = new double[PatchCoords.ORDER]; + double[] vCoeffs = new double[PatchCoords.ORDER]; int sampleSizeX = image.getWidth(); int sampleSizeY = image.getHeight(); @@ -136,8 +135,8 @@ vCoeffs[3] = v3; double value = 0.0; - for (int i = 0; i < ORDER; i++) { - for (int j = 0; j < ORDER; j++) { + for (int i = 0; i < PatchCoords.ORDER; i++) { + for (int j = 0; j < PatchCoords.ORDER; j++) { value += coords.getCoordinate(i, j).getColor() * uCoeffs[i] * vCoeffs[j]; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dbr...@us...> - 2008-01-27 00:17:29
|
Revision: 26 http://patchanim.svn.sourceforge.net/patchanim/?rev=26&view=rev Author: dbrosius Date: 2008-01-26 16:17:33 -0800 (Sat, 26 Jan 2008) Log Message: ----------- break out surface routines to a separate class Modified Paths: -------------- trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchSamplePanel.java Added Paths: ----------- trunk/patchanim/src/com/mebigfatguy/patchanim/surface/PatchGenerator.java Modified: trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchSamplePanel.java =================================================================== --- trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchSamplePanel.java 2008-01-26 07:16:38 UTC (rev 25) +++ trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchSamplePanel.java 2008-01-27 00:17:33 UTC (rev 26) @@ -22,12 +22,10 @@ import java.awt.Dimension; import java.awt.Graphics; import java.awt.Graphics2D; -import java.awt.Insets; import java.awt.Rectangle; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.image.BufferedImage; -import java.awt.image.IndexColorModel; import javax.swing.BorderFactory; import javax.swing.JPanel; @@ -35,11 +33,10 @@ import com.mebigfatguy.patchanim.PatchColor; import com.mebigfatguy.patchanim.surface.CombinedPatch; -import com.mebigfatguy.patchanim.surface.PatchCoords; +import com.mebigfatguy.patchanim.surface.PatchGenerator; public class JPatchSamplePanel extends JPanel { private static final int SAMPLE_SIZE = 200; - private static final int ORDER = 4; private PatchColor color; private Color rgb; private BufferedImage image; @@ -67,7 +64,7 @@ } private void initComponents() { - buildImage(); + image = PatchGenerator.buildImage(rgb, SAMPLE_SIZE, SAMPLE_SIZE); setBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4)); Dimension d = new Dimension(SAMPLE_SIZE, SAMPLE_SIZE); setMinimumSize(d); @@ -100,9 +97,9 @@ Thread t = new Thread(new Runnable() { public void run() { if (color == PatchColor.Combined) { - recalcCombinedImage(patch); + PatchGenerator.recalcCombinedImage(patch, image); } else { - recalcIndexedImage(color, patch); + PatchGenerator.recalcIndexedImage(color, patch, image); } SwingUtilities.invokeLater(new Runnable() { @@ -117,150 +114,6 @@ t.start(); } - private void recalcCombinedImage(CombinedPatch patch) { - PatchCoords[] coords = new PatchCoords[3]; - - coords[0] = patch.getPatch(PatchColor.Red); - 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[] uCoeffs = new double[ORDER]; - double[] vCoeffs = new double[ORDER]; - double[] value = new double[3]; - int[] iValue = new int[3]; - - for (int iu = 0; iu < SAMPLE_SIZE; iu++) { - u = (double)iu / (double)SAMPLE_SIZE; - 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; - - for (int iv = 0; iv < SAMPLE_SIZE; iv++) { - v = (double)iv / (double)SAMPLE_SIZE; - v2 = v * v; - v3 = v2 * v; - oneMinusV = 1.0 - v; - oneMinusV2 = oneMinusV * oneMinusV; - oneMinusV3 = oneMinusV2 * oneMinusV; - - vCoeffs[0] = oneMinusV3; - vCoeffs[1] = 3.0 * v * oneMinusV2; - vCoeffs[2] = 3.0 * v2 * oneMinusV; - vCoeffs[3] = v3; - - value[0] = value[1] = value[2] = 0.0; - - for (int i = 0; i < ORDER; i++) { - for (int j = 0; j < ORDER; j++) { - double coeff = uCoeffs[i] * vCoeffs[j]; - for (int k = 0; k < 3; k++) { - value[k] += coords[k].getCoordinate(i, j).getColor() * coeff; - } - } - } - - for (int k = 0; k < 3; k++) { - iValue[k] = (int)value[k]; - if (iValue[k] > 255) - iValue[k] = 255; - else if (iValue[k] < 0) - iValue[k] = 0; - } - int compValue = 0xFF000000 | (iValue[0] << 16) | (iValue[1] << 8) | iValue[2]; - image.setRGB(iu, iv, compValue); - } - } - } - - private void recalcIndexedImage(PatchColor color, CombinedPatch patch) { - PatchCoords coords = patch.getPatch(color); - - double u, u2, u3, oneMinusU, oneMinusU2, oneMinusU3; - double v, v2, v3, oneMinusV, oneMinusV2, oneMinusV3; - double[] uCoeffs = new double[ORDER]; - double[] vCoeffs = new double[ORDER]; - - for (int iu = 0; iu < SAMPLE_SIZE; iu++) { - u = (double)iu / (double)SAMPLE_SIZE; - 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; - - for (int iv = 0; iv < SAMPLE_SIZE; iv++) { - v = (double)iv / (double)SAMPLE_SIZE; - v2 = v * v; - v3 = v2 * v; - oneMinusV = 1.0 - v; - oneMinusV2 = oneMinusV * oneMinusV; - oneMinusV3 = oneMinusV2 * oneMinusV; - - vCoeffs[0] = oneMinusV3; - vCoeffs[1] = 3.0 * v * oneMinusV2; - vCoeffs[2] = 3.0 * v2 * oneMinusV; - vCoeffs[3] = v3; - - double value = 0.0; - for (int i = 0; i < ORDER; i++) { - for (int j = 0; j < ORDER; j++) { - value += coords.getCoordinate(i, j).getColor() * uCoeffs[i] * vCoeffs[j]; - } - } - - int iValue = (int)value; - if (iValue > 255) - iValue = 255; - else if (iValue < 0) - iValue = 0; - if (color == PatchColor.Red) - iValue <<= 16; - else if (color == PatchColor.Green) - iValue <<= 8; - iValue |= 0xFF000000; - - image.setRGB(iu, iv, iValue); - } - } - } - - private void buildImage() { - if (rgb == null) { - image = new BufferedImage(SAMPLE_SIZE, SAMPLE_SIZE, BufferedImage.TYPE_3BYTE_BGR); - } else { - byte[] r = new byte[256]; - byte[] g = new byte[256]; - byte[] b = new byte[256]; - - for (int i = 0; i < 256; i++) { - r[i] = (byte)((i * rgb.getRed()) / 255); - g[i] = (byte)((i * rgb.getGreen()) / 255); - b[i] = (byte)((i * rgb.getBlue()) / 255); - } - IndexColorModel icm = new IndexColorModel(8, 256, r, g, b); - - image = new BufferedImage(SAMPLE_SIZE, SAMPLE_SIZE, BufferedImage.TYPE_BYTE_INDEXED, icm); - } - - Graphics graphics = image.getGraphics(); - graphics.setColor(rgb); - graphics.fillRect(0, 0, SAMPLE_SIZE, SAMPLE_SIZE); - } - @Override public void paintComponent(Graphics g) { Rectangle bounds = getBounds(); Added: trunk/patchanim/src/com/mebigfatguy/patchanim/surface/PatchGenerator.java =================================================================== --- trunk/patchanim/src/com/mebigfatguy/patchanim/surface/PatchGenerator.java (rev 0) +++ trunk/patchanim/src/com/mebigfatguy/patchanim/surface/PatchGenerator.java 2008-01-27 00:17:33 UTC (rev 26) @@ -0,0 +1,187 @@ +/* + * patchanim - A bezier surface patch color blend gif builder + * Copyright (C) 2008 Dave Brosius + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ +package com.mebigfatguy.patchanim.surface; + +import java.awt.Color; +import java.awt.Graphics; +import java.awt.image.BufferedImage; +import java.awt.image.IndexColorModel; + +import com.mebigfatguy.patchanim.PatchColor; + +public class PatchGenerator { + private static final int ORDER = 4; + + private PatchGenerator() { + } + + public static void recalcCombinedImage(CombinedPatch patch, BufferedImage image) { + PatchCoords[] coords = new PatchCoords[3]; + + coords[0] = patch.getPatch(PatchColor.Red); + 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[] uCoeffs = new double[ORDER]; + double[] vCoeffs = new double[ORDER]; + double[] value = new double[3]; + int[] iValue = new int[3]; + + int sampleSizeX = image.getWidth(); + int sampleSizeY = image.getHeight(); + + 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; + + 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; + + vCoeffs[0] = oneMinusV3; + vCoeffs[1] = 3.0 * v * oneMinusV2; + vCoeffs[2] = 3.0 * v2 * oneMinusV; + vCoeffs[3] = v3; + + value[0] = value[1] = value[2] = 0.0; + + for (int i = 0; i < ORDER; i++) { + for (int j = 0; j < ORDER; j++) { + double coeff = uCoeffs[i] * vCoeffs[j]; + for (int k = 0; k < 3; k++) { + value[k] += coords[k].getCoordinate(i, j).getColor() * coeff; + } + } + } + + for (int k = 0; k < 3; k++) { + iValue[k] = (int)value[k]; + if (iValue[k] > 255) + iValue[k] = 255; + else if (iValue[k] < 0) + iValue[k] = 0; + } + int compValue = 0xFF000000 | (iValue[0] << 16) | (iValue[1] << 8) | iValue[2]; + image.setRGB(iu, iv, compValue); + } + } + } + + public static void recalcIndexedImage(PatchColor color, CombinedPatch patch, BufferedImage image) { + PatchCoords coords = patch.getPatch(color); + + double u, u2, u3, oneMinusU, oneMinusU2, oneMinusU3; + double v, v2, v3, oneMinusV, oneMinusV2, oneMinusV3; + double[] uCoeffs = new double[ORDER]; + double[] vCoeffs = new double[ORDER]; + + int sampleSizeX = image.getWidth(); + int sampleSizeY = image.getHeight(); + + 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; + + 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; + + vCoeffs[0] = oneMinusV3; + vCoeffs[1] = 3.0 * v * oneMinusV2; + vCoeffs[2] = 3.0 * v2 * oneMinusV; + vCoeffs[3] = v3; + + double value = 0.0; + for (int i = 0; i < ORDER; i++) { + for (int j = 0; j < ORDER; j++) { + value += coords.getCoordinate(i, j).getColor() * uCoeffs[i] * vCoeffs[j]; + } + } + + int iValue = (int)value; + if (iValue > 255) + iValue = 255; + else if (iValue < 0) + iValue = 0; + if (color == PatchColor.Red) + iValue <<= 16; + else if (color == PatchColor.Green) + iValue <<= 8; + iValue |= 0xFF000000; + + image.setRGB(iu, iv, iValue); + } + } + } + + public static BufferedImage buildImage(Color color, int sampleSizeX, int sampleSizeY) { + BufferedImage image = null; + + if (color == null) { + image = new BufferedImage(sampleSizeX, sampleSizeY, BufferedImage.TYPE_3BYTE_BGR); + } else { + byte[] r = new byte[256]; + byte[] g = new byte[256]; + byte[] b = new byte[256]; + + for (int i = 0; i < 256; i++) { + r[i] = (byte)((i * color.getRed()) / 255); + g[i] = (byte)((i * color.getGreen()) / 255); + b[i] = (byte)((i * color.getBlue()) / 255); + } + IndexColorModel icm = new IndexColorModel(8, 256, r, g, b); + + image = new BufferedImage(sampleSizeX, sampleSizeY, BufferedImage.TYPE_BYTE_INDEXED, icm); + } + + Graphics graphics = image.getGraphics(); + graphics.setColor(color); + graphics.fillRect(0, 0, sampleSizeX, sampleSizeY); + return image; + } + +} Property changes on: trunk/patchanim/src/com/mebigfatguy/patchanim/surface/PatchGenerator.java ___________________________________________________________________ Name: svn:mime-type + text/plain Name: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dbr...@us...> - 2008-01-26 07:16:34
|
Revision: 25 http://patchanim.svn.sourceforge.net/patchanim/?rev=25&view=rev Author: dbrosius Date: 2008-01-25 23:16:38 -0800 (Fri, 25 Jan 2008) Log Message: ----------- Removed file/folder Removed Paths: ------------- trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JCoordControl.java Deleted: trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JCoordControl.java =================================================================== --- trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JCoordControl.java 2008-01-26 07:15:09 UTC (rev 24) +++ trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JCoordControl.java 2008-01-26 07:16:38 UTC (rev 25) @@ -1,154 +0,0 @@ -/* - * patchanim - A bezier surface patch color blend gif builder - * Copyright (C) 2008 Dave Brosius - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ -package com.mebigfatguy.patchanim.gui; - -import java.awt.Color; -import java.awt.Dimension; -import java.awt.Graphics; -import java.awt.Rectangle; -import java.awt.event.MouseAdapter; -import java.awt.event.MouseEvent; -import java.awt.image.BufferedImage; -import java.awt.image.DataBuffer; -import java.awt.image.IndexColorModel; -import java.awt.image.WritableRaster; - -import javax.swing.JComponent; - -public class JCoordControl extends JComponent { - - private Color color; - private BufferedImage image; - private int lowVal; - private int hiVal; - private int firstCurVal; - private int secondCurVal; - private int[] xs = new int[3]; - private int[] ys = new int[3]; - - public JCoordControl(Color c) - { - color = c; - - byte[] r = new byte[256]; - byte[] g = new byte[256]; - byte[] b = new byte[256]; - - for (int i = 0; i < 256; i++) { - r[i] = (byte)((i * color.getRed()) / 255); - g[i] = (byte)((i * color.getGreen()) / 255); - b[i] = (byte)((i * color.getBlue()) / 255); - } - IndexColorModel icm = new IndexColorModel(8, 256, r, g, b); - - image = new BufferedImage(256, 1, BufferedImage.TYPE_BYTE_INDEXED, icm); - WritableRaster raster = image.getRaster(); - DataBuffer db = raster.getDataBuffer(); - for (int i = 0; i < 256; i++) { - db.setElem(i, i); - } - - Dimension d = new Dimension(100, 5); - setMinimumSize(d); - d = new Dimension(256, 20); - setPreferredSize(d); - lowVal = 0; - hiVal = 255; - firstCurVal = 255; - secondCurVal = 255; - - initListeners(); - setEnabled(true); - } - - public void initListeners() { - addMouseListener(new MouseAdapter() { - @Override - public void mousePressed(MouseEvent me) { - if (inThumb()) { - - } else { - - } - } - }); - } - - public boolean inThumb() { - return false; - } - - public void setMinValue(int min) { - lowVal = min; - } - - public void setMaxValue(int max) { - hiVal = max; - } - - public void setFirstCurValue(int cur) { - firstCurVal = cur; - } - public void setSecondCurValue(int cur) { - secondCurVal = cur; - } - - @Override - public void paint(Graphics g) { - Color saveColor = g.getColor(); - try { - Rectangle bounds = getBounds(); - - g.drawImage(image, 0, 0, bounds.width, bounds.height, 0, 0, 256, 1, null); - g.setColor(Color.BLACK); - g.drawRect(0, 0, bounds.width, bounds.height); - - int pt = calcPt(firstCurVal, bounds); - xs[0] = Math.max(pt - 10, 1); - xs[1] = pt; - xs[2] = Math.min(pt + 10, bounds.width - 1); - - ys[0] = 0; - ys[1] = (bounds.height >> 1) - 2; - ys[2] = ys[0]; - g.setColor(Color.YELLOW); - g.fillPolygon(xs, ys, 3); - g.setColor(Color.BLACK); - g.drawPolygon(xs, ys, 3); - - pt = calcPt(secondCurVal, bounds); - ys[0] = bounds.height; - ys[1] = (bounds.height >> 1) + 2; - ys[2] = ys[0]; - g.setColor(Color.YELLOW); - g.fillPolygon(xs, ys, 3); - g.setColor(Color.BLACK); - g.drawPolygon(xs, ys, 3); - - - } finally { - g.setColor(saveColor); - } - } - - private int calcPt(int val, Rectangle bounds) { - double frac = ((double)(val - lowVal)) / ((double)(hiVal - lowVal)); - return (int)(bounds.width * frac + 0.49); - } -} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dbr...@us...> - 2008-01-26 07:15:06
|
Revision: 24 http://patchanim.svn.sourceforge.net/patchanim/?rev=24&view=rev Author: dbrosius Date: 2008-01-25 23:15:09 -0800 (Fri, 25 Jan 2008) Log Message: ----------- org imports Modified Paths: -------------- trunk/patchanim/src/com/mebigfatguy/patchanim/main/PatchMain.java Modified: trunk/patchanim/src/com/mebigfatguy/patchanim/main/PatchMain.java =================================================================== --- trunk/patchanim/src/com/mebigfatguy/patchanim/main/PatchMain.java 2008-01-26 07:08:47 UTC (rev 23) +++ trunk/patchanim/src/com/mebigfatguy/patchanim/main/PatchMain.java 2008-01-26 07:15:09 UTC (rev 24) @@ -23,7 +23,6 @@ import java.awt.GraphicsEnvironment; import java.awt.Rectangle; -import com.mebigfatguy.patchanim.PatchAnimDocument; import com.mebigfatguy.patchanim.gui.JPatchAnimFrame; public class PatchMain { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dbr...@us...> - 2008-01-26 07:08:45
|
Revision: 23 http://patchanim.svn.sourceforge.net/patchanim/?rev=23&view=rev Author: dbrosius Date: 2008-01-25 23:08:47 -0800 (Fri, 25 Jan 2008) Log Message: ----------- better wording Modified Paths: -------------- trunk/patchanim/src/com/mebigfatguy/patchanim/resources.properties Modified: trunk/patchanim/src/com/mebigfatguy/patchanim/resources.properties =================================================================== --- trunk/patchanim/src/com/mebigfatguy/patchanim/resources.properties 2008-01-26 06:53:43 UTC (rev 22) +++ trunk/patchanim/src/com/mebigfatguy/patchanim/resources.properties 2008-01-26 07:08:47 UTC (rev 23) @@ -27,7 +27,7 @@ patchanim.control = Controls patchanim.width = Width patchanim.height = Height -patchanim.animation = Animation +patchanim.animation = Animation Repeat patchanim.none = None patchanim.cycle = Cycle patchanim.wave = Wave This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dbr...@us...> - 2008-01-26 06:53:37
|
Revision: 22 http://patchanim.svn.sourceforge.net/patchanim/?rev=22&view=rev Author: dbrosius Date: 2008-01-25 22:53:43 -0800 (Fri, 25 Jan 2008) Log Message: ----------- findbugs project file Added Paths: ----------- trunk/patchanim/patchanim.fb Added: trunk/patchanim/patchanim.fb =================================================================== --- trunk/patchanim/patchanim.fb (rev 0) +++ trunk/patchanim/patchanim.fb 2008-01-26 06:53:43 UTC (rev 22) @@ -0,0 +1,7 @@ +[Jar files] +.\classes +[Source dirs] +.\src +[Aux classpath entries] +[Options] +relative_paths=true Property changes on: trunk/patchanim/patchanim.fb ___________________________________________________________________ Name: svn:mime-type + text/plain Name: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dbr...@us...> - 2008-01-26 06:52:44
|
Revision: 21 http://patchanim.svn.sourceforge.net/patchanim/?rev=21&view=rev Author: dbrosius Date: 2008-01-25 22:52:49 -0800 (Fri, 25 Jan 2008) Log Message: ----------- rearrange - push web start up Modified Paths: -------------- trunk/patchanim/htdocs/index.html Modified: trunk/patchanim/htdocs/index.html =================================================================== --- trunk/patchanim/htdocs/index.html 2008-01-26 06:50:39 UTC (rev 20) +++ trunk/patchanim/htdocs/index.html 2008-01-26 06:52:49 UTC (rev 21) @@ -19,10 +19,10 @@ There are three patches available to tailor, one for red, green and blue, each. These three patches are combined into one blend. A series of these patches can be created, and then the software creates a tween between them to get a nicely continuous animated blend.</p> - <img src="sample.jpg"/> <p><b>This tool is not finished at this time, it is a work in process.</b></p> <p>If you would like to see the tool as it progresses, you can run the webstart version <a href="http://patchanim.sourceforge.net/jnlp/patchanim.jnlp">here.</a></p> + <img src="sample.jpg"/> </div> </body> </html> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dbr...@us...> - 2008-01-26 06:50:35
|
Revision: 20 http://patchanim.svn.sourceforge.net/patchanim/?rev=20&view=rev Author: dbrosius Date: 2008-01-25 22:50:39 -0800 (Fri, 25 Jan 2008) Log Message: ----------- show a sample on the web page Modified Paths: -------------- trunk/patchanim/htdocs/index.html Added Paths: ----------- trunk/patchanim/htdocs/sample.jpg Modified: trunk/patchanim/htdocs/index.html =================================================================== --- trunk/patchanim/htdocs/index.html 2008-01-26 06:42:09 UTC (rev 19) +++ trunk/patchanim/htdocs/index.html 2008-01-26 06:50:39 UTC (rev 20) @@ -19,6 +19,7 @@ There are three patches available to tailor, one for red, green and blue, each. These three patches are combined into one blend. A series of these patches can be created, and then the software creates a tween between them to get a nicely continuous animated blend.</p> + <img src="sample.jpg"/> <p><b>This tool is not finished at this time, it is a work in process.</b></p> <p>If you would like to see the tool as it progresses, you can run the webstart version <a href="http://patchanim.sourceforge.net/jnlp/patchanim.jnlp">here.</a></p> Added: trunk/patchanim/htdocs/sample.jpg =================================================================== (Binary files differ) Property changes on: trunk/patchanim/htdocs/sample.jpg ___________________________________________________________________ Name: svn:mime-type + application/octet-stream This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dbr...@us...> - 2008-01-26 06:42:04
|
Revision: 19 http://patchanim.svn.sourceforge.net/patchanim/?rev=19&view=rev Author: dbrosius Date: 2008-01-25 22:42:09 -0800 (Fri, 25 Jan 2008) Log Message: ----------- allow for typing - signs Modified Paths: -------------- trunk/patchanim/src/com/mebigfatguy/patchanim/gui/IntegerDocument.java trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JColorControlPatchPanel.java Modified: trunk/patchanim/src/com/mebigfatguy/patchanim/gui/IntegerDocument.java =================================================================== --- trunk/patchanim/src/com/mebigfatguy/patchanim/gui/IntegerDocument.java 2008-01-26 06:34:57 UTC (rev 18) +++ trunk/patchanim/src/com/mebigfatguy/patchanim/gui/IntegerDocument.java 2008-01-26 06:42:09 UTC (rev 19) @@ -30,7 +30,7 @@ { private static final long serialVersionUID = -1526356835854424028L; - private static final Pattern INTEGERPATTERN = Pattern.compile("-?(:?[0-9]*)?"); + private static final Pattern INTEGERPATTERN = Pattern.compile("-?(:?-?[0-9]*)?"); @Override public void insertString(int offs, String str, AttributeSet a) throws BadLocationException { Modified: trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JColorControlPatchPanel.java =================================================================== --- trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JColorControlPatchPanel.java 2008-01-26 06:34:57 UTC (rev 18) +++ trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JColorControlPatchPanel.java 2008-01-26 06:42:09 UTC (rev 19) @@ -164,9 +164,9 @@ private void processChange() { int value; - String color = colorField.getText(); - if (color.length() == 0) - value = 0; + String color = colorField.getText().trim(); + if ((color.length() == 0) || ("-".equals(color))) + return; else value = Integer.parseInt(colorField.getText()); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dbr...@us...> - 2008-01-26 06:34:52
|
Revision: 18 http://patchanim.svn.sourceforge.net/patchanim/?rev=18&view=rev Author: dbrosius Date: 2008-01-25 22:34:57 -0800 (Fri, 25 Jan 2008) Log Message: ----------- draw ctrls in yellow so they stand out, and get the edit ctrl working Modified Paths: -------------- trunk/patchanim/src/com/mebigfatguy/patchanim/gui/IntegerDocument.java trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JColorControlPatchPanel.java trunk/patchanim/src/com/mebigfatguy/patchanim/gui/PatchPanelMediator.java Modified: trunk/patchanim/src/com/mebigfatguy/patchanim/gui/IntegerDocument.java =================================================================== --- trunk/patchanim/src/com/mebigfatguy/patchanim/gui/IntegerDocument.java 2008-01-26 06:02:34 UTC (rev 17) +++ trunk/patchanim/src/com/mebigfatguy/patchanim/gui/IntegerDocument.java 2008-01-26 06:34:57 UTC (rev 18) @@ -30,7 +30,7 @@ { private static final long serialVersionUID = -1526356835854424028L; - private static final Pattern INTEGERPATTERN = Pattern.compile("-?(:?[1-9][0-9]*)?"); + private static final Pattern INTEGERPATTERN = Pattern.compile("-?(:?[0-9]*)?"); @Override public void insertString(int offs, String str, AttributeSet a) throws BadLocationException { @@ -38,13 +38,9 @@ String end = getText(offs, this.getLength() - offs); String newIntegerString = (start + str + end).trim(); - if (newIntegerString.length() == 0) - super.insertString(offs, str, a); - else { - Matcher m = INTEGERPATTERN.matcher(newIntegerString); - if (m.matches()) { - super.insertString(offs, str, a); - } + Matcher m = INTEGERPATTERN.matcher(newIntegerString); + if (m.matches()) { + super.insertString(offs, str, a); } } } \ No newline at end of file Modified: trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JColorControlPatchPanel.java =================================================================== --- trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JColorControlPatchPanel.java 2008-01-26 06:02:34 UTC (rev 17) +++ trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JColorControlPatchPanel.java 2008-01-26 06:34:57 UTC (rev 18) @@ -23,7 +23,6 @@ import java.awt.Graphics2D; import java.awt.Point; import java.awt.Rectangle; -import java.awt.image.BufferedImage; import java.util.ResourceBundle; import javax.swing.Box; @@ -32,6 +31,8 @@ import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.SwingUtilities; +import javax.swing.event.DocumentEvent; +import javax.swing.event.DocumentListener; import com.mebigfatguy.patchanim.PatchColor; import com.mebigfatguy.patchanim.main.PatchAnimBundle; @@ -46,13 +47,14 @@ private JPatchSamplePanel sample; private JLabel colorLabel; private JTextField colorField; - private int selectedU; - private int selectedV; + private ValueDocumentListener docListener = new ValueDocumentListener(); + private int selectedXPt; + private int selectedYPt; public JColorControlPatchPanel(PatchColor c) { color = c; - selectedU = 0; - selectedV = 0; + selectedXPt = 0; + selectedYPt = 0; initComponents(); initListeners(); } @@ -64,7 +66,7 @@ sample.setDecorator(this); colorLabel = new JLabel(rb.getString(PatchAnimBundle.COLOR)); - colorField = new JTextField(4); + colorField = new JTextField(new IntegerDocument(), "", 4); add(Box.createVerticalGlue()); JPanel p = new JPanel(); @@ -94,19 +96,24 @@ CombinedPatch currentPatch = apce.getActivePatch(); coords = currentPatch.getPatch(color); if (coords != null) { - setColorField(); + setColorField(false); sample.recalcImage(color, currentPatch); } } - }); + }); + colorField.getDocument().addDocumentListener(docListener); } - private void setColorField() { + private void setColorField(final boolean fireEvents) { SwingUtilities.invokeLater(new Runnable() { public void run() { - Coordinate coord = coords.getCoordinate(selectedU, selectedV); + Coordinate coord = coords.getCoordinate(selectedXPt, selectedYPt); + if (!fireEvents) + colorField.getDocument().removeDocumentListener(docListener); colorField.setText(String.valueOf(coord.getColor())); + if (!fireEvents) + colorField.getDocument().addDocumentListener(docListener); } }); } @@ -115,11 +122,11 @@ if (coords == null) return; - g.setColor(Color.black); + g.setColor(Color.yellow); for (int u = 0; u < 4; u++) { for (int v = 0; v < 4; v++) { Coordinate c = coords.getCoordinate(u, v); - if ((selectedU == u) && (selectedV == v)) { + if ((selectedXPt == u) && (selectedYPt == v)) { g.fillOval(((c.getX() * (bounds.width - 5)) / 100) + bounds.x, ((c.getY() * (bounds.height - 5)) / 100) + bounds.y, 5, 5); } else { g.drawOval(((c.getX() * (bounds.width - 5)) / 100) + bounds.x, ((c.getY() * (bounds.height - 5)) / 100) + bounds.y, 5, 5); @@ -129,13 +136,45 @@ } public void click(Point p, Rectangle bounds) { - int newSelectedU = ((((p.x - bounds.x) * 100) / bounds.width) + 16) / 33; - int newSelectedV = ((((p.y - bounds.y) * 100) / bounds.height) + 16) / 33; - if ((newSelectedU != selectedU) || (newSelectedV != selectedV)) { - selectedU = newSelectedU; - selectedV = newSelectedV; - sample.repaint(); - setColorField(); + int newSelectedXPt = ((((p.x - bounds.x) * 100) / bounds.width) + 16) / 33; + int newSelectedYPt = ((((p.y - bounds.y) * 100) / bounds.height) + 16) / 33; + if ((newSelectedXPt != selectedXPt) || (newSelectedYPt != selectedYPt)) { + selectedXPt = newSelectedXPt; + selectedYPt = newSelectedYPt; + setColorField(false); + invalidate(); + revalidate(); + repaint(); } } + + class ValueDocumentListener implements DocumentListener + { + public void changedUpdate(DocumentEvent de) { + processChange(); + } + + public void insertUpdate(DocumentEvent de) { + processChange(); + } + + public void removeUpdate(DocumentEvent de) { + processChange(); + } + + private void processChange() { + int value; + String color = colorField.getText(); + if (color.length() == 0) + value = 0; + else + value = Integer.parseInt(colorField.getText()); + + Coordinate coord = coords.getCoordinate(selectedXPt, selectedYPt); + coord.setColor(value); + coords.setCoordinate(selectedXPt, selectedYPt, coord); + PatchPanelMediator mediator = PatchPanelMediator.getMediator(); + mediator.setNewActivePatch(mediator.getActivePatch()); + } + } } Modified: trunk/patchanim/src/com/mebigfatguy/patchanim/gui/PatchPanelMediator.java =================================================================== --- trunk/patchanim/src/com/mebigfatguy/patchanim/gui/PatchPanelMediator.java 2008-01-26 06:02:34 UTC (rev 17) +++ trunk/patchanim/src/com/mebigfatguy/patchanim/gui/PatchPanelMediator.java 2008-01-26 06:34:57 UTC (rev 18) @@ -28,6 +28,7 @@ private static final PatchPanelMediator mediator = new PatchPanelMediator(); private PatchAnimDocument document; + private CombinedPatch activePatch; private Set<DocumentChangedListener> dclisteners = new HashSet<DocumentChangedListener>(); private Set<ActivePatchChangedListener> apclisteners = new HashSet<ActivePatchChangedListener>(); @@ -53,7 +54,12 @@ apclisteners.add(apcl); } + public CombinedPatch getActivePatch() { + return activePatch; + } + public void setNewActivePatch(CombinedPatch patch) { + activePatch = patch; ActivePatchChangedEvent apce = new ActivePatchChangedEvent(this, patch); for (ActivePatchChangedListener apcl : apclisteners) { apcl.activePatchChanged(apce); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dbr...@us...> - 2008-01-26 06:02:29
|
Revision: 17 http://patchanim.svn.sourceforge.net/patchanim/?rev=17&view=rev Author: dbrosius Date: 2008-01-25 22:02:34 -0800 (Fri, 25 Jan 2008) Log Message: ----------- document to enforce integer values Added Paths: ----------- trunk/patchanim/src/com/mebigfatguy/patchanim/gui/IntegerDocument.java Added: trunk/patchanim/src/com/mebigfatguy/patchanim/gui/IntegerDocument.java =================================================================== --- trunk/patchanim/src/com/mebigfatguy/patchanim/gui/IntegerDocument.java (rev 0) +++ trunk/patchanim/src/com/mebigfatguy/patchanim/gui/IntegerDocument.java 2008-01-26 06:02:34 UTC (rev 17) @@ -0,0 +1,50 @@ +/* + * patchanim - A bezier surface patch color blend gif builder + * Copyright (C) 2008 Dave Brosius + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ +package com.mebigfatguy.patchanim.gui; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import javax.swing.text.AttributeSet; +import javax.swing.text.BadLocationException; +import javax.swing.text.PlainDocument; + + +public class IntegerDocument extends PlainDocument +{ + private static final long serialVersionUID = -1526356835854424028L; + + private static final Pattern INTEGERPATTERN = Pattern.compile("-?(:?[1-9][0-9]*)?"); + + @Override + public void insertString(int offs, String str, AttributeSet a) throws BadLocationException { + String start = getText(0, offs); + String end = getText(offs, this.getLength() - offs); + String newIntegerString = (start + str + end).trim(); + + if (newIntegerString.length() == 0) + super.insertString(offs, str, a); + else { + Matcher m = INTEGERPATTERN.matcher(newIntegerString); + if (m.matches()) { + super.insertString(offs, str, a); + } + } + } +} \ No newline at end of file Property changes on: trunk/patchanim/src/com/mebigfatguy/patchanim/gui/IntegerDocument.java ___________________________________________________________________ Name: svn:mime-type + text/plain Name: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dbr...@us...> - 2008-01-26 05:37:29
|
Revision: 16 http://patchanim.svn.sourceforge.net/patchanim/?rev=16&view=rev Author: dbrosius Date: 2008-01-25 21:37:34 -0800 (Fri, 25 Jan 2008) Log Message: ----------- get the combined sample patch drawing 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 2008-01-26 05:15:39 UTC (rev 15) +++ trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchSamplePanel.java 2008-01-26 05:37:34 UTC (rev 16) @@ -84,68 +84,25 @@ } } }); + + PatchPanelMediator mediator = PatchPanelMediator.getMediator(); + mediator.addActivePatchChangedListener(new ActivePatchChangedListener() { + public void activePatchChanged(ActivePatchChangedEvent apce) { + if (color == PatchColor.Combined) { + CombinedPatch currentPatch = apce.getActivePatch(); + recalcImage(color, currentPatch); + } + } + }); } public void recalcImage(final PatchColor color, final CombinedPatch patch) { Thread t = new Thread(new Runnable() { public void run() { if (color == PatchColor.Combined) { - + recalcCombinedImage(patch); } else { - PatchCoords coords = patch.getPatch(color); - - double u, u2, u3, oneMinusU, oneMinusU2, oneMinusU3; - double v, v2, v3, oneMinusV, oneMinusV2, oneMinusV3; - double[] uCoeffs = new double[ORDER]; - double[] vCoeffs = new double[ORDER]; - - for (int iu = 0; iu < SAMPLE_SIZE; iu++) { - u = (double)iu / (double)SAMPLE_SIZE; - 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; - - for (int iv = 0; iv < SAMPLE_SIZE; iv++) { - v = (double)iv / (double)SAMPLE_SIZE; - v2 = v * v; - v3 = v2 * v; - oneMinusV = 1.0 - v; - oneMinusV2 = oneMinusV * oneMinusV; - oneMinusV3 = oneMinusV2 * oneMinusV; - - vCoeffs[0] = oneMinusV3; - vCoeffs[1] = 3.0 * v * oneMinusV2; - vCoeffs[2] = 3.0 * v2 * oneMinusV; - vCoeffs[3] = v3; - - double value = 0.0; - for (int i = 0; i < ORDER; i++) { - for (int j = 0; j < ORDER; j++) { - value += coords.getCoordinate(i, j).getColor() * uCoeffs[i] * vCoeffs[j]; - } - } - - int iValue = (int)value; - if (iValue > 255) - iValue = 255; - else if (iValue < 0) - iValue = 0; - if (color == PatchColor.Red) - iValue <<= 16; - else if (color == PatchColor.Green) - iValue <<= 8; - iValue |= 0xFF000000; - - image.setRGB(iu, iv, iValue); - } - } + recalcIndexedImage(color, patch); } SwingUtilities.invokeLater(new Runnable() { @@ -159,7 +116,128 @@ }); t.start(); } + + private void recalcCombinedImage(CombinedPatch patch) { + PatchCoords[] coords = new PatchCoords[3]; + + coords[0] = patch.getPatch(PatchColor.Red); + 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[] uCoeffs = new double[ORDER]; + double[] vCoeffs = new double[ORDER]; + double[] value = new double[3]; + int[] iValue = new int[3]; + + for (int iu = 0; iu < SAMPLE_SIZE; iu++) { + u = (double)iu / (double)SAMPLE_SIZE; + 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; + + for (int iv = 0; iv < SAMPLE_SIZE; iv++) { + v = (double)iv / (double)SAMPLE_SIZE; + v2 = v * v; + v3 = v2 * v; + oneMinusV = 1.0 - v; + oneMinusV2 = oneMinusV * oneMinusV; + oneMinusV3 = oneMinusV2 * oneMinusV; + + vCoeffs[0] = oneMinusV3; + vCoeffs[1] = 3.0 * v * oneMinusV2; + vCoeffs[2] = 3.0 * v2 * oneMinusV; + vCoeffs[3] = v3; + value[0] = value[1] = value[2] = 0.0; + + for (int i = 0; i < ORDER; i++) { + for (int j = 0; j < ORDER; j++) { + double coeff = uCoeffs[i] * vCoeffs[j]; + for (int k = 0; k < 3; k++) { + value[k] += coords[k].getCoordinate(i, j).getColor() * coeff; + } + } + } + + for (int k = 0; k < 3; k++) { + iValue[k] = (int)value[k]; + if (iValue[k] > 255) + iValue[k] = 255; + else if (iValue[k] < 0) + iValue[k] = 0; + } + int compValue = 0xFF000000 | (iValue[0] << 16) | (iValue[1] << 8) | iValue[2]; + image.setRGB(iu, iv, compValue); + } + } + } + + private void recalcIndexedImage(PatchColor color, CombinedPatch patch) { + PatchCoords coords = patch.getPatch(color); + + double u, u2, u3, oneMinusU, oneMinusU2, oneMinusU3; + double v, v2, v3, oneMinusV, oneMinusV2, oneMinusV3; + double[] uCoeffs = new double[ORDER]; + double[] vCoeffs = new double[ORDER]; + + for (int iu = 0; iu < SAMPLE_SIZE; iu++) { + u = (double)iu / (double)SAMPLE_SIZE; + 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; + + for (int iv = 0; iv < SAMPLE_SIZE; iv++) { + v = (double)iv / (double)SAMPLE_SIZE; + v2 = v * v; + v3 = v2 * v; + oneMinusV = 1.0 - v; + oneMinusV2 = oneMinusV * oneMinusV; + oneMinusV3 = oneMinusV2 * oneMinusV; + + vCoeffs[0] = oneMinusV3; + vCoeffs[1] = 3.0 * v * oneMinusV2; + vCoeffs[2] = 3.0 * v2 * oneMinusV; + vCoeffs[3] = v3; + + double value = 0.0; + for (int i = 0; i < ORDER; i++) { + for (int j = 0; j < ORDER; j++) { + value += coords.getCoordinate(i, j).getColor() * uCoeffs[i] * vCoeffs[j]; + } + } + + int iValue = (int)value; + if (iValue > 255) + iValue = 255; + else if (iValue < 0) + iValue = 0; + if (color == PatchColor.Red) + iValue <<= 16; + else if (color == PatchColor.Green) + iValue <<= 8; + iValue |= 0xFF000000; + + image.setRGB(iu, iv, iValue); + } + } + } + private void buildImage() { if (rgb == null) { image = new BufferedImage(SAMPLE_SIZE, SAMPLE_SIZE, BufferedImage.TYPE_3BYTE_BGR); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dbr...@us...> - 2008-01-26 05:15:35
|
Revision: 15 http://patchanim.svn.sourceforge.net/patchanim/?rev=15&view=rev Author: dbrosius Date: 2008-01-25 21:15:39 -0800 (Fri, 25 Jan 2008) Log Message: ----------- no need for the color borders, anymore 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 2008-01-26 05:12:25 UTC (rev 14) +++ trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchSamplePanel.java 2008-01-26 05:15:39 UTC (rev 15) @@ -187,13 +187,6 @@ public void paintComponent(Graphics g) { Rectangle bounds = getBounds(); g.drawImage(image, 0, 0, (int)bounds.getWidth(), (int)bounds.getHeight(), 0, 0, SAMPLE_SIZE, SAMPLE_SIZE, null); - Insets insets = getInsets(); - bounds.x += insets.left; - bounds.y += insets.top; - bounds.width -= (insets.left + insets.right) + 1; - bounds.height -= (insets.top + insets.bottom) + 1; - g.setColor(rgb); - g.drawRect(bounds.x, bounds.y, bounds.width, bounds.height); if (decorator != null) decorator.drawDecoration(((Graphics2D) g), g.getClipBounds()); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dbr...@us...> - 2008-01-26 05:12:34
|
Revision: 14 http://patchanim.svn.sourceforge.net/patchanim/?rev=14&view=rev Author: dbrosius Date: 2008-01-25 21:12:25 -0800 (Fri, 25 Jan 2008) Log Message: ----------- R,G,B Sample patch drawing starting to work. Modified Paths: -------------- trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JColorControlPatchPanel.java trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchSamplePanel.java trunk/patchanim/src/com/mebigfatguy/patchanim/surface/CombinedPatch.java trunk/patchanim/src/com/mebigfatguy/patchanim/surface/PatchCoords.java Modified: trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JColorControlPatchPanel.java =================================================================== --- trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JColorControlPatchPanel.java 2008-01-25 13:06:04 UTC (rev 13) +++ trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JColorControlPatchPanel.java 2008-01-26 05:12:25 UTC (rev 14) @@ -23,6 +23,7 @@ import java.awt.Graphics2D; import java.awt.Point; import java.awt.Rectangle; +import java.awt.image.BufferedImage; import java.util.ResourceBundle; import javax.swing.Box; @@ -91,15 +92,11 @@ mediator.addActivePatchChangedListener(new ActivePatchChangedListener() { public void activePatchChanged(ActivePatchChangedEvent apce) { CombinedPatch currentPatch = apce.getActivePatch(); - if (color == PatchColor.Red) - coords = currentPatch.getRedPatch(); - else if (color == PatchColor.Green) - coords = currentPatch.getGreenPatch(); - else if (color == PatchColor.Blue) - coords = currentPatch.getBluePatch(); - else - return; - setColorField(); + coords = currentPatch.getPatch(color); + if (coords != null) { + setColorField(); + sample.recalcImage(color, currentPatch); + } } }); } @@ -113,7 +110,7 @@ } }); } - + public void drawDecoration(Graphics2D g, Rectangle bounds) { if (coords == null) return; Modified: trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchSamplePanel.java =================================================================== --- trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchSamplePanel.java 2008-01-25 13:06:04 UTC (rev 13) +++ trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchSamplePanel.java 2008-01-26 05:12:25 UTC (rev 14) @@ -31,11 +31,15 @@ import javax.swing.BorderFactory; import javax.swing.JPanel; +import javax.swing.SwingUtilities; import com.mebigfatguy.patchanim.PatchColor; +import com.mebigfatguy.patchanim.surface.CombinedPatch; +import com.mebigfatguy.patchanim.surface.PatchCoords; public class JPatchSamplePanel extends JPanel { private static final int SAMPLE_SIZE = 200; + private static final int ORDER = 4; private PatchColor color; private Color rgb; private BufferedImage image; @@ -82,6 +86,80 @@ }); } + public void recalcImage(final PatchColor color, final CombinedPatch patch) { + Thread t = new Thread(new Runnable() { + public void run() { + if (color == PatchColor.Combined) { + + } else { + PatchCoords coords = patch.getPatch(color); + + double u, u2, u3, oneMinusU, oneMinusU2, oneMinusU3; + double v, v2, v3, oneMinusV, oneMinusV2, oneMinusV3; + double[] uCoeffs = new double[ORDER]; + double[] vCoeffs = new double[ORDER]; + + for (int iu = 0; iu < SAMPLE_SIZE; iu++) { + u = (double)iu / (double)SAMPLE_SIZE; + 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; + + for (int iv = 0; iv < SAMPLE_SIZE; iv++) { + v = (double)iv / (double)SAMPLE_SIZE; + v2 = v * v; + v3 = v2 * v; + oneMinusV = 1.0 - v; + oneMinusV2 = oneMinusV * oneMinusV; + oneMinusV3 = oneMinusV2 * oneMinusV; + + vCoeffs[0] = oneMinusV3; + vCoeffs[1] = 3.0 * v * oneMinusV2; + vCoeffs[2] = 3.0 * v2 * oneMinusV; + vCoeffs[3] = v3; + + double value = 0.0; + for (int i = 0; i < ORDER; i++) { + for (int j = 0; j < ORDER; j++) { + value += coords.getCoordinate(i, j).getColor() * uCoeffs[i] * vCoeffs[j]; + } + } + + int iValue = (int)value; + if (iValue > 255) + iValue = 255; + else if (iValue < 0) + iValue = 0; + if (color == PatchColor.Red) + iValue <<= 16; + else if (color == PatchColor.Green) + iValue <<= 8; + iValue |= 0xFF000000; + + image.setRGB(iu, iv, iValue); + } + } + } + + SwingUtilities.invokeLater(new Runnable() { + public void run() { + invalidate(); + revalidate(); + repaint(); + } + }); + } + }); + t.start(); + } + private void buildImage() { if (rgb == null) { image = new BufferedImage(SAMPLE_SIZE, SAMPLE_SIZE, BufferedImage.TYPE_3BYTE_BGR); Modified: trunk/patchanim/src/com/mebigfatguy/patchanim/surface/CombinedPatch.java =================================================================== --- trunk/patchanim/src/com/mebigfatguy/patchanim/surface/CombinedPatch.java 2008-01-25 13:06:04 UTC (rev 13) +++ trunk/patchanim/src/com/mebigfatguy/patchanim/surface/CombinedPatch.java 2008-01-26 05:12:25 UTC (rev 14) @@ -19,25 +19,26 @@ package com.mebigfatguy.patchanim.surface; import java.io.Serializable; +import java.util.EnumMap; import java.util.Random; +import com.mebigfatguy.patchanim.PatchColor; + public class CombinedPatch implements Serializable { + private static final long serialVersionUID = 8732763987020552187L; + + private EnumMap<PatchColor, PatchCoords> patches = new EnumMap<PatchColor, PatchCoords>(PatchColor.class); - private PatchCoords red; - private PatchCoords green; - private PatchCoords blue; - public CombinedPatch() { - - red = buildRandomPatch(); - green = buildRandomPatch(); - blue = buildRandomPatch(); + patches.put(PatchColor.Red, buildRandomPatch()); + patches.put(PatchColor.Green, buildRandomPatch()); + patches.put(PatchColor.Blue, buildRandomPatch()); } public CombinedPatch(PatchCoords redPatch, PatchCoords greenPatch, PatchCoords bluePatch) { - red = redPatch; - green = greenPatch; - blue = bluePatch; + patches.put(PatchColor.Red, redPatch); + patches.put(PatchColor.Green, greenPatch); + patches.put(PatchColor.Blue, bluePatch); } private PatchCoords buildRandomPatch() { @@ -51,30 +52,14 @@ return new PatchCoords(coords); } - public PatchCoords getRedPatch() { - return red; + public PatchCoords getPatch(PatchColor color) { + return patches.get(color); } - public void setRedPatch(PatchCoords coords) { - red = coords; + public void setPatch(PatchColor color, PatchCoords coords) { + patches.put(color, coords); } - public PatchCoords getGreenPatch() { - return green; - } - - public void setGreenPatch(PatchCoords coords) { - green = coords; - } - - public PatchCoords getBluePatch() { - return blue; - } - - public void setBluePatch(PatchCoords coords) { - blue = coords; - } - @Override public String toString() { return "Patch Coordinates"; Modified: trunk/patchanim/src/com/mebigfatguy/patchanim/surface/PatchCoords.java =================================================================== --- trunk/patchanim/src/com/mebigfatguy/patchanim/surface/PatchCoords.java 2008-01-25 13:06:04 UTC (rev 13) +++ trunk/patchanim/src/com/mebigfatguy/patchanim/surface/PatchCoords.java 2008-01-26 05:12:25 UTC (rev 14) @@ -30,12 +30,12 @@ coords = coordinates; } - public Coordinate getCoordinate(int u, int v) { - return coords[u][v]; + public Coordinate getCoordinate(int i, int j) { + return coords[i][j]; } - public void setCoordinate(int u, int v, Coordinate coordinate) { - coords[u][v] = coordinate; + public void setCoordinate(int i, int j, Coordinate coordinate) { + coords[i][j] = coordinate; } @Override This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dbr...@us...> - 2008-01-25 13:05:59
|
Revision: 13 http://patchanim.svn.sourceforge.net/patchanim/?rev=13&view=rev Author: dbrosius Date: 2008-01-25 05:06:04 -0800 (Fri, 25 Jan 2008) Log Message: ----------- section 508 fixes Modified Paths: -------------- trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchControlPanel.java Modified: trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchControlPanel.java =================================================================== --- trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchControlPanel.java 2008-01-25 05:26:57 UTC (rev 12) +++ trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchControlPanel.java 2008-01-25 13:06:04 UTC (rev 13) @@ -64,6 +64,7 @@ { widthLabel = new JLabel(rb.getString(PatchAnimBundle.WIDTH)); widthField = new JTextField(8); + widthLabel.setLabelFor(widthField); JPanel p = Utils.createFormPanel(widthLabel, widthField); Utils.limitPanelHeight(p, widthField); @@ -73,6 +74,7 @@ { heightLabel = new JLabel(rb.getString(PatchAnimBundle.HEIGHT)); heightField = new JTextField(8); + heightLabel.setLabelFor(heightField); JPanel p = Utils.createFormPanel(heightLabel, heightField); Utils.limitPanelHeight(p, heightField); @@ -84,6 +86,7 @@ animationCB = new JComboBox(new Object[] { rb.getString(PatchAnimBundle.NONE), rb.getString(PatchAnimBundle.CYCLE), rb.getString(PatchAnimBundle.WAVE) }); + animationLabel.setLabelFor(animationCB); JPanel p = Utils.createFormPanel(animationLabel, animationCB); Utils.limitPanelHeight(p, animationCB); @@ -94,6 +97,7 @@ outOfBoundsLabel = new JLabel(rb.getString(PatchAnimBundle.OUTOFBOUNDSCOLOR)); outOfBoundsColorCB = new JComboBox(new Object[] { rb.getString(PatchAnimBundle.CLIP), rb.getString(PatchAnimBundle.ROLL) }); + outOfBoundsLabel.setLabelFor(outOfBoundsColorCB); JPanel p = Utils.createFormPanel(outOfBoundsLabel, outOfBoundsColorCB); Utils.limitPanelHeight(p, outOfBoundsColorCB); add(p); @@ -102,6 +106,7 @@ { tweenFramesLabel = new JLabel(rb.getString(PatchAnimBundle.TWEENFRAMES)); tweenFramesField = new JTextField(8); + tweenFramesLabel.setLabelFor(tweenFramesField); JPanel p = Utils.createFormPanel(tweenFramesLabel, tweenFramesField); Utils.limitPanelHeight(p, tweenFramesField); add(p); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dbr...@us...> - 2008-01-25 05:26:51
|
Revision: 12 http://patchanim.svn.sourceforge.net/patchanim/?rev=12&view=rev Author: dbrosius Date: 2008-01-24 21:26:57 -0800 (Thu, 24 Jan 2008) Log Message: ----------- add webstart link Modified Paths: -------------- trunk/patchanim/htdocs/index.html Modified: trunk/patchanim/htdocs/index.html =================================================================== --- trunk/patchanim/htdocs/index.html 2008-01-25 05:23:54 UTC (rev 11) +++ trunk/patchanim/htdocs/index.html 2008-01-25 05:26:57 UTC (rev 12) @@ -20,7 +20,8 @@ combined into one blend. A series of these patches can be created, and then the software creates a tween between them to get a nicely continuous animated blend.</p> <p><b>This tool is not finished at this time, it is a work in process.</b></p> - <p><b>Look for a java web start link here in the near future.</b></p> + <p>If you would like to see the tool as it progresses, you can run the webstart version + <a href="http://patchanim.sourceforge.net/jnlp/patchanim.jnlp">here.</a></p> </div> </body> </html> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dbr...@us...> - 2008-01-25 05:23:48
|
Revision: 11 http://patchanim.svn.sourceforge.net/patchanim/?rev=11&view=rev Author: dbrosius Date: 2008-01-24 21:23:54 -0800 (Thu, 24 Jan 2008) Log Message: ----------- add jar signing to jar task Modified Paths: -------------- trunk/patchanim/build.xml Modified: trunk/patchanim/build.xml =================================================================== --- trunk/patchanim/build.xml 2008-01-25 05:16:39 UTC (rev 10) +++ trunk/patchanim/build.xml 2008-01-25 05:23:54 UTC (rev 11) @@ -80,7 +80,14 @@ <attribute name="patchanim-version" value="${patchanim.version}"/> <attribute name="Main-Class" value="com.mebigfatguy.patchanim.main.PatchMain"/> </manifest> - </jar> + </jar> + <input message="Enter keystore password" addproperty="pass"/> + <signjar jar="${basedir}/patchanim-${patchanim.version}.jar" + keystore="patchanim.store" + alias="patchanim" + keypass="${pass}" + storepass="${pass}"/> + </target> <target name="srczip" description="builds the source distribution zip file"> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dbr...@us...> - 2008-01-25 05:16:34
|
Revision: 10 http://patchanim.svn.sourceforge.net/patchanim/?rev=10&view=rev Author: dbrosius Date: 2008-01-24 21:16:39 -0800 (Thu, 24 Jan 2008) Log Message: ----------- jnlp store Added Paths: ----------- trunk/patchanim/patchanim.store Added: trunk/patchanim/patchanim.store =================================================================== (Binary files differ) Property changes on: trunk/patchanim/patchanim.store ___________________________________________________________________ Name: svn:mime-type + application/octet-stream This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dbr...@us...> - 2008-01-25 05:12:43
|
Revision: 9 http://patchanim.svn.sourceforge.net/patchanim/?rev=9&view=rev Author: dbrosius Date: 2008-01-24 21:12:46 -0800 (Thu, 24 Jan 2008) Log Message: ----------- jnlp file for web start Added Paths: ----------- trunk/patchanim/htdocs/jnlp/ trunk/patchanim/htdocs/jnlp/patchanim.jnlp Added: trunk/patchanim/htdocs/jnlp/patchanim.jnlp =================================================================== --- trunk/patchanim/htdocs/jnlp/patchanim.jnlp (rev 0) +++ trunk/patchanim/htdocs/jnlp/patchanim.jnlp 2008-01-25 05:12:46 UTC (rev 9) @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<jnlp + spec="1.0+" + codebase="http://patchanim.sourceforge.net/jnlp" + href="patchanim.jnlp"> + <information> + <title>PatchAnim</title> + <vendor>MeBigFatGuy.com</vendor> + <homepage href="http://patchanim.sourceforge.net"/> + <description>Bezier Surface Patch Blend creation tool</description> + <description kind="short">A tool for creating animated color blends based on Bezier Surface patches</description> + <offline-allowed/> + </information> + <security> + <all-permissions/> + </security> + <resources> + <j2se version="1.5+" initial-heap-size="300m" max-heap-size="800m"/> + <jar href="patchanim-0.1.0.jar"/> + </resources> + <application-desc main-class="com.mebigfatguy.patchanim.main.PatchMain"/> +</jnlp> + Property changes on: trunk/patchanim/htdocs/jnlp/patchanim.jnlp ___________________________________________________________________ Name: svn:mime-type + text/jnlp Name: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dbr...@us...> - 2008-01-25 04:55:05
|
Revision: 8 http://patchanim.svn.sourceforge.net/patchanim/?rev=8&view=rev Author: dbrosius Date: 2008-01-24 20:55:10 -0800 (Thu, 24 Jan 2008) Log Message: ----------- website collatoral Added Paths: ----------- trunk/patchanim/htdocs/ trunk/patchanim/htdocs/blend.jpg trunk/patchanim/htdocs/index.html trunk/patchanim/htdocs/vbar.gif Added: trunk/patchanim/htdocs/blend.jpg =================================================================== (Binary files differ) Property changes on: trunk/patchanim/htdocs/blend.jpg ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/patchanim/htdocs/index.html =================================================================== --- trunk/patchanim/htdocs/index.html (rev 0) +++ trunk/patchanim/htdocs/index.html 2008-01-25 04:55:10 UTC (rev 8) @@ -0,0 +1,26 @@ +<html> + <head> + <title>PatchAnim - A Bezier Surface based blend animation tool</title> + </head> + <body background> + <div style="position:absolute;top:0;left:0;width:256;height:65535;z-index:1;background-image:url(blend.jpg);"> + </div> + <div style="position:absolute;top:20;left:20;z-index:2;"> + <h1>PatchAnim</h1> + <hr/> + <a href="http://www.sourceforge.net/projects/patchanim">Project Page</a> + <img src="vbar.gif" height="12"/> + <a href="javadoc/index.html">JavaDoc</a> + <hr/> + + <p>Thanks for your interest in PatchAnim.</p> + <p>This tool generates a series of bitmaps that are color blends calculated from bezier surface patch values, where + the z coordinate of the patch corresponds to the color intensity that is rendered at that u,v parameter. + There are three patches available to tailor, one for red, green and blue, each. These three patches are + combined into one blend. A series of these patches can be created, and then the software creates a tween + between them to get a nicely continuous animated blend.</p> + <p><b>This tool is not finished at this time, it is a work in process.</b></p> + <p><b>Look for a java web start link here in the near future.</b></p> + </div> + </body> +</html> Property changes on: trunk/patchanim/htdocs/index.html ___________________________________________________________________ Name: svn:mime-type + text/html Name: svn:eol-style + native Added: trunk/patchanim/htdocs/vbar.gif =================================================================== (Binary files differ) Property changes on: trunk/patchanim/htdocs/vbar.gif ___________________________________________________________________ Name: svn:mime-type + application/octet-stream This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dbr...@us...> - 2008-01-25 04:46:26
|
Revision: 7 http://patchanim.svn.sourceforge.net/patchanim/?rev=7&view=rev Author: dbrosius Date: 2008-01-24 20:46:31 -0800 (Thu, 24 Jan 2008) Log Message: ----------- LGPL license Added Paths: ----------- trunk/patchanim/license.txt Added: trunk/patchanim/license.txt =================================================================== --- trunk/patchanim/license.txt (rev 0) +++ trunk/patchanim/license.txt 2008-01-25 04:46:31 UTC (rev 7) @@ -0,0 +1,504 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + <one line to give the library's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + <signature of Ty Coon>, 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + Property changes on: trunk/patchanim/license.txt ___________________________________________________________________ Name: svn:mime-type + text/plain Name: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dbr...@us...> - 2008-01-25 04:43:39
|
Revision: 6 http://patchanim.svn.sourceforge.net/patchanim/?rev=6&view=rev Author: dbrosius Date: 2008-01-24 20:43:08 -0800 (Thu, 24 Jan 2008) Log Message: ----------- initial ant project build file Added Paths: ----------- trunk/patchanim/build.xml Added: trunk/patchanim/build.xml =================================================================== --- trunk/patchanim/build.xml (rev 0) +++ trunk/patchanim/build.xml 2008-01-25 04:43:08 UTC (rev 6) @@ -0,0 +1,131 @@ +<!-- +/* + * patchanim - Bezier Blend Batch Animation Builder + * Copyright (C) 2008 Dave Brosius + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + --> + +<project name="patchanim" default="jar"> + + <property file="build.properties"/> + + <property name="src.dir" value="${basedir}/src"/> + <property name="classes.dir" value="${basedir}/classes"/> + <property name="htdocs.dir" value="${basedir}/htdocs"/> + <property name="javadoc.dir" value="${htdocs.dir}/javadoc"/> + <property name="javac.source" value="1.5"/> + <property name="javac.target" value="1.5"/> + <property name="javac.deprecation" value="on"/> + <property name="javac.debug" value="on"/> + + <property name="patchanim.version" value="0.1.0"/> + + <target name="clean" description="removes all generated collateral"> + <delete dir="${classes.dir}"/> + <delete dir="${javadoc.dir}"/> + <delete file="${basedir}/patchanim-${patchanim.version}.jar"/> + <delete file="${basedir}/patchanim-src-${patchanim.version}.zip"/> + </target> + + <target name="-init" description="prepares repository for a build"> + <mkdir dir="${classes.dir}"/> + <mkdir dir="${javadoc.dir}"/> + <path id="patchanim.classpath"> + </path> + </target> + + <target name="compile" depends="-init" description="compiles java files"> + <javac srcdir="${src.dir}" + destdir="${classes.dir}" + source="${javac.source}" + target="${javac.target}" + deprecation="${javac.deprecation}" + debug="${javac.debug}"> + <classpath refid="patchanim.classpath"/> + </javac> + </target> + + <target name="resources" depends="-init" description="copies required files"> + <copy todir="${classes.dir}"> + <fileset dir="${src.dir}"> + <include name="**/*.properties"/> + </fileset> + </copy> + </target> + + <target name="jar" depends="compile, resources" description="produces the patchanim jar file"> + <jar destfile="${basedir}/patchanim-${patchanim.version}.jar"> + <fileset dir="${classes.dir}"> + <include name="**/*.class"/> + <include name="**/*.properties"/> + </fileset> + <fileset dir="${basedir}"> + <include name="license.txt"/> + </fileset> + <manifest> + <attribute name="patchanim-version" value="${patchanim.version}"/> + <attribute name="Main-Class" value="com.mebigfatguy.patchanim.main.PatchMain"/> + </manifest> + </jar> + </target> + + <target name="srczip" description="builds the source distribution zip file"> + <zip destfile="${basedir}/patchanim-src-${patchanim.version}.zip" basedir="${basedir}"> + <fileset dir="${basedir}"> + <include name="**/*.java"/> + <include name="**/*.properties"/> + <include name="**/*.property"/> + </fileset> + </zip> + </target> + + <target name="javadoc" depends="-init" description="build the javadoc for the project"> + <javadoc packagenames="com.mebigfatguy.*" + sourcepath="${src.dir}" + classpathref="patchanim.classpath" + destdir="${javadoc.dir}" + windowtitle="patchanim api"> + <doctitle><![CDATA[<h1>patchanim javadoc</h1>]]></doctitle> + <bottom><![CDATA[<i>Copyright © 2008 MeBigFatGuy.com. All Rights Reserved.</i>]]></bottom> + </javadoc> + </target> + + <target name="test" depends="-init, compile, resources" description="runs unit tests"> + <path id="patchanimtest.classpath"> + <pathelement location="${classes.dir}"/> + </path> + <junit + printsummary="true" + haltonfailure="true" + haltonerror="true" + showoutput="true" + fork="true"> + + <classpath><path refid="patchanimtest.classpath"/></classpath> + <batchtest fork="true"> + <fileset dir="${classes.dir}" + excludes="test/*$*" + includes="test/*"/> + </batchtest> + </junit> + </target> + + <target name="build" depends="clean, -init, compile, resources, test, jar" description="builds the patchanim jar"/> + + <target name="release" depends="build, srczip, javadoc" description="prepares everything for a release"/> + +</project> \ No newline at end of file Property changes on: trunk/patchanim/build.xml ___________________________________________________________________ Name: svn:mime-type + text/xml Name: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |