mirror of
https://github.com/processing/processing4.git
synced 2026-06-16 04:26:26 +02:00
Merge branch 'master' of https://github.com/processing/processing.git
This commit is contained in:
@@ -40,7 +40,7 @@ import processing.app.*;
|
||||
public abstract class LocalContribution extends Contribution {
|
||||
static public final String DELETION_FLAG = "flagged_for_deletion";
|
||||
|
||||
protected String id; // 1
|
||||
protected String id; // 1 (unique id for this library)
|
||||
protected int latestVersion; // 103
|
||||
protected File folder;
|
||||
protected HashMap<String, String> properties;
|
||||
@@ -69,7 +69,9 @@ public abstract class LocalContribution extends Contribution {
|
||||
try {
|
||||
version = Integer.parseInt(properties.get("version"));
|
||||
} catch (NumberFormatException e) {
|
||||
e.printStackTrace();
|
||||
System.err.println("The version number for the “" + name + "” library is not set properly.");
|
||||
System.err.println("Please contact the library author to fix it according to the guidelines.");
|
||||
//e.printStackTrace();
|
||||
}
|
||||
prettyVersion = properties.get("prettyVersion");
|
||||
|
||||
|
||||
@@ -1,3 +1,104 @@
|
||||
PROCESSING 2.0b9 (REV 0217) 18 May 2013
|
||||
|
||||
The 2.0 interface has arrived! Mmm... pretty.
|
||||
|
||||
We've removed Android and JavaScript modes from the default download. You
|
||||
can easily install them by selected "Add Mode" from the Mode menu. They've
|
||||
been removed because the changes have not kept pace with the rest of
|
||||
Processing, and it was holding up the release of 2.0. As separate projects,
|
||||
we hope it'll be easier for volunteers to get involved, rather than our
|
||||
tiny, worn out development team. View the projects here:
|
||||
https://github.com/fjenett/javascript-mode-processing
|
||||
https://github.com/processing/processing-android
|
||||
|
||||
There are also lots of goodies in the new data classes found in the
|
||||
processing.data package that will make it much easier to handle data from
|
||||
inside Processing. More documentation coming soon!
|
||||
|
||||
We're hoping this is the last beta before 2.0, but we're still haggling
|
||||
with one or two issues that could require a beta 10. That's a lot of beta.
|
||||
|
||||
[ fixes ]
|
||||
|
||||
+ Major OutOfMemoryError problem with images fixed by Andres!
|
||||
http://code.google.com/p/processing/issues/detail?id=1353
|
||||
https://github.com/processing/processing/issues/1391
|
||||
|
||||
+ Lots of fixes for the library/mode/tool manager.
|
||||
Repairing colors, layout, etc. along with lots of internal fixes.
|
||||
|
||||
+ Fix MovieMaker, it was completely broken
|
||||
https://github.com/processing/processing/issues/1669
|
||||
|
||||
+ processing-java dialog window was huge
|
||||
https://github.com/processing/processing/issues/1748
|
||||
|
||||
+ Library with bad version number in version causes stack trace to print.
|
||||
Added warning message about it with a pointer to the remedy.
|
||||
|
||||
+ "New version available" mesage is showing HTML tags around it
|
||||
https://github.com/processing/processing/issues/1684
|
||||
|
||||
+ "Update" not working in the manager
|
||||
https://github.com/processing/processing/issues/1701
|
||||
|
||||
+ tint() with JAVA2D does not automatically refresh (with possible fix)
|
||||
https://github.com/processing/processing/issues/1730
|
||||
|
||||
+ Lines not properly renderered in P3D when using ortographic projection
|
||||
https://github.com/processing/processing/issues/1661
|
||||
|
||||
+ Fix JSON and get it working properly. Now official API.
|
||||
https://github.com/processing/processing/issues/1660
|
||||
https://github.com/processing/processing/issues/1680
|
||||
|
||||
+ Plus dozens of other P2D/P3D fixes that Andres snuck in there.
|
||||
|
||||
[ changes ]
|
||||
|
||||
+ New images for modes. New design!
|
||||
|
||||
+ Added loadJSONArray(), loadJSONObject.
|
||||
|
||||
+ Hundreds of changes to the new data classes, sorting out their API, etc.
|
||||
|
||||
+ Fix autoformat to indent like the p5 book/examples. Thanks pif!
|
||||
http://code.google.com/p/processing/issues/detail?id=325
|
||||
https://github.com/processing/processing/issues/364
|
||||
|
||||
+ Removed netscape.javascript stuff that was only relevant for applets
|
||||
|
||||
+ Change error message for libraries (especially serial) for 32- vs 64-bit
|
||||
to clarify that the 32- or 64-bit version of Processing can be used instead.
|
||||
|
||||
+ Rebuilt the internal Runner to use SocketAttach... This may bring up
|
||||
a firewall message on some machines. Don't worry, it's safe (as long as
|
||||
the message is showing up when you hit Run, that's expected).
|
||||
|
||||
+ Add set(x, y) to PVector.
|
||||
|
||||
+ Removed div() and mult() from PVector, since not a legit math operation.
|
||||
https://code.google.com/p/processing/issues/detail?id=1506
|
||||
https://github.com/processing/processing/issues/1544
|
||||
|
||||
+ loadImage() with TGA causing images to be upside-down
|
||||
https://github.com/processing/processing/issues/1682
|
||||
|
||||
+ Added getIntContent(), getFloatContent() to XML
|
||||
|
||||
+ Table switch to CATEGORY instead of CATEGORICAL (not documented)
|
||||
|
||||
+ removed createXML() and createTable()... just use 'new' for these
|
||||
|
||||
+ Add official API for mouse wheel support
|
||||
https://github.com/processing/processing/issues/1461
|
||||
http://code.google.com/p/processing/issues/detail?id=1423
|
||||
|
||||
+ Incorporated JDI changes from Manindra. This makes the download a little
|
||||
larger, but is a step toward being able to have a simpler download that
|
||||
only requires a JRE (and is therefore much smaller!)
|
||||
|
||||
|
||||
PROCESSING 2.0b8 (REV 0216) 24 February 2013
|
||||
|
||||
Dead bugs on the windscreen as we head down the road to 2.0.
|
||||
|
||||
@@ -544,6 +544,7 @@ public class PVector implements Serializable {
|
||||
* @usage web_application
|
||||
* @param n the number to multiply with the vector
|
||||
* @brief Multiply a vector by a scalar or one vector by another
|
||||
* @nowebref
|
||||
*/
|
||||
public void mult(float n) {
|
||||
x *= n;
|
||||
@@ -554,6 +555,7 @@ public class PVector implements Serializable {
|
||||
|
||||
/**
|
||||
* @param v the vector to multiply by the scalar
|
||||
* @nowebref
|
||||
*/
|
||||
static public PVector mult(PVector v, float n) {
|
||||
return mult(v, n, null);
|
||||
@@ -563,6 +565,7 @@ public class PVector implements Serializable {
|
||||
/**
|
||||
* Multiply a vector by a scalar, and write the result into a target PVector.
|
||||
* @param target PVector to store the result
|
||||
* @nowebref
|
||||
*/
|
||||
static public PVector mult(PVector v, float n, PVector target) {
|
||||
if (target == null) {
|
||||
@@ -573,30 +576,6 @@ public class PVector implements Serializable {
|
||||
return target;
|
||||
}
|
||||
|
||||
public void mult(PVector v) {
|
||||
x *= v.x;
|
||||
y *= v.y;
|
||||
z *= v.z;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param v1 the x, y, and z components of a PVector
|
||||
* @param v2 the x, y, and z components of a PVector
|
||||
*/
|
||||
static public PVector mult(PVector v1, PVector v2) {
|
||||
return mult(v1, v2, null);
|
||||
}
|
||||
|
||||
|
||||
static public PVector mult(PVector v1, PVector v2, PVector target) {
|
||||
if (target == null) {
|
||||
target = new PVector(v1.x*v2.x, v1.y*v2.y, v1.z*v2.z);
|
||||
} else {
|
||||
target.set(v1.x*v2.x, v1.y*v2.y, v1.z*v2.z);
|
||||
}
|
||||
return target;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
@@ -610,6 +589,7 @@ public class PVector implements Serializable {
|
||||
* @usage web_application
|
||||
* @param n the value to divide by
|
||||
* @brief Divide a vector by a scalar or one vector by another
|
||||
* @nowebref
|
||||
*/
|
||||
public void div(float n) {
|
||||
x /= n;
|
||||
@@ -623,6 +603,7 @@ public class PVector implements Serializable {
|
||||
* @param v any variable of type PVector
|
||||
* @param n the number to divide with the vector
|
||||
* @return a new vector that is v1 / n
|
||||
* @nowebref
|
||||
*/
|
||||
static public PVector div(PVector v, float n) {
|
||||
return div(v, n, null);
|
||||
@@ -633,6 +614,7 @@ public class PVector implements Serializable {
|
||||
* @param v any variable of type PVector
|
||||
* @param n the number to divide with the vector
|
||||
* @param target PVector to store the result
|
||||
* @nowebref
|
||||
*/
|
||||
static public PVector div(PVector v, float n, PVector target) {
|
||||
if (target == null) {
|
||||
@@ -644,34 +626,6 @@ public class PVector implements Serializable {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Divide each element of one vector by the elements of another vector.
|
||||
*/
|
||||
public void div(PVector v) {
|
||||
x /= v.x;
|
||||
y /= v.y;
|
||||
z /= v.z;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Divide each element of one vector by the individual elements of another
|
||||
* vector, and return the result as a new PVector.
|
||||
*/
|
||||
static public PVector div(PVector v1, PVector v2) {
|
||||
return div(v1, v2, null);
|
||||
}
|
||||
|
||||
static public PVector div(PVector v1, PVector v2, PVector target) {
|
||||
if (target == null) {
|
||||
target = new PVector(v1.x/v2.x, v1.y/v2.y, v1.z/v2.z);
|
||||
} else {
|
||||
target.set(v1.x/v2.x, v1.y/v2.y, v1.z/v2.z);
|
||||
}
|
||||
return target;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* ( begin auto-generated from PVector_dist.xml )
|
||||
*
|
||||
|
||||
@@ -143,9 +143,17 @@ public class StringList implements Iterable<String> {
|
||||
/** Remove all instances of a particular value */
|
||||
public boolean removeValues(String value) {
|
||||
int ii = 0;
|
||||
for (int i = 0; i < count; i++) {
|
||||
if (data[i] != value) {
|
||||
data[ii++] = data[i];
|
||||
if (value == null) {
|
||||
for (int i = 0; i < count; i++) {
|
||||
if (data[i] != null) {
|
||||
data[ii++] = data[i];
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (int i = 0; i < count; i++) {
|
||||
if (!value.equals(data[i])) {
|
||||
data[ii++] = data[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
boolean changed = count == ii;
|
||||
|
||||
+65
-61
@@ -1,5 +1,4 @@
|
||||
0217 core
|
||||
X improve load/save of .gz files with Table, clear up some .bin issues
|
||||
X add set(x, y) to PVector (shiffman)
|
||||
X loadImage() with TGA causing images to be upside-down
|
||||
X https://github.com/processing/processing/issues/1682
|
||||
@@ -23,6 +22,11 @@ X https://github.com/processing/processing/issues/1730
|
||||
X change how updatePixels() is called in PGraphicsJava2D
|
||||
X only call setModified(), not updatePixels() in endDraw()
|
||||
|
||||
andres
|
||||
A lines not properly renderered in P3D when using ortographic projection
|
||||
A https://github.com/processing/processing/issues/1661
|
||||
A "deleted n framebuffer objects"
|
||||
|
||||
earlier
|
||||
X decision on registered methods
|
||||
X remove registerPre() et al
|
||||
@@ -64,24 +68,6 @@ X ref: "negative values if the mouse wheel was rotated up or away from the use
|
||||
X http://docs.oracle.com/javase/6/docs/api/java/awt/event/MouseWheelEvent.html#getWheelRotation()
|
||||
X http://docs.oracle.com/javase/7/docs/api/java/awt/event/MouseWheelEvent.html#getWheelRotation()
|
||||
|
||||
before release
|
||||
_ "deleted n framebuffer objects"
|
||||
_ add options for image.save() (or saveImage?)
|
||||
_ add quality=[0,1] for jpeg images
|
||||
_ add dpi=[0,n] for for png images
|
||||
|
||||
before 2.0
|
||||
_ PImage.loadPixels() shouldn't be calling out to the renderer
|
||||
_ setting image.parent = null for it makes it work again for get().save() case
|
||||
_ PShape should be cached as well
|
||||
|
||||
high
|
||||
_ draw() called again before finishing on OS X (retina issue)
|
||||
_ https://github.com/processing/processing/issues/1709
|
||||
_ Linux sometimes not responding correctly w/ the size() command
|
||||
_ https://github.com/processing/processing/issues/1672
|
||||
|
||||
|
||||
data
|
||||
X are we comfortable with setInt/Float/etc instead of just set(int, blah)
|
||||
X yes, better to have parity
|
||||
@@ -103,40 +89,11 @@ o Dict and List could be interfaces?
|
||||
X "hash.toJSONObject()" or "new JSONObject(hash)"
|
||||
X opted to use "new JSONObject" version, appears less awkward
|
||||
o match? find? on StringList?
|
||||
_ can we use String... for options? or does it screw up the method signature?
|
||||
_ and would we have to always concatenate arrays to prepend extensions, etc
|
||||
_ include Instant and Interval? (or just Time and TimeSpan)
|
||||
_ naming for descending sort
|
||||
_ rsort(), sortReverse(), sortKeysReverse,
|
||||
_ sortDescend, sortDescending, sortKeysDescending,
|
||||
_ sortHighLow, sortHigh, sortHighest, sortDown
|
||||
_ it's going to be File or Reader (mostly BufferedReader) everywhere
|
||||
_ though TableODS needs an InputStream...
|
||||
_ and XML could use InputStream if we hope to be able to reflect doc encoding
|
||||
_ ok, so File, Reader, and InputStream (where needed)
|
||||
_ setMissingXxxx() -> should this live in PApplet? be static?
|
||||
_ cons: static stinks, diff tables might use diff values
|
||||
_ will also need an iterator for the Dict class ala Map.Entry
|
||||
_ using Iterable for rows(), keys(), etc
|
||||
_ generally more efficient for Table, but slower for FloatHash and IntHash
|
||||
_ could use an int array instead, but a bit hokey in places
|
||||
_ Iterable, Iterator, or [] returned for keys(), rows(), etc.
|
||||
_ list, dict, json, table are each more efficient at different things
|
||||
_ keys(), rows(), etc. should return something Iterable
|
||||
_ whether that means an array or an actual Iterator or even a Set
|
||||
_ that way we can do what's most efficient
|
||||
_ then we add keyIterator() and others to handle the other case (deletion)
|
||||
_ blogs.oracle.com/CoreJavaTechTips/entry/using_enhanced_for_loops_with
|
||||
_ means that JSON.keys() -> JSON.keyIterator(), JSON.keySet() -> JSON.keys()
|
||||
_ what should they all return?
|
||||
_ remove -> true/false based on whether it found something?
|
||||
_ remove all -> the number removed?
|
||||
_ List: remove(), append(), index(), etc all use values
|
||||
_ removeIndex(index) is the other
|
||||
_ otherwise remove() would be the only one that dealt with indices
|
||||
_ Dict will use remove(key), so using remove(index) as default
|
||||
_ and removeValue(value) is probably used less
|
||||
_ introduce remap() instead of map() (if not deprecate?)
|
||||
X naming for descending sort
|
||||
o rsort(), sortReverse(), sortKeysReverse,
|
||||
o sortDescend, sortDescending, sortKeysDescending,
|
||||
o sortHighLow, sortHigh, sortHighest, sortDown
|
||||
X sortReverse() is the final decision
|
||||
|
||||
data / document
|
||||
X no save/load for hash and list classes
|
||||
@@ -173,10 +130,9 @@ X hasAttribute in XML, containsKey in java's Map, hasKey in JSON
|
||||
X hasChildren() is another precedent
|
||||
o contains() is nice, but containsKey() is weird, often not 'containing'
|
||||
X hasKey/hasValue is best; fewest changes and most descriptive
|
||||
_ not doing print() methods, since alternatives are more descriptive
|
||||
_ println(obj) and obj.write(System.out) are both better
|
||||
|
||||
json
|
||||
X loadJSONArray, loadJSONObject
|
||||
X getIntArray() for JSONArray
|
||||
X misc bugs with last release
|
||||
X https://github.com/processing/processing/issues/1660
|
||||
@@ -185,7 +141,6 @@ X Dan having trouble with JSON
|
||||
X keys() vs keySet() in JSON..
|
||||
X keys() doesn't iterate, keySet() introduces 'Set' type
|
||||
X parseJSONObject(x) and parseJSONArray(x)
|
||||
_ add indent= as option for JSON save
|
||||
|
||||
table
|
||||
X do we need getColumnType() inside TableRow?
|
||||
@@ -216,6 +171,26 @@ o maybe it's Table.INT since it's for advanced users anyway
|
||||
o problem is loading types from file, no way to access it from code
|
||||
o CATEGORICAL -> CATEGORY? ORDINAL?
|
||||
X add clearRows()
|
||||
X improve load/save of .gz files with Table, clear up some .bin issues
|
||||
|
||||
xml
|
||||
o add nodes() (no) or children() to XML?
|
||||
X not necessary, getChildren() already exists
|
||||
|
||||
before 2.0
|
||||
_ PImage.loadPixels() shouldn't be calling out to the renderer
|
||||
_ setting image.parent = null for it makes it work again for get().save() case
|
||||
_ PShape should be cached as well
|
||||
_ add options for image.save() (or saveImage?)
|
||||
_ add quality=[0,1] for jpeg images
|
||||
_ add dpi=[0,n] for for png images
|
||||
|
||||
high
|
||||
_ draw() called again before finishing on OS X (retina issue)
|
||||
_ https://github.com/processing/processing/issues/1709
|
||||
_ Linux sometimes not responding correctly w/ the size() command
|
||||
_ https://github.com/processing/processing/issues/1672
|
||||
|
||||
_ function that will convert awful CSV to TSV.. or something else?
|
||||
_ maybe to write binary instead? then read the binary file once it's ok?
|
||||
_ if loading from a File object
|
||||
@@ -246,14 +221,43 @@ _ table.join(anotherTable)
|
||||
_ getInt() on categorial to return index?
|
||||
_ getCategories() and getCategory() methods to query names?
|
||||
|
||||
xml
|
||||
o add nodes() (no) or children() to XML?
|
||||
X not necessary, getChildren() already exists
|
||||
data
|
||||
_ add indent= as option for XML save
|
||||
_ add indent= as option for JSON save
|
||||
_ not doing print() methods, since alternatives are more descriptive
|
||||
_ println(obj) and obj.write(System.out) are both better
|
||||
_ can we use String... for options? or does it screw up the method signature?
|
||||
_ and would we have to always concatenate arrays to prepend extensions, etc
|
||||
_ include Instant and Interval? (or just Time and TimeSpan)
|
||||
_ it's going to be File or Reader (mostly BufferedReader) everywhere
|
||||
_ though TableODS needs an InputStream...
|
||||
_ and XML could use InputStream if we hope to be able to reflect doc encoding
|
||||
_ ok, so File, Reader, and InputStream (where needed)
|
||||
_ setMissingXxxx() -> should this live in PApplet? be static?
|
||||
_ cons: static stinks, diff tables might use diff values
|
||||
_ will also need an iterator for the Dict class ala Map.Entry
|
||||
_ using Iterable for rows(), keys(), etc
|
||||
_ generally more efficient for Table, but slower for FloatHash and IntHash
|
||||
_ could use an int array instead, but a bit hokey in places
|
||||
_ Iterable, Iterator, or [] returned for keys(), rows(), etc.
|
||||
_ list, dict, json, table are each more efficient at different things
|
||||
_ keys(), rows(), etc. should return something Iterable
|
||||
_ whether that means an array or an actual Iterator or even a Set
|
||||
_ that way we can do what's most efficient
|
||||
_ then we add keyIterator() and others to handle the other case (deletion)
|
||||
_ blogs.oracle.com/CoreJavaTechTips/entry/using_enhanced_for_loops_with
|
||||
_ means that JSON.keys() -> JSON.keyIterator(), JSON.keySet() -> JSON.keys()
|
||||
_ what should they all return?
|
||||
_ remove -> true/false based on whether it found something?
|
||||
_ remove all -> the number removed?
|
||||
_ List: remove(), append(), index(), etc all use values
|
||||
_ removeIndex(index) is the other
|
||||
_ otherwise remove() would be the only one that dealt with indices
|
||||
_ Dict will use remove(key), so using remove(index) as default
|
||||
_ and removeValue(value) is probably used less
|
||||
_ introduce remap() instead of map() (if not deprecate?)
|
||||
|
||||
andres
|
||||
A lines not properly renderered in P3D when using ortographic projection
|
||||
A https://github.com/processing/processing/issues/1661
|
||||
_ P2D/P3D sketches don't get focus until clicked
|
||||
_ also problem for Java2D when canvas is used?
|
||||
_ need to standardize canvas handling
|
||||
|
||||
@@ -34,6 +34,10 @@ X change line endings on Windows to only be replaced during dist
|
||||
X otherwise marks revisions.txt as changed
|
||||
X processing-java dialog window huge
|
||||
X https://github.com/processing/processing/issues/1748
|
||||
X library with bad version number in version causes stack trace to print
|
||||
X added println warning message about it
|
||||
X update mode images again from Casey
|
||||
o also send pull request for Florian
|
||||
|
||||
manager
|
||||
X "New version available" mesage is showing html tags around it
|
||||
@@ -45,17 +49,6 @@ X get update text to align vertically
|
||||
X "Update" not working in the library manager
|
||||
X https://github.com/processing/processing/issues/1701
|
||||
|
||||
_ move old Google Code SVN back to processing.org
|
||||
_ then cull out the old branches/tags from the Github repo
|
||||
|
||||
_ library with bad version number in version causes crash
|
||||
_ UnsatisfiedLinkError causes huge message...
|
||||
_ error report cleanups haven't been fixed yet
|
||||
_ update mode images again from Casey
|
||||
_ also send pull request for Florian
|
||||
_ remove initRequirements from Base (no longer need JDI)
|
||||
_ move this into Android mode?
|
||||
|
||||
|
||||
2.0 FINAL / new interface
|
||||
_ most of theme probably moves back into lib
|
||||
@@ -210,6 +203,12 @@ _ how to disclose to users?
|
||||
_ only send for items that are part of the public list
|
||||
_ otherwise we're sending private libraries/installs
|
||||
_ although this won't pick up old libraries not on the new system
|
||||
_ move old Google Code SVN back to processing.org
|
||||
_ then cull out the old branches/tags from the Github repo
|
||||
_ UnsatisfiedLinkError causes huge message...
|
||||
_ error report cleanups haven't been fixed yet
|
||||
_ remove initRequirements from Base (no longer need JDI)
|
||||
_ move this into Android mode?
|
||||
|
||||
|
||||
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
|
||||
Reference in New Issue
Block a user