// // // // // // // // // // // // // // // // // // // // //

3.0 REFERENCE

Note: Don't edit PApplet below ~10400 [10 DEC 2012]
 
All reference issues for 3.0 are going through GitHub:
https://github.com/processing/processing-docs/


// // // // // // // // // // // // // // // // // // // // //

2.0 REFERENCE
  
o TABLE  --SM
  x loadTable()
    x loadTable("somethingorother", "csv");
    x loadTable("somethingorother.csv", "tsv");  // override the .csv extension since the contents are tab delimited
  x saveTable() --SM
  x createTable() --SM
  - other new Table methods
o JSON  --SM
o add new methods for PShape e.g. setStroke(), addChild(), etc.  --CR
o add shape(x, y, z)  --CR
o thread() ??? --CR
x New header graphic
x New splash page / loader graphic
x New 2.0 icons
x potential changes for the PShape methods (endShape(), beginShape())?
x XML  --SM
x New XML from BenFry email (cc to SM)  
  x added parseXML() and saveXML() to PApplet, and "new XML()" and "XML.parse()" will be for advanced users who want to deal with exceptions
  x remove XML.parse() from the reference (it throws an ex), use parseXML() instead
  x new XML(name) throws an ex, use createXML() or appendChild("name")
  x add .format() with the possible parameters to format -1, 0, 2, 4, etc. to define the spacing
  x add .toString(), which is the same as format(2)
x PVector changes  --SM
  x heading2D() changed to heading()
x add clear() in place of background(0, 0, 0, 0), this clears the background, only applicable to off-screen buffers
x get rid of NATIVE_FONT hints
x loadImage("blahthing", "jpg");
x hint(DISABLE_OPTIMIZED_STROKE) --CR
  "is this all that ENABLE_ACCURATE_2D does? Should it just be renamed?"
x Add @see in the source where appropriate, PShape methods need obvious help  --SM
x for functions that load/write a file, make sure this is consistent:
  1) a file in the data folder (or a relative path to it)
  2) an absolute path (something that starts with / on Linux or a drive letter on Windows)
  3) a URL (input only)
x add Server.ip()
  http://code.google.com/p/processing/issues/detail?id=1411
x add beginContour() / endContour() !!!!!
o Will we add PShape.save to save out SVG and OBJ shapes created with the new syntax?
x Updates the keywords file
x arc() with different options
o change "shape" parameter in shape() to "shp" to match "img" in image()
x hide the "source" parameter from the Reference for createShape()
x 835 Improve mouseX, mouseY, pmouseX, pmouseY documentation  --BF
x clarify in reference that getVertex() and setVertex() only work on shapes made manually with the long form of createShape() and not the versions these createShape(RECT, 10, 10, 60, 60)
x clip()/noClip()
x Add to keywords.base
x ENABLE_STROKE_PURE
x DISABLE_DEPTH_MASK
x REPEAT
x CLAMP
x hint() descriptions need to be completed
o saveType(), loadType()
x filter() now accepts shaders, make the change. It's far more efficient, fast
x PShader --CR
  x loadShader()
  x PShader
  x PShader.set()
  x resetShader()
  x shader()
o shape(x, y, z, w, h, d) ???
x loadShape() changes for OBJ ???
x textureWrap(REPEAT)
x blendMode()
x example for textMode() --CR
o beginPGL() --on hold for post 2.0
o endPGL() --on hold for post 2.0
x PShape --CR
x s.beginContour()
x s.endContour()
x s.end()
$ s.addChild()
x s.setVertex()
x s.getVertex();
x s.getVertexCount()
x createShape() -- temp to "include"
o JSON  --SM  // This has been removed for 2.0
x loadXML()  --SM
x XML page isn't being created or showing up in the Index. Check it.
  . Update: Changes to how source is organized; ref engine needs to be modified
x fix PGraphics beginDraw() and endDraw() @brief in source
x quadraticVertex()  --CR
x displayWidth, displayHeight --CR
x selectInput()
x selectOutput()
x selectFolder() 
x Parameter decisions  --BF,CR,SM
x Parameter alignment (after above decisions)  --SM
x size(): renderer parameters shown are P2D and P3D, but this should also list PDF --SM
x PVector: 'z' parameter is incorrectly listed as 'the y coordinate'
		http://code.google.com/p/processing/issues/detail?id=935
o "Find in Reference" for copy() goes to PVector
o XMLElement is not linked for find in ref
x 085 Constants in PConstants not syntax highlighting  --CR
x 250 Details regarding keywords.txt  --CR
x if() and for() don't work, they look for for_.html instead of for.html
x the ? operator is not in find in ref (no ref page either?)
o Update keywords generator script on the site
o   perhaps move this closer to the dev process?
x TRIANGLE_STRIP not highlighted for "find in reference"
x   nor is it listed on the reference page
x   so students can't find the ref for it
x   needs to link TRIANGLE_STRIP to the beginShape() reference
x 200 Need to document NaN and Inf or -Inf for functions that can return them  --CR
x 333 Parameters to filter() and PImage.filter()  --CR
x rounded rect()  --CR
x Broken header links for Distribution
x Better links from Local Reference to online lists of Contributed Tools and Libraries  --CR
x Navigation for Libraries and Tools in Reference is broken  --CR
x PImage's mask() needs an @brief  --CR
x Modify build script to work on Server  --CR
x loadShape() not in index.html  --CR
x New PNG images for reference for smooth() change  --SM
x All in "reviewing_reference.txt" file produced by Cindy  --SM
x image not correct for color(), should not have a stroke  --SM
x look at example for red() to make clearer  --SM
x wrote and added an example to 'null'  --SM
x Add examples to filter() and PImage.filter() for erode() and dilate() methods  --SM
x Fixed PGraphics link to developers reference  --SM
x text() change at least one example to not require loadFont() and describe  --SM
x add two examples for color() to show gray and with colorMode(HSB) --SM
x review "implements" description --SM
x Enhanced descriptions affected by rectMode(), added new examples for each MODE to rectMode() --SM
x Enhanced descriptions affected by ellipseMode(), added new examples for each MODE to ellipseMode() --SM
x Enhanced descriptions affected by imageMode(), added new examples for each MODE to imageMode() --SM
x Didn't add examples of each MODE to textureMode() (they were already there!), but clarified the description  --SM
x Created examples for normal(), lightFalloff(), and createInput()  --SM
x General writing and style clean-up: check the comments in all examples to make sure:  --SM
x	variable names are put in single quotes (not double quotes!)
x	println values are put in double quotes
x Add as related to each other: specular() and lightSpecular() --SM
x Add as related to each other: ellipse() and arc() --SM
x Add ">>" as related to each of these: red(), blue(), green() --SM
x Add redraw() and frameRate() as related to draw() --SM
x Make sure hex(), unhex(), binary() and unbinary() are all related --SM
x Add "implements" as related to "extends" --SM
x Add concat() as related to arrayCopy() and vice versa --SM
x To text(), add as related: rectMode() and fill() --SM
o Correct all "Related" links  --SM
	Requires additional editing work in the .java files:
	$ For the functions inside PGraphics and PImage, the Related links aren't working, 
	they are linking to the full link including the class name. For example see 
	web/distribution/arc_.html and see the links in Related this needs to be fixed on a 
	per-function basis by including the correct @see tags
	@see PApplet#imageMode( int ) will reference the core function
	@see PGraphics#imageMode( int ) will reference the PGraphics method
	I corrected this for PImage.html by editing the comments in PImage.java
x Add @see_external links where appropriate  --SM
    note: use is with the file naming convention for simplicity
	also helps clarify that these links are to files
	will search in both the base and include/ directories
	for libraries @see_external LIB_serial/serialEvent
    e.g.
	@see_external String
	@see_external String_charAt
	etc.
	See PGraphics#text() and net.Client for examples of use

Key:
- To do
$ In progress
o N/A anymore
x Done


// // // // // // // // // // // // // // // // // // // // //

2.0 DOCUMENTATION 

x New IDE image for About page and Environment page  --CR
o Prepare one-page document explaining Processing, 2.0 changes for new About page  --CR
x Page about Foundation, including Patrons

  DONE
x Syntax highlighting (see major Issues above)  --CR
x Documentation for "Add Library..." / "Add Tool..." / "Add Mode..."  --CR
x Environment  --CR
o   New IDE Image
x   Add JavaScript and Android Modes (NOTE: Need to change terminology for Drawing "Modes")
x   Change to "active" and "static" mode for draw() and without
x   Modify menu descriptions for 2.0 final menus
x Add section for Preferences

Key:
- To do
$ In progress
o N/A anymore
x Done


// // // // // // // // // // // // // // // // // // // // //

2.0 EXAMPLES

THIS SECTION MOVED INTO THE GITHUB ISSUES

o Table  --DS,JT
o New Minim Examples --CR, Damien
o Modify Capture examples to use new setup API

  NICE
o Interaction examples need to improve
o More with proper typography in OpenGL, meaning textMode(SHAPE) in OpenGL  --CR
o Custom font examples using loadFont()  --CR
o New JavaScript Examples  --FJ,CR
o New PDF w/ typography  --CR,BF
o Syntax highlighting for Example code online --FJ

  DONE
x 2 David Muth examples  --CR
x Move "Directory List" to File IO category  --CR
o PGL
o new JSON? -- DS,JT
x New PVector  --DS
x New PShape  --DS
o add stringIntPair to Hashmap  --DS  // Ben is still sorting out this API
x New P3D  --CR,DS,AC
x New Regex  --DS
x Analyze PVector in examples  --DS
x thread() example  --DS
x new saveFrame() for recording example --DS (oops there is already a SavingManyImages example)
x New XML --DS (where should these go?  File IO?)
x Remove super.stop() and stop() from examples -- CR, MINIM
o New GUI  --DS
x Scrollbar example needs new images that fit the new size and the @pjs directive  --CR
x Mention examples are running with Processing.js  --CR
x Remove "there are more examples" from individual pages and put in Index  --CR
x Library examples missing from site  --CR
x Follow up with Processing.js team regarding Example ports  --CR
o Remove extra "f" from Java floats  --CR
x Modify build script to work on Server to build Web examples  --CR
x Cull OpenGL  --CR
x All P2D and P3D must be removed from examples  --CR
x Rework/edit/resize all existing examples  --CR
x Modify examples for Processing.js  --CR
x Emphasize createFont() over loadFont()  --CR

Key:
- To do
$ In progress
o N/A anymore
x Done


// // // // // // // // // // // // // // // // // // // // //

2.0 TUTORIAL  --XXX

  NEED
$ Data --DS
$ Processing.js  --DS,FJ (need info for processing's credits from Dave Humphries)
x Shaders --AC/DS

  NICE
- New Generics  --DS
- New Regex --DS


Key:
- To do
$ In progress
o N/A anymore
x Done

  DONE
x new PShape --DS
x New P3D  --DS (CR to help with links and images, needs one diagram)
x update Strings and Text re: createFont() --DS
x Update Eclipse  --DS
x New Android  --DS, JT
x Update Getting Started for 2.0  --CR
x   New PDE drawing / image
x   Antialiased circle
x Tutorial CSS  --CR
x Update Processing Overview for 2.0  --CR
  WIKI TUTORIALS
  x update thread tutorial with thread() function --DS
  x fix exception tutorial with loadStrings() --DS
  x common errors --DS


// // // // // // // // // // // // // // // // // // // // //

MORE

- Look through 404 issues on the site  --FJ

DONE
x JavaScript reference integration on Processing.org  --FJ,CR
x JavaScript example integration on Processing.org  --FJ,CR
x Hire freelance to enhance tutorial figures  --CR

// // // // // // // // // // // // // // // // // // // // //

2.0 REFERENCE ENGINE (COMPLETE, SEE ABOVE FOR RELATED TODO)

Various folks, probably:
Requires additional editing work in the .java files:
$ For the functions inside PGraphics and PImage, the Related links aren't working, they are linking to the full
  link including the class name. For example see web/distribution/arc_.html and see the links in Related
	this needs to be fixed on a per-function basis by including the correct @see tags
	@see PApplet#imageMode( int ) will reference the core function
	@see PGraphics#imageMode( int ) will reference the PGraphics method
	I corrected this for PImage.html by editing the comments in PImage.java

DAVID

x How to make a reference for captureEvent() etc in the Libraries
	will approach with .xml files, like include/ for boolean/true/while/etc.
	Complete list of functions not found in libraries:
		1.Video
			Everything in "Capture Class", "Video Events"
			Capture shows up
			need captureEvent
		2. Serial
			serialEvent()
		3. Network
			All "Network Events"
	The script now checks all the .xml files for the library and will write out html for ones that haven't been documented through source code
	
x web_application is not inserted consistently into entries. I'm in favor of removing the Usage 
  category entirely from the HTML. It doesn't scale to other modes and I think it's better to have
  this listed in the description, it's such an uncommon occurance for only Web or Application or
  JavaScript to be supported.
	"Usage" removed from html
			
x Variable types that include 'boolean[], byte[], char[], int[], float[], or String[]' are not displaying correctly in the Parameters section:
	e.g. shorten(), splice(), and sort()
	*parameter types are being omitted
	*Also happens in libraries e.g. Network Library - Server Class - write()
	Multiple parameters now properly displaying in reference
	Also using Oxford commas in lists of parameters and return types
	e.g. 	int, float, or String
		int or PImage

x (nicety) add @see_external tag for linking to xml content
	note:	use is with the file naming convention for simplicity
		also helps clarify that these links are to files
		will search in both the base and include/ directories
		for libraries @see_external LIB_serial/serialEvent
	e.g.
	@see_external String
	@see_external String_charAt
	etc.
	See PGraphics#text() and net.Client for examples of use

x 'Related' links now try to link to methods within the same class if possible (regardless of how typed in). Should only link to files that exist.

x for() and while() 

x The <!-- classanchor --> tag is not working for files in "includes", see web/distribution/String_indexOf_.html as an example
  This only affects PrintWriter, BufferedReader, String, the only in "includes" with methods

x Everything in "includes" HTML files has a Class field at the top of the HTML (except classes are correct)
  See web/distribution/false.html for an example.
	removed instances of "class Structure" and the like
x PGraphics and PImage (root classes) aren't getting documented, although their methods are
	this was a side-effect of an attempt to fix the above, no longer an issue
	
x 'long' appearing in reference when it should be 'int' e.g. randomSeed(long) and noiseSeed(long)
	this was due to using the actual parameter type in reference
	now replacing 'long' with 'int' in all reference materials
	also replacing 'double' with 'float'
	types are being filtered through the BaseWriter::getSimplifiedType() method
x Alphabetical Index file is incorrectly alphabetized (for people) and should break at letter changes (e.g. between A and B)
  Capital letters should be integrated with the lowercase letters, rather than at the beginning.
	Implemented a custom Comparator for alphabetization. Now human-style
x Alphabetical index is incorrectly showing class methods
	Need to remove String_charAt_ and other methods from the alphabetical index (they don't appear in categories)

// // // // // // // // // // // // // // // // // // // // //

o New application icon, load screen, site header (do we want this?)  --CR,FJ,BF
x Check all page header images for gray values  --CR

// // // // // // // // // // // // // // // // // // // // //

Key:
- To do
$ In progress
o N/A anymore
x Done


// // // // // // // // // // // // // // // // // // // // //

2.0 Press Release Ideas - CR, BF
- /js
- Arduino
- Khan
- Sketchpad
- Processing 1+ was downloaded over one million times

// // // // // // // // // // // // // // // // // // // // //

3.0 GUI

The idea would be to replace what's covered by showMessageDialog and showOptionDialog here: http://docs.oracle.com/javase/tutorial/uiswing/components/dialog.html
It could also cover the rename things, which would be showInputDialog, though that wasn't the intent. File stuff would definitely be out. Something to replace Base.showWarning() and Base.showMessage(). And an optional “[ ] Don't show this warning again” to boot.

Apple GUI Guidelines:
http://developer.apple.com/library/mac/#documentation/UserExperience/Conceptual/AppleHIGuidelines/Windows/Windows.html


// // // // // // // // // // // // // // // // // // // // //

3.0 REFERENCE

- attrib() // or attribute()
- Disambiguation pages for things like "copy" in PImage and PVector
- Is there a way to catch for keywords like "run" and "init" in the parser?

- Request  --CR
  - createRequest()
  - request.getBytes() 
  - request.getFont() 
  - request.getImage()  
  - request.getShader()  
  - request.getShape()  
  - request.getStrings()  
  - request.getTable() 
  - request.getXML() 

//

beginShape();

fill(203, 100, 44);
attrib("fuzziness", 0.5);
vertex(40, 30, 20);

fill(200, 141, 100);
attrib("fuzziness", 0.4);
vertex(30, 20 30);

// .. and so on

endShape();

Explained another way, it's as if we didn't have things like fill or stroke or whatever, and had to write them like:

attrib("fill", 203, 100, 44);

Anyhow… something to dream about for the future. Andres had brought it up since you have two setters with a shader: uniforms and attributes. We make uniforms available via PShader.set(), but we don't need/include a PShader.setAttribute() because it has to be collected by the renderer, then passed to the shader as a big array before rendering (i.e. there'd be a hidden PShader.setAttributeData("fuzziness", fuzzyArray) that's used by PGraphicsOpenGL).

//

