Processingのユーティリティー関数群。

processingのプロジェクトを作るときには、このUtil.pdeを加えてから始めると便利。
glUtil()はopenGLの光の重なり方を、flight404みたいな雰囲気にしてくれる。ってかflight404のブログに載ってた。
アルファを下げると、光が重なってくみたいで綺麗。
vertex(PVector)系は、3次元でVertexを書く際に便利な関数。

Util.pde

import processing.opengl.*;
import javax.media.opengl.*;


PGraphicsOpenGL pgl;
GL gl;

/** flight404 openGLユーティリティー
<PRE>
draw() {
	glUtil();
	~~~~~~hogehoge
	background(0);
	~~~~~~hogehoge
	
}
</PRE>
 */
protected void glUtil() {
	pgl = (PGraphicsOpenGL) g;
	gl = pgl.gl;
	pgl.beginGL();
	gl.glDisable(GL.GL_DEPTH_TEST); // This fixes the overlap issue
	gl.glEnable(GL.GL_BLEND);// Turn on the blend mode
	//gl.glBlendFunc(GL.GL_SRC_ALPHA,GL.GL_ONE); // Define the blend mode
	pgl.endGL();
}

public void capture(char str) {
	if(keyPressed && key == str) {
		saveFrame("data/img-####.png");
		
	}
} 

/** PVector ユーティリティー
@param p vertex point of PVector class
*/
public void vertex(PVector p) {
	vertex(p.x, p.y, p.z);
}
/** Utility for PVector class
@param c1 control 1 of PVector class
@param c2 control 2 of PVector class
@param p point of PVector class
*/
public void bezierVertex(PVector c1, PVector c2, PVector p) {
	bezierVertex(c1.x, c1.y, c1.z, c2.x, c2.y, c2.z, p.x, p.y, p.z);
}
public void curveVertex(PVector p) {
	curveVertex(p.x, p.y, p.z);
}