1
0
mirror of https://github.com/arduino/Arduino.git synced 2024-12-04 15:24:12 +01:00
Arduino/build/javadoc/everything/processing/core/PGraphics3D.html

3326 lines
150 KiB
HTML
Raw Normal View History

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<TITLE>
PGraphics3D
</TITLE>
<META NAME="keywords" CONTENT="processing.core.PGraphics3D class">
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
<SCRIPT type="text/javascript">
function windowTitle()
{
parent.document.title="PGraphics3D";
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>
</HEAD>
<BODY BGCOLOR="white" onload="windowTitle();">
<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../processing/core/PGraphics2D.html" title="class in processing.core"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../processing/core/PGraphicsJava2D.html" title="class in processing.core"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../index.html?processing/core/PGraphics3D.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="PGraphics3D.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->
<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
processing.core</FONT>
<BR>
Class PGraphics3D</H2>
<PRE>
java.lang.Object
<IMG SRC="../../resources/inherit.gif" ALT="extended by "><A HREF="../../processing/core/PImage.html" title="class in processing.core">processing.core.PImage</A>
<IMG SRC="../../resources/inherit.gif" ALT="extended by "><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">processing.core.PGraphics</A>
<IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>processing.core.PGraphics3D</B>
</PRE>
<DL>
<DT><B>All Implemented Interfaces:</B> <DD>java.lang.Cloneable, <A HREF="../../processing/core/PConstants.html" title="interface in processing.core">PConstants</A></DD>
</DL>
<DL>
<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../processing/opengl/PGraphicsOpenGL.html" title="class in processing.opengl">PGraphicsOpenGL</A>, <A HREF="../../processing/dxf/RawDXF.html" title="class in processing.dxf">RawDXF</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public class <B>PGraphics3D</B><DT>extends <A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></DL>
</PRE>
<P>
Subclass of PGraphics that handles 3D rendering.
It can render 3D inside a browser window and requires no plug-ins.
<p/>
The renderer is mostly set up based on the structure of the OpenGL API,
if you have questions about specifics that aren't covered here,
look for reference on the OpenGL implementation of a similar feature.
<p/>
Lighting and camera implementation by Simon Greenwold.
<P>
<P>
<HR>
<P>
<!-- =========== FIELD SUMMARY =========== -->
<A NAME="field_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Field Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../processing/core/PMatrix3D.html" title="class in processing.core">PMatrix3D</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#camera">camera</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The camera matrix, the modelview will be set to this on beginDraw.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;float</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#cameraAspect">cameraAspect</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Aspect ratio of camera's view.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;float</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#cameraFar">cameraFar</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;float</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#cameraFOV">cameraFOV</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Camera field of view.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;float</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#cameraNear">cameraNear</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;float</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#cameraX">cameraX</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Position of the camera.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;float</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#cameraY">cameraY</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Position of the camera.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;float</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#cameraZ">cameraZ</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Position of the camera.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;float</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#currentLightFalloffConstant">currentLightFalloffConstant</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Current light falloff</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;float</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#currentLightFalloffLinear">currentLightFalloffLinear</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;float</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#currentLightFalloffQuadratic">currentLightFalloffQuadratic</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;float[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#currentLightSpecular">currentLightSpecular</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Current specular color for lighting</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#lightCount">lightCount</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;float[][]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#lightDiffuse">lightDiffuse</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Diffuse colors for lights.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;float[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#lightFalloffConstant">lightFalloffConstant</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Light falloff</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;float[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#lightFalloffLinear">lightFalloffLinear</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;float[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#lightFalloffQuadratic">lightFalloffQuadratic</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../processing/core/PVector.html" title="class in processing.core">PVector</A>[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#lightNormal">lightNormal</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Light direction (normalized vector)</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../processing/core/PVector.html" title="class in processing.core">PVector</A>[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#lightPosition">lightPosition</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Light positions</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;float[][]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#lightSpecular">lightSpecular</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specular colors for lights.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;float[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#lightSpotAngle">lightSpotAngle</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Light spot angle</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;float[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#lightSpotAngleCos">lightSpotAngleCos</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cosine of light spot angle</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;float[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#lightSpotConcentration">lightSpotConcentration</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Light spot concentration</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#lightType">lightType</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Light types</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../processing/core/PLine.html" title="class in processing.core">PLine</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#line">line</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#MAX_LIGHTS">MAX_LIGHTS</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Maximum lights by default is 8, which is arbitrary for this renderer,
but is the minimum defined by OpenGL</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../processing/core/PMatrix3D.html" title="class in processing.core">PMatrix3D</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#modelview">modelview</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The modelview matrix.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../processing/core/PMatrix3D.html" title="class in processing.core">PMatrix3D</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#modelviewInv">modelviewInv</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inverse modelview matrix, used for lighting.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../processing/core/PMatrix3D.html" title="class in processing.core">PMatrix3D</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#projection">projection</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Current projection matrix.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../processing/core/PSmoothTriangle.html" title="class in processing.core">PSmoothTriangle</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#smoothTriangle">smoothTriangle</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Used for anti-aliased and perspective corrected rendering.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#TRI_COLOR_COUNT">TRI_COLOR_COUNT</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#TRI_DIFFUSE_A">TRI_DIFFUSE_A</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#TRI_DIFFUSE_B">TRI_DIFFUSE_B</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#TRI_DIFFUSE_G">TRI_DIFFUSE_G</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#TRI_DIFFUSE_R">TRI_DIFFUSE_R</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#TRI_SPECULAR_B">TRI_SPECULAR_B</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#TRI_SPECULAR_G">TRI_SPECULAR_G</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#TRI_SPECULAR_R">TRI_SPECULAR_R</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../processing/core/PTriangle.html" title="class in processing.core">PTriangle</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#triangle">triangle</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;float[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#zbuffer">zbuffer</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The depth buffer.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="fields_inherited_from_class_processing.core.PGraphics"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Fields inherited from class processing.core.<A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../processing/core/PGraphics.html#ambientB">ambientB</A>, <A HREF="../../processing/core/PGraphics.html#ambientG">ambientG</A>, <A HREF="../../processing/core/PGraphics.html#ambientR">ambientR</A>, <A HREF="../../processing/core/PGraphics.html#backgroundColor">backgroundColor</A>, <A HREF="../../processing/core/PGraphics.html#bezierDetail">bezierDetail</A>, <A HREF="../../processing/core/PGraphics.html#colorMode">colorMode</A>, <A HREF="../../processing/core/PGraphics.html#colorModeA">colorModeA</A>, <A HREF="../../processing/core/PGraphics.html#colorModeX">colorModeX</A>, <A HREF="../../processing/core/PGraphics.html#colorModeY">colorModeY</A>, <A HREF="../../processing/core/PGraphics.html#colorModeZ">colorModeZ</A>, <A HREF="../../processing/core/PGraphics.html#curveTightness">curveTightness</A>, <A HREF="../../processing/core/PGraphics.html#edge">edge</A>, <A HREF="../../processing/core/PGraphics.html#ellipseMode">ellipseMode</A>, <A HREF="../../processing/core/PGraphics.html#emissiveB">emissiveB</A>, <A HREF="../../processing/core/PGraphics.html#emissiveG">emissiveG</A>, <A HREF="../../processing/core/PGraphics.html#emissiveR">emissiveR</A>, <A HREF="../../processing/core/PGraphics.html#fill">fill</A>, <A HREF="../../processing/core/PGraphics.html#fillColor">fillColor</A>, <A HREF="../../processing/core/PGraphics.html#image">image</A>, <A HREF="../../processing/core/PGraphics.html#imageMode">imageMode</A>, <A HREF="../../processing/core/PGraphics.html#normalX">normalX</A>, <A HREF="../../processing/core/PGraphics.html#normalY">normalY</A>, <A HREF="../../processing/core/PGraphics.html#normalZ">normalZ</A>, <A HREF="../../processing/core/PGraphics.html#pixelCount">pixelCount</A>, <A HREF="../../processing/core/PGraphics.html#rectMode">rectMode</A>, <A HREF="../../processing/core/PGraphics.html#shapeMode">shapeMode</A>, <A HREF="../../processing/core/PGraphics.html#shininess">shininess</A>, <A HREF="../../processing/core/PGraphics.html#smooth">smooth</A>, <A HREF="../../processing/core/PGraphics.html#specularB">specularB</A>, <A HREF="../../processing/core/PGraphics.html#specularG">specularG</A>, <A HREF="../../processing/core/PGraphics.html#specularR">specularR</A>, <A HREF="../../processing/core/PGraphics.html#sphereDetailU">sphereDetailU</A>, <A HREF="../../processing/core/PGraphics.html#sphereDetailV">sphereDetailV</A>, <A HREF="../../processing/core/PGraphics.html#stroke">stroke</A>, <A HREF="../../processing/core/PGraphics.html#strokeCap">strokeCap</A>, <A HREF="../../processing/core/PGraphics.html#strokeColor">strokeColor</A>, <A HREF="../../processing/core/PGraphics.html#strokeJoin">strokeJoin</A>, <A HREF="../../processing/core/PGraphics.html#strokeWeight">strokeWeight</A>, <A HREF="../../processing/core/PGraphics.html#textAlign">textAlign</A>, <A HREF="../../processing/core/PGraphics.html#textAlignY">textAlignY</A>, <A HREF="../../processing/core/PGraphics.html#textFont">textFont</A>, <A HREF="../../processing/core/PGraphics.html#textLeading">textLeading</A>, <A HREF="../../processing/core/PGraphics.html#textMode">textMode</A>, <A HREF="../../processing/core/PGraphics.html#textSize">textSize</A>, <A HREF="../../processing/core/PGraphics.html#textureImage">textureImage</A>, <A HREF="../../processing/core/PGraphics.html#textureMode">textureMode</A>, <A HREF="../../processing/core/PGraphics.html#textureU">textureU</A>, <A HREF="../../processing/core/PGraphics.html#textureV">textureV</A>, <A HREF="../../processing/core/PGraphics.html#tint">tint</A>, <A HREF="../../processing/core/PGraphics.html#tintColor">tintColor</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="fields_inherited_from_class_processing.core.PImage"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Fields inherited from class processing.core.<A HREF="../../processing/core/PImage.html" title="class in processing.core">PImage</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../processing/core/PImage.html#format">format</A>, <A HREF="../../processing/core/PImage.html#height">height</A>, <A HREF="../../processing/core/PImage.html#parent">parent</A>, <A HREF="../../processing/core/PImage.html#pixels">pixels</A>, <A HREF="../../processing/core/PImage.html#width">width</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="fields_inherited_from_class_processing.core.PConstants"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Fields inherited from interface processing.core.<A HREF="../../processing/core/PConstants.html" title="interface in processing.core">PConstants</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../processing/core/PConstants.html#A">A</A>, <A HREF="../../processing/core/PConstants.html#AB">AB</A>, <A HREF="../../processing/core/PConstants.html#ADD">ADD</A>, <A HREF="../../processing/core/PConstants.html#AG">AG</A>, <A HREF="../../processing/core/PConstants.html#ALPHA">ALPHA</A>, <A HREF="../../processing/core/PConstants.html#ALPHA_MASK">ALPHA_MASK</A>, <A HREF="../../processing/core/PConstants.html#ALT">ALT</A>, <A HREF="../../processing/core/PConstants.html#AMBIENT">AMBIENT</A>, <A HREF="../../processing/core/PConstants.html#AR">AR</A>, <A HREF="../../processing/core/PConstants.html#ARC">ARC</A>, <A HREF="../../processing/core/PConstants.html#ARGB">ARGB</A>, <A HREF="../../processing/core/PConstants.html#ARROW">ARROW</A>, <A HREF="../../processing/core/PConstants.html#B">B</A>, <A HREF="../../processing/core/PConstants.html#BACKSPACE">BACKSPACE</A>, <A HREF="../../processing/core/PConstants.html#BASELINE">BASELINE</A>, <A HREF="../../processing/core/PConstants.html#BEEN_LIT">BEEN_LIT</A>, <A HREF="../../processing/core/PConstants.html#BEVEL">BEVEL</A>, <A HREF="../../processing/core/PConstants.html#BLEND">BLEND</A>, <A HREF="../../processing/core/PConstants.html#BLUE_MASK">BLUE_MASK</A>, <A HREF="../../processing/core/PConstants.html#BLUR">BLUR</A>, <A HREF="../../processing/core/PConstants.html#BOTTOM">BOTTOM</A>, <A HREF="../../processing/core/PConstants.html#BOX">BOX</A>, <A HREF="../../processing/core/PConstants.html#BURN">BURN</A>, <A HREF="../../processing/core/PConstants.html#CENTER">CENTER</A>, <A HREF="../../processing/core/PConstants.html#CENTER_DIAMETER">CENTER_DIAMETER</A>, <A HREF="../../processing/core/PConstants.html#CENTER_RADIUS">CENTER_RADIUS</A>, <A HREF="../../processing/core/PConstants.html#CHATTER">CHATTER</A>, <A HREF="../../processing/core/PConstants.html#CLOSE">CLOSE</A>, <A HREF="../../processing/core/PConstants.html#CMYK">CMYK</A>, <A HREF="../../processing/core/PConstants.html#CODED">CODED</A>, <A HREF="../../processing/core/PConstants.html#COMPLAINT">COMPLAINT</A>, <A HREF="../../processing/core/PConstants.html#CONTROL">CONTROL</A>, <A HREF="../../processing/core/PConstants.html#CORNER">CORNER</A>, <A HREF="../../processing/core/PConstants.html#CORNERS">CORNERS</A>, <A HREF="../../processing/core/PConstants.html#CROSS">CROSS</A>, <A HREF="../../processing/core/PConstants.html#CUSTOM">CUSTOM</A>, <A HREF="../../processing/core/PConstants.html#DA">DA</A>, <A HREF="../../processing/core/PConstants.html#DARKEST">DARKEST</A>, <A HREF="../../processing/core/PConstants.html#DB">DB</A>, <A HREF="../../processing/core/PConstants.html#DEG_TO_RAD">DEG_TO_RAD</A>, <A HREF="../../processing/core/PConstants.html#DELETE">DELETE</A>, <A HREF="../../processing/core/PConstants.html#DG">DG</A>, <A HREF="../../processing/core/PConstants.html#DIAMETER">DIAMETER</A>, <A HREF="../../processing/core/PConstants.html#DIFFERENCE">DIFFERENCE</A>, <A HREF="../../processing/core/PConstants.html#DILATE">DILATE</A>, <A HREF="../../processing/core/PConstants.html#DIRECTIONAL">DIRECTIONAL</A>, <A HREF="../../processing/core/PConstants.html#DISABLE_ACCURATE_TEXTURES">DISABLE_ACCURATE_TEXTURES</A>, <A HREF="../../processing/core/PConstants.html#DISABLE_DEPTH_SORT">DISABLE_DEPTH_SORT</A>, <A HREF="../../processing/core/PConstants.html#DISABLE_DEPTH_TEST">DISABLE_DEPTH_TEST</A>, <A HREF="../../processing/core/PConstants.html#DISABLE_OPENGL_2X_SMOOTH">DISABLE_OPENGL_2X_SMOOTH</A>, <A HREF="../../processing/core/PConstants.html#DISABLE_OPENGL_ERROR_REPORT">DISABLE_OPENGL_ERROR_REPORT</A>, <A HREF="../../processing/core/PConstants.html#DODGE">DODGE</A>, <A HREF="../../processing/core/PConstants.html#DOWN">DOWN</A>, <A HREF="../../processing/core/PConstants.html#DR">DR</A>, <A HREF="../../processing/core/PConstants.html#DXF">DXF</A>, <A HREF="../../processing/core/PConstants.html#EB">EB</A>, <A HREF="../../processing/core/PConstants.html#EDGE">EDGE</A>, <A HREF="../../processing/core/PConstants.html#EG">EG</A>, <A HREF="../../processing/core/PConstants.html#ELLIPSE">ELLIPSE</A>, <A HREF="../../process
</TR>
</TABLE>
&nbsp;
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<A NAME="constructor_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Constructor Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#PGraphics3D()">PGraphics3D</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->
<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#ambientLight(float, float, float)">ambientLight</A></B>(float&nbsp;r,
float&nbsp;g,
float&nbsp;b)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add an ambient light based on the current color mode.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#ambientLight(float, float, float, float, float, float)">ambientLight</A></B>(float&nbsp;r,
float&nbsp;g,
float&nbsp;b,
float&nbsp;x,
float&nbsp;y,
float&nbsp;z)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add an ambient light based on the current color mode.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#applyMatrix(float, float, float, float, float, float)">applyMatrix</A></B>(float&nbsp;n00,
float&nbsp;n01,
float&nbsp;n02,
float&nbsp;n10,
float&nbsp;n11,
float&nbsp;n12)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Apply a 3x2 affine transformation matrix.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#applyMatrix(float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float)">applyMatrix</A></B>(float&nbsp;n00,
float&nbsp;n01,
float&nbsp;n02,
float&nbsp;n03,
float&nbsp;n10,
float&nbsp;n11,
float&nbsp;n12,
float&nbsp;n13,
float&nbsp;n20,
float&nbsp;n21,
float&nbsp;n22,
float&nbsp;n23,
float&nbsp;n30,
float&nbsp;n31,
float&nbsp;n32,
float&nbsp;n33)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Apply a 4x4 transformation matrix.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#applyMatrix(processing.core.PMatrix2D)">applyMatrix</A></B>(<A HREF="../../processing/core/PMatrix2D.html" title="class in processing.core">PMatrix2D</A>&nbsp;source)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#applyMatrix(processing.core.PMatrix3D)">applyMatrix</A></B>(<A HREF="../../processing/core/PMatrix3D.html" title="class in processing.core">PMatrix3D</A>&nbsp;source)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#beginCamera()">beginCamera</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set matrix mode to the camera matrix (instead of the current
transformation matrix).</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#beginDraw()">beginDraw</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Prepares the PGraphics for drawing.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#beginShape(int)">beginShape</A></B>(int&nbsp;kind)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Start a new shape.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#box(float, float, float)">box</A></B>(float&nbsp;w,
float&nbsp;h,
float&nbsp;d)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#camera()">camera</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set camera to the default settings.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#camera(float, float, float, float, float, float, float, float, float)">camera</A></B>(float&nbsp;eyeX,
float&nbsp;eyeY,
float&nbsp;eyeZ,
float&nbsp;centerX,
float&nbsp;centerY,
float&nbsp;centerZ,
float&nbsp;upX,
float&nbsp;upY,
float&nbsp;upZ)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;More flexible method for dealing with camera().</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#directionalLight(float, float, float, float, float, float)">directionalLight</A></B>(float&nbsp;r,
float&nbsp;g,
float&nbsp;b,
float&nbsp;nx,
float&nbsp;ny,
float&nbsp;nz)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#endCamera()">endCamera</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Record the current settings into the camera matrix, and set
the matrix mode back to the current transformation matrix.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#endDraw()">endDraw</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;See notes in PGraphics.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#endShape(int)">endShape</A></B>(int&nbsp;mode)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#flush()">flush</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Emit any sorted geometry that's been collected on this frame.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#frustum(float, float, float, float, float, float)">frustum</A></B>(float&nbsp;left,
float&nbsp;right,
float&nbsp;bottom,
float&nbsp;top,
float&nbsp;znear,
float&nbsp;zfar)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Same as glFrustum(), except that it wipes out (rather than
multiplies against) the current perspective matrix.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../processing/core/PMatrix.html" title="interface in processing.core">PMatrix</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#getMatrix()">getMatrix</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../processing/core/PMatrix3D.html" title="class in processing.core">PMatrix3D</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#getMatrix(processing.core.PMatrix3D)">getMatrix</A></B>(<A HREF="../../processing/core/PMatrix3D.html" title="class in processing.core">PMatrix3D</A>&nbsp;target)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Copy the current transformation matrix into the specified target.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#hint(int)">hint</A></B>(int&nbsp;which)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Enable a hint option.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#is2D()">is2D</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return true if this renderer supports 2D drawing.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#is3D()">is3D</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return true if this renderer supports 2D drawing.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#lightFalloff(float, float, float)">lightFalloff</A></B>(float&nbsp;constant,
float&nbsp;linear,
float&nbsp;quadratic)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the light falloff rates for the last light that was created.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#lights()">lights</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets up an ambient and directional light.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#lightSpecular(float, float, float)">lightSpecular</A></B>(float&nbsp;x,
float&nbsp;y,
float&nbsp;z)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the specular color of the last light created.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;float</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#modelX(float, float, float)">modelX</A></B>(float&nbsp;x,
float&nbsp;y,
float&nbsp;z)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the model space x value for an x, y, z coordinate.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;float</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#modelY(float, float, float)">modelY</A></B>(float&nbsp;x,
float&nbsp;y,
float&nbsp;z)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the model space y value for an x, y, z coordinate.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;float</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#modelZ(float, float, float)">modelZ</A></B>(float&nbsp;x,
float&nbsp;y,
float&nbsp;z)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the model space z value for an x, y, z coordinate.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#noLights()">noLights</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Turn off all lights.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#noSmooth()">noSmooth</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Disable smoothing.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#ortho()">ortho</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Calls ortho() with the proper parameters for Processing's
standard orthographic projection.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#ortho(float, float, float, float, float, float)">ortho</A></B>(float&nbsp;left,
float&nbsp;right,
float&nbsp;bottom,
float&nbsp;top,
float&nbsp;near,
float&nbsp;far)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Similar to gluOrtho(), but wipes out the current projection matrix.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#perspective()">perspective</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Calls perspective() with Processing's standard coordinate projection.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#perspective(float, float, float, float)">perspective</A></B>(float&nbsp;fov,
float&nbsp;aspect,
float&nbsp;zNear,
float&nbsp;zFar)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Similar to gluPerspective().</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#pointLight(float, float, float, float, float, float)">pointLight</A></B>(float&nbsp;r,
float&nbsp;g,
float&nbsp;b,
float&nbsp;x,
float&nbsp;y,
float&nbsp;z)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#popMatrix()">popMatrix</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Replace the current transformation matrix with the top of the stack.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#printCamera()">printCamera</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print the current camera matrix.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#printMatrix()">printMatrix</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print the current model (or "transformation") matrix.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#printProjection()">printProjection</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print the current projection matrix.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#pushMatrix()">pushMatrix</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Push a copy of the current transformation matrix onto the stack.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#resetMatrix()">resetMatrix</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the current transformation matrix to identity.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#rotate(float)">rotate</A></B>(float&nbsp;angle)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Two dimensional rotation.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#rotate(float, float, float, float)">rotate</A></B>(float&nbsp;angle,
float&nbsp;v0,
float&nbsp;v1,
float&nbsp;v2)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Rotate around an arbitrary vector, similar to glRotate(),
except that it takes radians (instead of degrees).</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#rotateX(float)">rotateX</A></B>(float&nbsp;angle)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Rotate around the X axis.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#rotateY(float)">rotateY</A></B>(float&nbsp;angle)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Rotate around the Y axis.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#rotateZ(float)">rotateZ</A></B>(float&nbsp;angle)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Rotate around the Z axis.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#scale(float)">scale</A></B>(float&nbsp;s)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Same as scale(s, s, s).</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#scale(float, float)">scale</A></B>(float&nbsp;sx,
float&nbsp;sy)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Same as scale(sx, sy, 1).</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#scale(float, float, float)">scale</A></B>(float&nbsp;x,
float&nbsp;y,
float&nbsp;z)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Scale in three dimensions.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;float</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#screenX(float, float)">screenX</A></B>(float&nbsp;x,
float&nbsp;y)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Given an x and y coordinate, returns the x position of where
that point would be placed on screen, once affected by translate(),
scale(), or any other transformations.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;float</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#screenX(float, float, float)">screenX</A></B>(float&nbsp;x,
float&nbsp;y,
float&nbsp;z)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Maps a three dimensional point to its placement on-screen.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;float</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#screenY(float, float)">screenY</A></B>(float&nbsp;x,
float&nbsp;y)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Given an x and y coordinate, returns the y position of where
that point would be placed on screen, once affected by translate(),
scale(), or any other transformations.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;float</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#screenY(float, float, float)">screenY</A></B>(float&nbsp;x,
float&nbsp;y,
float&nbsp;z)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Maps a three dimensional point to its placement on-screen.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;float</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#screenZ(float, float, float)">screenZ</A></B>(float&nbsp;x,
float&nbsp;y,
float&nbsp;z)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Maps a three dimensional point to its placement on-screen.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#setMatrix(processing.core.PMatrix2D)">setMatrix</A></B>(<A HREF="../../processing/core/PMatrix2D.html" title="class in processing.core">PMatrix2D</A>&nbsp;source)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the current transformation to the contents of the specified source.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#setMatrix(processing.core.PMatrix3D)">setMatrix</A></B>(<A HREF="../../processing/core/PMatrix3D.html" title="class in processing.core">PMatrix3D</A>&nbsp;source)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the current transformation to the contents of the specified source.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#setSize(int, int)">setSize</A></B>(int&nbsp;iwidth,
int&nbsp;iheight)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Called in response to a resize event, handles setting the
new width and height internally, as well as re-allocating
the pixel buffer for the new size.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#smooth()">smooth</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If true in PImage, use bilinear interpolation for copy()
operations.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#sphere(float)">sphere</A></B>(float&nbsp;r)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draw a sphere with radius r centered at coordinate 0, 0, 0.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#spotLight(float, float, float, float, float, float, float, float, float, float, float)">spotLight</A></B>(float&nbsp;r,
float&nbsp;g,
float&nbsp;b,
float&nbsp;x,
float&nbsp;y,
float&nbsp;z,
float&nbsp;nx,
float&nbsp;ny,
float&nbsp;nz,
float&nbsp;angle,
float&nbsp;concentration)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#strokeCap(int)">strokeCap</A></B>(int&nbsp;cap)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#strokeJoin(int)">strokeJoin</A></B>(int&nbsp;join)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#texture(processing.core.PImage)">texture</A></B>(<A HREF="../../processing/core/PImage.html" title="class in processing.core">PImage</A>&nbsp;image)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set texture image for current shape.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#translate(float, float)">translate</A></B>(float&nbsp;tx,
float&nbsp;ty)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Translate in X and Y.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#translate(float, float, float)">translate</A></B>(float&nbsp;tx,
float&nbsp;ty,
float&nbsp;tz)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Translate in X, Y, and Z.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#vertex(float, float)">vertex</A></B>(float&nbsp;x,
float&nbsp;y)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/core/PGraphics3D.html#vertex(float, float, float, float)">vertex</A></B>(float&nbsp;x,
float&nbsp;y,
float&nbsp;u,
float&nbsp;v)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_processing.core.PGraphics"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class processing.core.<A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../processing/core/PGraphics.html#alpha(int)">alpha</A>, <A HREF="../../processing/core/PGraphics.html#ambient(float)">ambient</A>, <A HREF="../../processing/core/PGraphics.html#ambient(float, float, float)">ambient</A>, <A HREF="../../processing/core/PGraphics.html#ambient(int)">ambient</A>, <A HREF="../../processing/core/PGraphics.html#applyMatrix(processing.core.PMatrix)">applyMatrix</A>, <A HREF="../../processing/core/PGraphics.html#arc(float, float, float, float, float, float)">arc</A>, <A HREF="../../processing/core/PGraphics.html#background(float)">background</A>, <A HREF="../../processing/core/PGraphics.html#background(float, float)">background</A>, <A HREF="../../processing/core/PGraphics.html#background(float, float, float)">background</A>, <A HREF="../../processing/core/PGraphics.html#background(float, float, float, float)">background</A>, <A HREF="../../processing/core/PGraphics.html#background(int)">background</A>, <A HREF="../../processing/core/PGraphics.html#background(int, float)">background</A>, <A HREF="../../processing/core/PGraphics.html#background(processing.core.PImage)">background</A>, <A HREF="../../processing/core/PGraphics.html#beginRaw(processing.core.PGraphics)">beginRaw</A>, <A HREF="../../processing/core/PGraphics.html#beginShape()">beginShape</A>, <A HREF="../../processing/core/PGraphics.html#bezier(float, float, float, float, float, float, float, float)">bezier</A>, <A HREF="../../processing/core/PGraphics.html#bezier(float, float, float, float, float, float, float, float, float, float, float, float)">bezier</A>, <A HREF="../../processing/core/PGraphics.html#bezierDetail(int)">bezierDetail</A>, <A HREF="../../processing/core/PGraphics.html#bezierPoint(float, float, float, float, float)">bezierPoint</A>, <A HREF="../../processing/core/PGraphics.html#bezierTangent(float, float, float, float, float)">bezierTangent</A>, <A HREF="../../processing/core/PGraphics.html#bezierVertex(float, float, float, float, float, float)">bezierVertex</A>, <A HREF="../../processing/core/PGraphics.html#bezierVertex(float, float, float, float, float, float, float, float, float)">bezierVertex</A>, <A HREF="../../processing/core/PGraphics.html#blue(int)">blue</A>, <A HREF="../../processing/core/PGraphics.html#box(float)">box</A>, <A HREF="../../processing/core/PGraphics.html#breakShape()">breakShape</A>, <A HREF="../../processing/core/PGraphics.html#brightness(int)">brightness</A>, <A HREF="../../processing/core/PGraphics.html#canDraw()">canDraw</A>, <A HREF="../../processing/core/PGraphics.html#color(float)">color</A>, <A HREF="../../processing/core/PGraphics.html#color(float, float)">color</A>, <A HREF="../../processing/core/PGraphics.html#color(float, float, float)">color</A>, <A HREF="../../processing/core/PGraphics.html#color(float, float, float, float)">color</A>, <A HREF="../../processing/core/PGraphics.html#color(int)">color</A>, <A HREF="../../processing/core/PGraphics.html#color(int, float)">color</A>, <A HREF="../../processing/core/PGraphics.html#color(int, int)">color</A>, <A HREF="../../processing/core/PGraphics.html#color(int, int, int)">color</A>, <A HREF="../../processing/core/PGraphics.html#color(int, int, int, int)">color</A>, <A HREF="../../processing/core/PGraphics.html#colorMode(int)">colorMode</A>, <A HREF="../../processing/core/PGraphics.html#colorMode(int, float)">colorMode</A>, <A HREF="../../processing/core/PGraphics.html#colorMode(int, float, float, float)">colorMode</A>, <A HREF="../../processing/core/PGraphics.html#colorMode(int, float, float, float, float)">colorMode</A>, <A HREF="../../processing/core/PGraphics.html#curve(float, float, float, float, float, float, float, float)">curve</A>, <A HREF="../../processing/core/PGraphics.html#curve(float, float, float, float, float, float, float, float, float, float, float, float)">curve</A>, <A HREF="../../processing/core/PGraphics.html#curveDetail(int)">curveDetail</A>, <A HREF="../../processing/core/PGraphics.html#curvePoint(float, float, float, float, float)">curvePoint</A>, <A HREF="../../processing/core/PGraphics.ht
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_processing.core.PImage"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class processing.core.<A HREF="../../processing/core/PImage.html" title="class in processing.core">PImage</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../processing/core/PImage.html#blend(int, int, int, int, int, int, int, int, int)">blend</A>, <A HREF="../../processing/core/PImage.html#blend(processing.core.PImage, int, int, int, int, int, int, int, int, int)">blend</A>, <A HREF="../../processing/core/PImage.html#blendColor(int, int, int)">blendColor</A>, <A HREF="../../processing/core/PImage.html#clone()">clone</A>, <A HREF="../../processing/core/PImage.html#copy(int, int, int, int, int, int, int, int)">copy</A>, <A HREF="../../processing/core/PImage.html#copy(processing.core.PImage, int, int, int, int, int, int, int, int)">copy</A>, <A HREF="../../processing/core/PImage.html#filter(int)">filter</A>, <A HREF="../../processing/core/PImage.html#filter(int, float)">filter</A>, <A HREF="../../processing/core/PImage.html#get()">get</A>, <A HREF="../../processing/core/PImage.html#get(int, int)">get</A>, <A HREF="../../processing/core/PImage.html#get(int, int, int, int)">get</A>, <A HREF="../../processing/core/PImage.html#getCache(java.lang.Object)">getCache</A>, <A HREF="../../processing/core/PImage.html#getImage()">getImage</A>, <A HREF="../../processing/core/PImage.html#init(int, int, int)">init</A>, <A HREF="../../processing/core/PImage.html#isModified()">isModified</A>, <A HREF="../../processing/core/PImage.html#loadPixels()">loadPixels</A>, <A HREF="../../processing/core/PImage.html#mask(int[])">mask</A>, <A HREF="../../processing/core/PImage.html#mask(processing.core.PImage)">mask</A>, <A HREF="../../processing/core/PImage.html#removeCache(java.lang.Object)">removeCache</A>, <A HREF="../../processing/core/PImage.html#resize(int, int)">resize</A>, <A HREF="../../processing/core/PImage.html#save(java.lang.String)">save</A>, <A HREF="../../processing/core/PImage.html#set(int, int, int)">set</A>, <A HREF="../../processing/core/PImage.html#set(int, int, processing.core.PImage)">set</A>, <A HREF="../../processing/core/PImage.html#setCache(java.lang.Object, java.lang.Object)">setCache</A>, <A HREF="../../processing/core/PImage.html#setModified()">setModified</A>, <A HREF="../../processing/core/PImage.html#setModified(boolean)">setModified</A>, <A HREF="../../processing/core/PImage.html#updatePixels()">updatePixels</A>, <A HREF="../../processing/core/PImage.html#updatePixels(int, int, int, int)">updatePixels</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>
<!-- ============ FIELD DETAIL =========== -->
<A NAME="field_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Field Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="zbuffer"><!-- --></A><H3>
zbuffer</H3>
<PRE>
public float[] <B>zbuffer</B></PRE>
<DL>
<DD>The depth buffer.
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="modelview"><!-- --></A><H3>
modelview</H3>
<PRE>
public <A HREF="../../processing/core/PMatrix3D.html" title="class in processing.core">PMatrix3D</A> <B>modelview</B></PRE>
<DL>
<DD>The modelview matrix.
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="modelviewInv"><!-- --></A><H3>
modelviewInv</H3>
<PRE>
public <A HREF="../../processing/core/PMatrix3D.html" title="class in processing.core">PMatrix3D</A> <B>modelviewInv</B></PRE>
<DL>
<DD>Inverse modelview matrix, used for lighting.
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="camera"><!-- --></A><H3>
camera</H3>
<PRE>
public <A HREF="../../processing/core/PMatrix3D.html" title="class in processing.core">PMatrix3D</A> <B>camera</B></PRE>
<DL>
<DD>The camera matrix, the modelview will be set to this on beginDraw.
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="cameraFOV"><!-- --></A><H3>
cameraFOV</H3>
<PRE>
public float <B>cameraFOV</B></PRE>
<DL>
<DD>Camera field of view.
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="cameraX"><!-- --></A><H3>
cameraX</H3>
<PRE>
public float <B>cameraX</B></PRE>
<DL>
<DD>Position of the camera.
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="cameraY"><!-- --></A><H3>
cameraY</H3>
<PRE>
public float <B>cameraY</B></PRE>
<DL>
<DD>Position of the camera.
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="cameraZ"><!-- --></A><H3>
cameraZ</H3>
<PRE>
public float <B>cameraZ</B></PRE>
<DL>
<DD>Position of the camera.
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="cameraNear"><!-- --></A><H3>
cameraNear</H3>
<PRE>
public float <B>cameraNear</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>
<A NAME="cameraFar"><!-- --></A><H3>
cameraFar</H3>
<PRE>
public float <B>cameraFar</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>
<A NAME="cameraAspect"><!-- --></A><H3>
cameraAspect</H3>
<PRE>
public float <B>cameraAspect</B></PRE>
<DL>
<DD>Aspect ratio of camera's view.
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="projection"><!-- --></A><H3>
projection</H3>
<PRE>
public <A HREF="../../processing/core/PMatrix3D.html" title="class in processing.core">PMatrix3D</A> <B>projection</B></PRE>
<DL>
<DD>Current projection matrix.
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="MAX_LIGHTS"><!-- --></A><H3>
MAX_LIGHTS</H3>
<PRE>
public static final int <B>MAX_LIGHTS</B></PRE>
<DL>
<DD>Maximum lights by default is 8, which is arbitrary for this renderer,
but is the minimum defined by OpenGL
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#processing.core.PGraphics3D.MAX_LIGHTS">Constant Field Values</A></DL>
</DL>
<HR>
<A NAME="lightCount"><!-- --></A><H3>
lightCount</H3>
<PRE>
public int <B>lightCount</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>
<A NAME="lightType"><!-- --></A><H3>
lightType</H3>
<PRE>
public int[] <B>lightType</B></PRE>
<DL>
<DD>Light types
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="lightPosition"><!-- --></A><H3>
lightPosition</H3>
<PRE>
public <A HREF="../../processing/core/PVector.html" title="class in processing.core">PVector</A>[] <B>lightPosition</B></PRE>
<DL>
<DD>Light positions
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="lightNormal"><!-- --></A><H3>
lightNormal</H3>
<PRE>
public <A HREF="../../processing/core/PVector.html" title="class in processing.core">PVector</A>[] <B>lightNormal</B></PRE>
<DL>
<DD>Light direction (normalized vector)
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="lightFalloffConstant"><!-- --></A><H3>
lightFalloffConstant</H3>
<PRE>
public float[] <B>lightFalloffConstant</B></PRE>
<DL>
<DD>Light falloff
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="lightFalloffLinear"><!-- --></A><H3>
lightFalloffLinear</H3>
<PRE>
public float[] <B>lightFalloffLinear</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>
<A NAME="lightFalloffQuadratic"><!-- --></A><H3>
lightFalloffQuadratic</H3>
<PRE>
public float[] <B>lightFalloffQuadratic</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>
<A NAME="lightSpotAngle"><!-- --></A><H3>
lightSpotAngle</H3>
<PRE>
public float[] <B>lightSpotAngle</B></PRE>
<DL>
<DD>Light spot angle
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="lightSpotAngleCos"><!-- --></A><H3>
lightSpotAngleCos</H3>
<PRE>
public float[] <B>lightSpotAngleCos</B></PRE>
<DL>
<DD>Cosine of light spot angle
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="lightSpotConcentration"><!-- --></A><H3>
lightSpotConcentration</H3>
<PRE>
public float[] <B>lightSpotConcentration</B></PRE>
<DL>
<DD>Light spot concentration
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="lightDiffuse"><!-- --></A><H3>
lightDiffuse</H3>
<PRE>
public float[][] <B>lightDiffuse</B></PRE>
<DL>
<DD>Diffuse colors for lights.
For an ambient light, this will hold the ambient color.
Internally these are stored as numbers between 0 and 1.
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="lightSpecular"><!-- --></A><H3>
lightSpecular</H3>
<PRE>
public float[][] <B>lightSpecular</B></PRE>
<DL>
<DD>Specular colors for lights.
Internally these are stored as numbers between 0 and 1.
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="currentLightSpecular"><!-- --></A><H3>
currentLightSpecular</H3>
<PRE>
public float[] <B>currentLightSpecular</B></PRE>
<DL>
<DD>Current specular color for lighting
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="currentLightFalloffConstant"><!-- --></A><H3>
currentLightFalloffConstant</H3>
<PRE>
public float <B>currentLightFalloffConstant</B></PRE>
<DL>
<DD>Current light falloff
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="currentLightFalloffLinear"><!-- --></A><H3>
currentLightFalloffLinear</H3>
<PRE>
public float <B>currentLightFalloffLinear</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>
<A NAME="currentLightFalloffQuadratic"><!-- --></A><H3>
currentLightFalloffQuadratic</H3>
<PRE>
public float <B>currentLightFalloffQuadratic</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>
<A NAME="TRI_DIFFUSE_R"><!-- --></A><H3>
TRI_DIFFUSE_R</H3>
<PRE>
public static final int <B>TRI_DIFFUSE_R</B></PRE>
<DL>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#processing.core.PGraphics3D.TRI_DIFFUSE_R">Constant Field Values</A></DL>
</DL>
<HR>
<A NAME="TRI_DIFFUSE_G"><!-- --></A><H3>
TRI_DIFFUSE_G</H3>
<PRE>
public static final int <B>TRI_DIFFUSE_G</B></PRE>
<DL>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#processing.core.PGraphics3D.TRI_DIFFUSE_G">Constant Field Values</A></DL>
</DL>
<HR>
<A NAME="TRI_DIFFUSE_B"><!-- --></A><H3>
TRI_DIFFUSE_B</H3>
<PRE>
public static final int <B>TRI_DIFFUSE_B</B></PRE>
<DL>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#processing.core.PGraphics3D.TRI_DIFFUSE_B">Constant Field Values</A></DL>
</DL>
<HR>
<A NAME="TRI_DIFFUSE_A"><!-- --></A><H3>
TRI_DIFFUSE_A</H3>
<PRE>
public static final int <B>TRI_DIFFUSE_A</B></PRE>
<DL>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#processing.core.PGraphics3D.TRI_DIFFUSE_A">Constant Field Values</A></DL>
</DL>
<HR>
<A NAME="TRI_SPECULAR_R"><!-- --></A><H3>
TRI_SPECULAR_R</H3>
<PRE>
public static final int <B>TRI_SPECULAR_R</B></PRE>
<DL>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#processing.core.PGraphics3D.TRI_SPECULAR_R">Constant Field Values</A></DL>
</DL>
<HR>
<A NAME="TRI_SPECULAR_G"><!-- --></A><H3>
TRI_SPECULAR_G</H3>
<PRE>
public static final int <B>TRI_SPECULAR_G</B></PRE>
<DL>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#processing.core.PGraphics3D.TRI_SPECULAR_G">Constant Field Values</A></DL>
</DL>
<HR>
<A NAME="TRI_SPECULAR_B"><!-- --></A><H3>
TRI_SPECULAR_B</H3>
<PRE>
public static final int <B>TRI_SPECULAR_B</B></PRE>
<DL>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#processing.core.PGraphics3D.TRI_SPECULAR_B">Constant Field Values</A></DL>
</DL>
<HR>
<A NAME="TRI_COLOR_COUNT"><!-- --></A><H3>
TRI_COLOR_COUNT</H3>
<PRE>
public static final int <B>TRI_COLOR_COUNT</B></PRE>
<DL>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#processing.core.PGraphics3D.TRI_COLOR_COUNT">Constant Field Values</A></DL>
</DL>
<HR>
<A NAME="smoothTriangle"><!-- --></A><H3>
smoothTriangle</H3>
<PRE>
public <A HREF="../../processing/core/PSmoothTriangle.html" title="class in processing.core">PSmoothTriangle</A> <B>smoothTriangle</B></PRE>
<DL>
<DD>Used for anti-aliased and perspective corrected rendering.
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="line"><!-- --></A><H3>
line</H3>
<PRE>
public <A HREF="../../processing/core/PLine.html" title="class in processing.core">PLine</A> <B>line</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>
<A NAME="triangle"><!-- --></A><H3>
triangle</H3>
<PRE>
public <A HREF="../../processing/core/PTriangle.html" title="class in processing.core">PTriangle</A> <B>triangle</B></PRE>
<DL>
<DL>
</DL>
</DL>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<A NAME="constructor_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Constructor Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="PGraphics3D()"><!-- --></A><H3>
PGraphics3D</H3>
<PRE>
public <B>PGraphics3D</B>()</PRE>
<DL>
</DL>
<!-- ============ METHOD DETAIL ========== -->
<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="setSize(int, int)"><!-- --></A><H3>
setSize</H3>
<PRE>
public void <B>setSize</B>(int&nbsp;iwidth,
int&nbsp;iheight)</PRE>
<DL>
<DD>Called in response to a resize event, handles setting the
new width and height internally, as well as re-allocating
the pixel buffer for the new size.
Note that this will nuke any cameraMode() settings.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#setSize(int, int)">setSize</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="beginDraw()"><!-- --></A><H3>
beginDraw</H3>
<PRE>
public void <B>beginDraw</B>()</PRE>
<DL>
<DD><B>Description copied from class: <CODE><A HREF="../../processing/core/PGraphics.html#beginDraw()">PGraphics</A></CODE></B></DD>
<DD>Prepares the PGraphics for drawing.
<p/>
When creating your own PGraphics, you should call this before
drawing anything.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#beginDraw()">beginDraw</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="endDraw()"><!-- --></A><H3>
endDraw</H3>
<PRE>
public void <B>endDraw</B>()</PRE>
<DL>
<DD>See notes in PGraphics.
If z-sorting has been turned on, then the triangles will
all be quicksorted here (to make alpha work more properly)
and then blit to the screen.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#endDraw()">endDraw</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="hint(int)"><!-- --></A><H3>
hint</H3>
<PRE>
public void <B>hint</B>(int&nbsp;which)</PRE>
<DL>
<DD><B>Description copied from class: <CODE><A HREF="../../processing/core/PGraphics.html#hint(int)">PGraphics</A></CODE></B></DD>
<DD>Enable a hint option.
<P>
For the most part, hints are temporary api quirks,
for which a proper api hasn't been properly worked out.
for instance SMOOTH_IMAGES existed because smooth()
wasn't yet implemented, but it will soon go away.
<P>
They also exist for obscure features in the graphics
engine, like enabling/disabling single pixel lines
that ignore the zbuffer, the way they do in alphabot.
<P>
Current hint options:
<UL>
<LI><TT>DISABLE_DEPTH_TEST</TT> -
turns off the z-buffer in the P3D or OPENGL renderers.
</UL>
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#hint(int)">hint</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="beginShape(int)"><!-- --></A><H3>
beginShape</H3>
<PRE>
public void <B>beginShape</B>(int&nbsp;kind)</PRE>
<DL>
<DD><B>Description copied from class: <CODE><A HREF="../../processing/core/PGraphics.html#beginShape(int)">PGraphics</A></CODE></B></DD>
<DD>Start a new shape.
<P>
<B>Differences between beginShape() and line() and point() methods.</B>
<P>
beginShape() is intended to be more flexible at the expense of being
a little more complicated to use. it handles more complicated shapes
that can consist of many connected lines (so you get joins) or lines
mixed with curves.
<P>
The line() and point() command are for the far more common cases
(particularly for our audience) that simply need to draw a line
or a point on the screen.
<P>
From the code side of things, line() may or may not call beginShape()
to do the drawing. In the beta code, they do, but in the alpha code,
they did not. they might be implemented one way or the other depending
on tradeoffs of runtime efficiency vs. implementation efficiency &mdash
meaning the speed that things run at vs. the speed it takes me to write
the code and maintain it. for beta, the latter is most important so
that's how things are implemented.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#beginShape(int)">beginShape</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="texture(processing.core.PImage)"><!-- --></A><H3>
texture</H3>
<PRE>
public void <B>texture</B>(<A HREF="../../processing/core/PImage.html" title="class in processing.core">PImage</A>&nbsp;image)</PRE>
<DL>
<DD><B>Description copied from class: <CODE><A HREF="../../processing/core/PGraphics.html#texture(processing.core.PImage)">PGraphics</A></CODE></B></DD>
<DD>Set texture image for current shape.
Needs to be called between @see beginShape and @see endShape
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#texture(processing.core.PImage)">texture</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>image</CODE> - reference to a PImage object</DL>
</DD>
</DL>
<HR>
<A NAME="vertex(float, float)"><!-- --></A><H3>
vertex</H3>
<PRE>
public void <B>vertex</B>(float&nbsp;x,
float&nbsp;y)</PRE>
<DL>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#vertex(float, float)">vertex</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="vertex(float, float, float, float)"><!-- --></A><H3>
vertex</H3>
<PRE>
public void <B>vertex</B>(float&nbsp;x,
float&nbsp;y,
float&nbsp;u,
float&nbsp;v)</PRE>
<DL>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#vertex(float, float, float, float)">vertex</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="endShape(int)"><!-- --></A><H3>
endShape</H3>
<PRE>
public void <B>endShape</B>(int&nbsp;mode)</PRE>
<DL>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#endShape(int)">endShape</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="flush()"><!-- --></A><H3>
flush</H3>
<PRE>
public void <B>flush</B>()</PRE>
<DL>
<DD>Emit any sorted geometry that's been collected on this frame.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#flush()">flush</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="box(float, float, float)"><!-- --></A><H3>
box</H3>
<PRE>
public void <B>box</B>(float&nbsp;w,
float&nbsp;h,
float&nbsp;d)</PRE>
<DL>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#box(float, float, float)">box</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="sphere(float)"><!-- --></A><H3>
sphere</H3>
<PRE>
public void <B>sphere</B>(float&nbsp;r)</PRE>
<DL>
<DD><B>Description copied from class: <CODE><A HREF="../../processing/core/PGraphics.html#sphere(float)">PGraphics</A></CODE></B></DD>
<DD>Draw a sphere with radius r centered at coordinate 0, 0, 0.
<P>
Implementation notes:
<P>
cache all the points of the sphere in a static array
top and bottom are just a bunch of triangles that land
in the center point
<P>
sphere is a series of concentric circles who radii vary
along the shape, based on, er.. cos or something
<PRE>
[toxi 031031] new sphere code. removed all multiplies with
radius, as scale() will take care of that anyway
[toxi 031223] updated sphere code (removed modulos)
and introduced sphereAt(x,y,z,r)
to avoid additional translate()'s on the user/sketch side
[davbol 080801] now using separate sphereDetailU/V
</PRE>
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#sphere(float)">sphere</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="smooth()"><!-- --></A><H3>
smooth</H3>
<PRE>
public void <B>smooth</B>()</PRE>
<DL>
<DD><B>Description copied from class: <CODE><A HREF="../../processing/core/PGraphics.html#smooth()">PGraphics</A></CODE></B></DD>
<DD>If true in PImage, use bilinear interpolation for copy()
operations. When inherited by PGraphics, also controls shapes.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#smooth()">smooth</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="noSmooth()"><!-- --></A><H3>
noSmooth</H3>
<PRE>
public void <B>noSmooth</B>()</PRE>
<DL>
<DD><B>Description copied from class: <CODE><A HREF="../../processing/core/PGraphics.html#noSmooth()">PGraphics</A></CODE></B></DD>
<DD>Disable smoothing. See smooth().
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#noSmooth()">noSmooth</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="pushMatrix()"><!-- --></A><H3>
pushMatrix</H3>
<PRE>
public void <B>pushMatrix</B>()</PRE>
<DL>
<DD><B>Description copied from class: <CODE><A HREF="../../processing/core/PGraphics.html#pushMatrix()">PGraphics</A></CODE></B></DD>
<DD>Push a copy of the current transformation matrix onto the stack.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#pushMatrix()">pushMatrix</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="popMatrix()"><!-- --></A><H3>
popMatrix</H3>
<PRE>
public void <B>popMatrix</B>()</PRE>
<DL>
<DD><B>Description copied from class: <CODE><A HREF="../../processing/core/PGraphics.html#popMatrix()">PGraphics</A></CODE></B></DD>
<DD>Replace the current transformation matrix with the top of the stack.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#popMatrix()">popMatrix</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="translate(float, float)"><!-- --></A><H3>
translate</H3>
<PRE>
public void <B>translate</B>(float&nbsp;tx,
float&nbsp;ty)</PRE>
<DL>
<DD><B>Description copied from class: <CODE><A HREF="../../processing/core/PGraphics.html#translate(float, float)">PGraphics</A></CODE></B></DD>
<DD>Translate in X and Y.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#translate(float, float)">translate</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="translate(float, float, float)"><!-- --></A><H3>
translate</H3>
<PRE>
public void <B>translate</B>(float&nbsp;tx,
float&nbsp;ty,
float&nbsp;tz)</PRE>
<DL>
<DD><B>Description copied from class: <CODE><A HREF="../../processing/core/PGraphics.html#translate(float, float, float)">PGraphics</A></CODE></B></DD>
<DD>Translate in X, Y, and Z.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#translate(float, float, float)">translate</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="rotate(float)"><!-- --></A><H3>
rotate</H3>
<PRE>
public void <B>rotate</B>(float&nbsp;angle)</PRE>
<DL>
<DD>Two dimensional rotation. Same as rotateZ (this is identical
to a 3D rotation along the z-axis) but included for clarity --
it'd be weird for people drawing 2D graphics to be using rotateZ.
And they might kick our a-- for the confusion.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#rotate(float)">rotate</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="rotateX(float)"><!-- --></A><H3>
rotateX</H3>
<PRE>
public void <B>rotateX</B>(float&nbsp;angle)</PRE>
<DL>
<DD><B>Description copied from class: <CODE><A HREF="../../processing/core/PGraphics.html#rotateX(float)">PGraphics</A></CODE></B></DD>
<DD>Rotate around the X axis.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#rotateX(float)">rotateX</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="rotateY(float)"><!-- --></A><H3>
rotateY</H3>
<PRE>
public void <B>rotateY</B>(float&nbsp;angle)</PRE>
<DL>
<DD><B>Description copied from class: <CODE><A HREF="../../processing/core/PGraphics.html#rotateY(float)">PGraphics</A></CODE></B></DD>
<DD>Rotate around the Y axis.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#rotateY(float)">rotateY</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="rotateZ(float)"><!-- --></A><H3>
rotateZ</H3>
<PRE>
public void <B>rotateZ</B>(float&nbsp;angle)</PRE>
<DL>
<DD><B>Description copied from class: <CODE><A HREF="../../processing/core/PGraphics.html#rotateZ(float)">PGraphics</A></CODE></B></DD>
<DD>Rotate around the Z axis.
The functions rotate() and rotateZ() are identical, it's just that it make
sense to have rotate() and then rotateX() and rotateY() when using 3D;
nor does it make sense to use a function called rotateZ() if you're only
doing things in 2D. so we just decided to have them both be the same.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#rotateZ(float)">rotateZ</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="rotate(float, float, float, float)"><!-- --></A><H3>
rotate</H3>
<PRE>
public void <B>rotate</B>(float&nbsp;angle,
float&nbsp;v0,
float&nbsp;v1,
float&nbsp;v2)</PRE>
<DL>
<DD>Rotate around an arbitrary vector, similar to glRotate(),
except that it takes radians (instead of degrees).
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#rotate(float, float, float, float)">rotate</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="scale(float)"><!-- --></A><H3>
scale</H3>
<PRE>
public void <B>scale</B>(float&nbsp;s)</PRE>
<DL>
<DD>Same as scale(s, s, s).
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#scale(float)">scale</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="scale(float, float)"><!-- --></A><H3>
scale</H3>
<PRE>
public void <B>scale</B>(float&nbsp;sx,
float&nbsp;sy)</PRE>
<DL>
<DD>Same as scale(sx, sy, 1).
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#scale(float, float)">scale</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="scale(float, float, float)"><!-- --></A><H3>
scale</H3>
<PRE>
public void <B>scale</B>(float&nbsp;x,
float&nbsp;y,
float&nbsp;z)</PRE>
<DL>
<DD>Scale in three dimensions.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#scale(float, float, float)">scale</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="resetMatrix()"><!-- --></A><H3>
resetMatrix</H3>
<PRE>
public void <B>resetMatrix</B>()</PRE>
<DL>
<DD><B>Description copied from class: <CODE><A HREF="../../processing/core/PGraphics.html#resetMatrix()">PGraphics</A></CODE></B></DD>
<DD>Set the current transformation matrix to identity.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#resetMatrix()">resetMatrix</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="applyMatrix(processing.core.PMatrix2D)"><!-- --></A><H3>
applyMatrix</H3>
<PRE>
public void <B>applyMatrix</B>(<A HREF="../../processing/core/PMatrix2D.html" title="class in processing.core">PMatrix2D</A>&nbsp;source)</PRE>
<DL>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#applyMatrix(processing.core.PMatrix2D)">applyMatrix</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="applyMatrix(float, float, float, float, float, float)"><!-- --></A><H3>
applyMatrix</H3>
<PRE>
public void <B>applyMatrix</B>(float&nbsp;n00,
float&nbsp;n01,
float&nbsp;n02,
float&nbsp;n10,
float&nbsp;n11,
float&nbsp;n12)</PRE>
<DL>
<DD><B>Description copied from class: <CODE><A HREF="../../processing/core/PGraphics.html#applyMatrix(float, float, float, float, float, float)">PGraphics</A></CODE></B></DD>
<DD>Apply a 3x2 affine transformation matrix.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#applyMatrix(float, float, float, float, float, float)">applyMatrix</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="applyMatrix(processing.core.PMatrix3D)"><!-- --></A><H3>
applyMatrix</H3>
<PRE>
public void <B>applyMatrix</B>(<A HREF="../../processing/core/PMatrix3D.html" title="class in processing.core">PMatrix3D</A>&nbsp;source)</PRE>
<DL>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#applyMatrix(processing.core.PMatrix3D)">applyMatrix</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="applyMatrix(float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float)"><!-- --></A><H3>
applyMatrix</H3>
<PRE>
public void <B>applyMatrix</B>(float&nbsp;n00,
float&nbsp;n01,
float&nbsp;n02,
float&nbsp;n03,
float&nbsp;n10,
float&nbsp;n11,
float&nbsp;n12,
float&nbsp;n13,
float&nbsp;n20,
float&nbsp;n21,
float&nbsp;n22,
float&nbsp;n23,
float&nbsp;n30,
float&nbsp;n31,
float&nbsp;n32,
float&nbsp;n33)</PRE>
<DL>
<DD>Apply a 4x4 transformation matrix. Same as glMultMatrix().
This call will be slow because it will try to calculate the
inverse of the transform. So avoid it whenever possible.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#applyMatrix(float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float)">applyMatrix</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getMatrix()"><!-- --></A><H3>
getMatrix</H3>
<PRE>
public <A HREF="../../processing/core/PMatrix.html" title="interface in processing.core">PMatrix</A> <B>getMatrix</B>()</PRE>
<DL>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#getMatrix()">getMatrix</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getMatrix(processing.core.PMatrix3D)"><!-- --></A><H3>
getMatrix</H3>
<PRE>
public <A HREF="../../processing/core/PMatrix3D.html" title="class in processing.core">PMatrix3D</A> <B>getMatrix</B>(<A HREF="../../processing/core/PMatrix3D.html" title="class in processing.core">PMatrix3D</A>&nbsp;target)</PRE>
<DL>
<DD><B>Description copied from class: <CODE><A HREF="../../processing/core/PGraphics.html#getMatrix(processing.core.PMatrix3D)">PGraphics</A></CODE></B></DD>
<DD>Copy the current transformation matrix into the specified target.
Pass in null to create a new matrix.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#getMatrix(processing.core.PMatrix3D)">getMatrix</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="setMatrix(processing.core.PMatrix2D)"><!-- --></A><H3>
setMatrix</H3>
<PRE>
public void <B>setMatrix</B>(<A HREF="../../processing/core/PMatrix2D.html" title="class in processing.core">PMatrix2D</A>&nbsp;source)</PRE>
<DL>
<DD><B>Description copied from class: <CODE><A HREF="../../processing/core/PGraphics.html#setMatrix(processing.core.PMatrix2D)">PGraphics</A></CODE></B></DD>
<DD>Set the current transformation to the contents of the specified source.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#setMatrix(processing.core.PMatrix2D)">setMatrix</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="setMatrix(processing.core.PMatrix3D)"><!-- --></A><H3>
setMatrix</H3>
<PRE>
public void <B>setMatrix</B>(<A HREF="../../processing/core/PMatrix3D.html" title="class in processing.core">PMatrix3D</A>&nbsp;source)</PRE>
<DL>
<DD>Set the current transformation to the contents of the specified source.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#setMatrix(processing.core.PMatrix3D)">setMatrix</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="printMatrix()"><!-- --></A><H3>
printMatrix</H3>
<PRE>
public void <B>printMatrix</B>()</PRE>
<DL>
<DD>Print the current model (or "transformation") matrix.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#printMatrix()">printMatrix</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="beginCamera()"><!-- --></A><H3>
beginCamera</H3>
<PRE>
public void <B>beginCamera</B>()</PRE>
<DL>
<DD>Set matrix mode to the camera matrix (instead of the current
transformation matrix). This means applyMatrix, resetMatrix, etc.
will affect the camera.
<P>
Note that the camera matrix is *not* the perspective matrix,
it is in front of the modelview matrix (hence the name "model"
and "view" for that matrix).
<P>
beginCamera() specifies that all coordinate transforms until endCamera()
should be pre-applied in inverse to the camera transform matrix.
Note that this is only challenging when a user specifies an arbitrary
matrix with applyMatrix(). Then that matrix will need to be inverted,
which may not be possible. But take heart, if a user is applying a
non-invertible matrix to the camera transform, then he is clearly
up to no good, and we can wash our hands of those bad intentions.
<P>
begin/endCamera clauses do not automatically reset the camera transform
matrix. That's because we set up a nice default camera transform int
setup(), and we expect it to hold through draw(). So we don't reset
the camera transform matrix at the top of draw(). That means that an
innocuous-looking clause like
<PRE>
beginCamera();
translate(0, 0, 10);
endCamera();
</PRE>
at the top of draw(), will result in a runaway camera that shoots
infinitely out of the screen over time. In order to prevent this,
it is necessary to call some function that does a hard reset of the
camera transform matrix inside of begin/endCamera. Two options are
<PRE>
camera(); // sets up the nice default camera transform
resetMatrix(); // sets up the identity camera transform
</PRE>
So to rotate a camera a constant amount, you might try
<PRE>
beginCamera();
camera();
rotateY(PI/8);
endCamera();
</PRE>
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#beginCamera()">beginCamera</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="endCamera()"><!-- --></A><H3>
endCamera</H3>
<PRE>
public void <B>endCamera</B>()</PRE>
<DL>
<DD>Record the current settings into the camera matrix, and set
the matrix mode back to the current transformation matrix.
<P>
Note that this will destroy any settings to scale(), translate(),
or whatever, because the final camera matrix will be copied
(not multiplied) into the modelview.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#endCamera()">endCamera</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="camera()"><!-- --></A><H3>
camera</H3>
<PRE>
public void <B>camera</B>()</PRE>
<DL>
<DD>Set camera to the default settings.
<P>
Processing camera behavior:
<P>
Camera behavior can be split into two separate components, camera
transformation, and projection. The transformation corresponds to the
physical location, orientation, and scale of the camera. In a physical
camera metaphor, this is what can manipulated by handling the camera
body (with the exception of scale, which doesn't really have a physcial
analog). The projection corresponds to what can be changed by
manipulating the lens.
<P>
We maintain separate matrices to represent the camera transform and
projection. An important distinction between the two is that the camera
transform should be invertible, where the projection matrix should not,
since it serves to map three dimensions to two. It is possible to bake
the two matrices into a single one just by multiplying them together,
but it isn't a good idea, since lighting, z-ordering, and z-buffering
all demand a true camera z coordinate after modelview and camera
transforms have been applied but before projection. If the camera
transform and projection are combined there is no way to recover a
good camera-space z-coordinate from a model coordinate.
<P>
Fortunately, there are no functions that manipulate both camera
transformation and projection.
<P>
camera() sets the camera position, orientation, and center of the scene.
It replaces the camera transform with a new one. This is different from
gluLookAt(), but I think the only reason that GLU's lookat doesn't fully
replace the camera matrix with the new one, but instead multiplies it,
is that GL doesn't enforce the separation of camera transform and
projection, so it wouldn't be safe (you'd probably stomp your projection).
<P>
The transformation functions are the same ones used to manipulate the
modelview matrix (scale, translate, rotate, etc.). But they are bracketed
with beginCamera(), endCamera() to indicate that they should apply
(in inverse), to the camera transformation matrix.
<P>
This differs considerably from camera transformation in OpenGL.
OpenGL only lets you say, apply everything from here out to the
projection or modelview matrix. This makes it very hard to treat camera
manipulation as if it were a physical camera. Imagine that you want to
move your camera 100 units forward. In OpenGL, you need to apply the
inverse of that transformation or else you'll move your scene 100 units
forward--whether or not you've specified modelview or projection matrix.
Remember they're just multiplied by model coods one after another.
So in order to treat a camera like a physical camera, it is necessary
to pre-apply inverse transforms to a matrix that will be applied to model
coordinates. OpenGL provides nothing of this sort, but Processing does!
This is the camera transform matrix.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#camera()">camera</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="camera(float, float, float, float, float, float, float, float, float)"><!-- --></A><H3>
camera</H3>
<PRE>
public void <B>camera</B>(float&nbsp;eyeX,
float&nbsp;eyeY,
float&nbsp;eyeZ,
float&nbsp;centerX,
float&nbsp;centerY,
float&nbsp;centerZ,
float&nbsp;upX,
float&nbsp;upY,
float&nbsp;upZ)</PRE>
<DL>
<DD>More flexible method for dealing with camera().
<P>
The actual call is like gluLookat. Here's the real skinny on
what does what:
<PRE>
camera(); or
camera(ex, ey, ez, cx, cy, cz, ux, uy, uz);
</PRE>
do not need to be called from with beginCamera();/endCamera();
That's because they always apply to the camera transformation,
and they always totally replace it. That means that any coordinate
transforms done before camera(); in draw() will be wiped out.
It also means that camera() always operates in untransformed world
coordinates. Therefore it is always redundant to call resetMatrix();
before camera(); This isn't technically true of gluLookat, but it's
pretty much how it's used.
<P>
Now, beginCamera(); and endCamera(); are useful if you want to move
the camera around using transforms like translate(), etc. They will
wipe out any coordinate system transforms that occur before them in
draw(), but they will not automatically wipe out the camera transform.
This means that they should be at the top of draw(). It also means
that the following:
<PRE>
beginCamera();
rotateY(PI/8);
endCamera();
</PRE>
will result in a camera that spins without stopping. If you want to
just rotate a small constant amount, try this:
<PRE>
beginCamera();
camera(); // sets up the default view
rotateY(PI/8);
endCamera();
</PRE>
That will rotate a little off of the default view. Note that this
is entirely equivalent to
<PRE>
camera(); // sets up the default view
beginCamera();
rotateY(PI/8);
endCamera();
</PRE>
because camera() doesn't care whether or not it's inside a
begin/end clause. Basically it's safe to use camera() or
camera(ex, ey, ez, cx, cy, cz, ux, uy, uz) as naked calls because
they do all the matrix resetting automatically.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#camera(float, float, float, float, float, float, float, float, float)">camera</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="printCamera()"><!-- --></A><H3>
printCamera</H3>
<PRE>
public void <B>printCamera</B>()</PRE>
<DL>
<DD>Print the current camera matrix.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#printCamera()">printCamera</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="ortho()"><!-- --></A><H3>
ortho</H3>
<PRE>
public void <B>ortho</B>()</PRE>
<DL>
<DD>Calls ortho() with the proper parameters for Processing's
standard orthographic projection.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#ortho()">ortho</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="ortho(float, float, float, float, float, float)"><!-- --></A><H3>
ortho</H3>
<PRE>
public void <B>ortho</B>(float&nbsp;left,
float&nbsp;right,
float&nbsp;bottom,
float&nbsp;top,
float&nbsp;near,
float&nbsp;far)</PRE>
<DL>
<DD>Similar to gluOrtho(), but wipes out the current projection matrix.
<P>
Implementation partially based on Mesa's matrix.c.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#ortho(float, float, float, float, float, float)">ortho</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="perspective()"><!-- --></A><H3>
perspective</H3>
<PRE>
public void <B>perspective</B>()</PRE>
<DL>
<DD>Calls perspective() with Processing's standard coordinate projection.
<P>
Projection functions:
<UL>
<LI>frustrum()
<LI>ortho()
<LI>perspective()
</UL>
Each of these three functions completely replaces the projection
matrix with a new one. They can be called inside setup(), and their
effects will be felt inside draw(). At the top of draw(), the projection
matrix is not reset. Therefore the last projection function to be
called always dominates. On resize, the default projection is always
established, which has perspective.
<P>
This behavior is pretty much familiar from OpenGL, except where
functions replace matrices, rather than multiplying against the
previous.
<P>
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#perspective()">perspective</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="perspective(float, float, float, float)"><!-- --></A><H3>
perspective</H3>
<PRE>
public void <B>perspective</B>(float&nbsp;fov,
float&nbsp;aspect,
float&nbsp;zNear,
float&nbsp;zFar)</PRE>
<DL>
<DD>Similar to gluPerspective(). Implementation based on Mesa's glu.c
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#perspective(float, float, float, float)">perspective</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="frustum(float, float, float, float, float, float)"><!-- --></A><H3>
frustum</H3>
<PRE>
public void <B>frustum</B>(float&nbsp;left,
float&nbsp;right,
float&nbsp;bottom,
float&nbsp;top,
float&nbsp;znear,
float&nbsp;zfar)</PRE>
<DL>
<DD>Same as glFrustum(), except that it wipes out (rather than
multiplies against) the current perspective matrix.
<P>
Implementation based on the explanation in the OpenGL blue book.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#frustum(float, float, float, float, float, float)">frustum</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="printProjection()"><!-- --></A><H3>
printProjection</H3>
<PRE>
public void <B>printProjection</B>()</PRE>
<DL>
<DD>Print the current projection matrix.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#printProjection()">printProjection</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="screenX(float, float)"><!-- --></A><H3>
screenX</H3>
<PRE>
public float <B>screenX</B>(float&nbsp;x,
float&nbsp;y)</PRE>
<DL>
<DD><B>Description copied from class: <CODE><A HREF="../../processing/core/PGraphics.html#screenX(float, float)">PGraphics</A></CODE></B></DD>
<DD>Given an x and y coordinate, returns the x position of where
that point would be placed on screen, once affected by translate(),
scale(), or any other transformations.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#screenX(float, float)">screenX</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="screenY(float, float)"><!-- --></A><H3>
screenY</H3>
<PRE>
public float <B>screenY</B>(float&nbsp;x,
float&nbsp;y)</PRE>
<DL>
<DD><B>Description copied from class: <CODE><A HREF="../../processing/core/PGraphics.html#screenY(float, float)">PGraphics</A></CODE></B></DD>
<DD>Given an x and y coordinate, returns the y position of where
that point would be placed on screen, once affected by translate(),
scale(), or any other transformations.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#screenY(float, float)">screenY</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="screenX(float, float, float)"><!-- --></A><H3>
screenX</H3>
<PRE>
public float <B>screenX</B>(float&nbsp;x,
float&nbsp;y,
float&nbsp;z)</PRE>
<DL>
<DD><B>Description copied from class: <CODE><A HREF="../../processing/core/PGraphics.html#screenX(float, float, float)">PGraphics</A></CODE></B></DD>
<DD>Maps a three dimensional point to its placement on-screen.
<P>
Given an (x, y, z) coordinate, returns the x position of where
that point would be placed on screen, once affected by translate(),
scale(), or any other transformations.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#screenX(float, float, float)">screenX</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="screenY(float, float, float)"><!-- --></A><H3>
screenY</H3>
<PRE>
public float <B>screenY</B>(float&nbsp;x,
float&nbsp;y,
float&nbsp;z)</PRE>
<DL>
<DD><B>Description copied from class: <CODE><A HREF="../../processing/core/PGraphics.html#screenY(float, float, float)">PGraphics</A></CODE></B></DD>
<DD>Maps a three dimensional point to its placement on-screen.
<P>
Given an (x, y, z) coordinate, returns the y position of where
that point would be placed on screen, once affected by translate(),
scale(), or any other transformations.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#screenY(float, float, float)">screenY</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="screenZ(float, float, float)"><!-- --></A><H3>
screenZ</H3>
<PRE>
public float <B>screenZ</B>(float&nbsp;x,
float&nbsp;y,
float&nbsp;z)</PRE>
<DL>
<DD><B>Description copied from class: <CODE><A HREF="../../processing/core/PGraphics.html#screenZ(float, float, float)">PGraphics</A></CODE></B></DD>
<DD>Maps a three dimensional point to its placement on-screen.
<P>
Given an (x, y, z) coordinate, returns its z value.
This value can be used to determine if an (x, y, z) coordinate
is in front or in back of another (x, y, z) coordinate.
The units are based on how the zbuffer is set up, and don't
relate to anything "real". They're only useful for in
comparison to another value obtained from screenZ(),
or directly out of the zbuffer[].
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#screenZ(float, float, float)">screenZ</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="modelX(float, float, float)"><!-- --></A><H3>
modelX</H3>
<PRE>
public float <B>modelX</B>(float&nbsp;x,
float&nbsp;y,
float&nbsp;z)</PRE>
<DL>
<DD><B>Description copied from class: <CODE><A HREF="../../processing/core/PGraphics.html#modelX(float, float, float)">PGraphics</A></CODE></B></DD>
<DD>Returns the model space x value for an x, y, z coordinate.
<P>
This will give you a coordinate after it has been transformed
by translate(), rotate(), and camera(), but not yet transformed
by the projection matrix. For instance, his can be useful for
figuring out how points in 3D space relate to the edge
coordinates of a shape.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#modelX(float, float, float)">modelX</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="modelY(float, float, float)"><!-- --></A><H3>
modelY</H3>
<PRE>
public float <B>modelY</B>(float&nbsp;x,
float&nbsp;y,
float&nbsp;z)</PRE>
<DL>
<DD><B>Description copied from class: <CODE><A HREF="../../processing/core/PGraphics.html#modelY(float, float, float)">PGraphics</A></CODE></B></DD>
<DD>Returns the model space y value for an x, y, z coordinate.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#modelY(float, float, float)">modelY</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="modelZ(float, float, float)"><!-- --></A><H3>
modelZ</H3>
<PRE>
public float <B>modelZ</B>(float&nbsp;x,
float&nbsp;y,
float&nbsp;z)</PRE>
<DL>
<DD><B>Description copied from class: <CODE><A HREF="../../processing/core/PGraphics.html#modelZ(float, float, float)">PGraphics</A></CODE></B></DD>
<DD>Returns the model space z value for an x, y, z coordinate.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#modelZ(float, float, float)">modelZ</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="strokeJoin(int)"><!-- --></A><H3>
strokeJoin</H3>
<PRE>
public void <B>strokeJoin</B>(int&nbsp;join)</PRE>
<DL>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#strokeJoin(int)">strokeJoin</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="strokeCap(int)"><!-- --></A><H3>
strokeCap</H3>
<PRE>
public void <B>strokeCap</B>(int&nbsp;cap)</PRE>
<DL>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#strokeCap(int)">strokeCap</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="lights()"><!-- --></A><H3>
lights</H3>
<PRE>
public void <B>lights</B>()</PRE>
<DL>
<DD>Sets up an ambient and directional light.
<PRE>
The Lighting Skinny:
The way lighting works is complicated enough that it's worth
producing a document to describe it. Lighting calculations proceed
pretty much exactly as described in the OpenGL red book.
Light-affecting material properties:
AMBIENT COLOR
- multiplies by light's ambient component
- for believability this should match diffuse color
DIFFUSE COLOR
- multiplies by light's diffuse component
SPECULAR COLOR
- multiplies by light's specular component
- usually less colored than diffuse/ambient
SHININESS
- the concentration of specular effect
- this should be set pretty high (20-50) to see really
noticeable specularity
EMISSIVE COLOR
- constant additive color effect
Light types:
AMBIENT
- one color
- no specular color
- no direction
- may have falloff (constant, linear, and quadratic)
- may have position (which matters in non-constant falloff case)
- multiplies by a material's ambient reflection
DIRECTIONAL
- has diffuse color
- has specular color
- has direction
- no position
- no falloff
- multiplies by a material's diffuse and specular reflections
POINT
- has diffuse color
- has specular color
- has position
- no direction
- may have falloff (constant, linear, and quadratic)
- multiplies by a material's diffuse and specular reflections
SPOT
- has diffuse color
- has specular color
- has position
- has direction
- has cone angle (set to half the total cone angle)
- has concentration value
- may have falloff (constant, linear, and quadratic)
- multiplies by a material's diffuse and specular reflections
Normal modes:
All of the primitives (rect, box, sphere, etc.) have their normals
set nicely. During beginShape/endShape normals can be set by the user.
AUTO-NORMAL
- if no normal is set during the shape, we are in auto-normal mode
- auto-normal calculates one normal per triangle (face-normal mode)
SHAPE-NORMAL
- if one normal is set during the shape, it will be used for
all vertices
VERTEX-NORMAL
- if multiple normals are set, each normal applies to
subsequent vertices
- (except for the first one, which applies to previous
and subsequent vertices)
Efficiency consequences:
There is a major efficiency consequence of position-dependent
lighting calculations per vertex. (See below for determining
whether lighting is vertex position-dependent.) If there is no
position dependency then the only factors that affect the lighting
contribution per vertex are its colors and its normal.
There is a major efficiency win if
1) lighting is not position dependent
2) we are in AUTO-NORMAL or SHAPE-NORMAL mode
because then we can calculate one lighting contribution per shape
(SHAPE-NORMAL) or per triangle (AUTO-NORMAL) and simply multiply it
into the vertex colors. The converse is our worst-case performance when
1) lighting is position dependent
2) we are in AUTO-NORMAL mode
because then we must calculate lighting per-face * per-vertex.
Each vertex has a different lighting contribution per face in
which it appears. Yuck.
Determining vertex position dependency:
If any of the following factors are TRUE then lighting is
vertex position dependent:
1) Any lights uses non-constant falloff
2) There are any point or spot lights
3) There is a light with specular color AND there is a
material with specular color
So worth noting is that default lighting (a no-falloff ambient
and a directional without specularity) is not position-dependent.
We should capitalize.
Simon Greenwold, April 2005
</PRE>
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#lights()">lights</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="noLights()"><!-- --></A><H3>
noLights</H3>
<PRE>
public void <B>noLights</B>()</PRE>
<DL>
<DD>Turn off all lights.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#noLights()">noLights</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="ambientLight(float, float, float)"><!-- --></A><H3>
ambientLight</H3>
<PRE>
public void <B>ambientLight</B>(float&nbsp;r,
float&nbsp;g,
float&nbsp;b)</PRE>
<DL>
<DD>Add an ambient light based on the current color mode.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#ambientLight(float, float, float)">ambientLight</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="ambientLight(float, float, float, float, float, float)"><!-- --></A><H3>
ambientLight</H3>
<PRE>
public void <B>ambientLight</B>(float&nbsp;r,
float&nbsp;g,
float&nbsp;b,
float&nbsp;x,
float&nbsp;y,
float&nbsp;z)</PRE>
<DL>
<DD>Add an ambient light based on the current color mode.
This version includes an (x, y, z) position for situations
where the falloff distance is used.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#ambientLight(float, float, float, float, float, float)">ambientLight</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="directionalLight(float, float, float, float, float, float)"><!-- --></A><H3>
directionalLight</H3>
<PRE>
public void <B>directionalLight</B>(float&nbsp;r,
float&nbsp;g,
float&nbsp;b,
float&nbsp;nx,
float&nbsp;ny,
float&nbsp;nz)</PRE>
<DL>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#directionalLight(float, float, float, float, float, float)">directionalLight</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="pointLight(float, float, float, float, float, float)"><!-- --></A><H3>
pointLight</H3>
<PRE>
public void <B>pointLight</B>(float&nbsp;r,
float&nbsp;g,
float&nbsp;b,
float&nbsp;x,
float&nbsp;y,
float&nbsp;z)</PRE>
<DL>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#pointLight(float, float, float, float, float, float)">pointLight</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="spotLight(float, float, float, float, float, float, float, float, float, float, float)"><!-- --></A><H3>
spotLight</H3>
<PRE>
public void <B>spotLight</B>(float&nbsp;r,
float&nbsp;g,
float&nbsp;b,
float&nbsp;x,
float&nbsp;y,
float&nbsp;z,
float&nbsp;nx,
float&nbsp;ny,
float&nbsp;nz,
float&nbsp;angle,
float&nbsp;concentration)</PRE>
<DL>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#spotLight(float, float, float, float, float, float, float, float, float, float, float)">spotLight</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="lightFalloff(float, float, float)"><!-- --></A><H3>
lightFalloff</H3>
<PRE>
public void <B>lightFalloff</B>(float&nbsp;constant,
float&nbsp;linear,
float&nbsp;quadratic)</PRE>
<DL>
<DD>Set the light falloff rates for the last light that was created.
Default is lightFalloff(1, 0, 0).
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#lightFalloff(float, float, float)">lightFalloff</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="lightSpecular(float, float, float)"><!-- --></A><H3>
lightSpecular</H3>
<PRE>
public void <B>lightSpecular</B>(float&nbsp;x,
float&nbsp;y,
float&nbsp;z)</PRE>
<DL>
<DD>Set the specular color of the last light created.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#lightSpecular(float, float, float)">lightSpecular</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="is2D()"><!-- --></A><H3>
is2D</H3>
<PRE>
public boolean <B>is2D</B>()</PRE>
<DL>
<DD><B>Description copied from class: <CODE><A HREF="../../processing/core/PGraphics.html#is2D()">PGraphics</A></CODE></B></DD>
<DD>Return true if this renderer supports 2D drawing. Defaults to true.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#is2D()">is2D</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="is3D()"><!-- --></A><H3>
is3D</H3>
<PRE>
public boolean <B>is3D</B>()</PRE>
<DL>
<DD><B>Description copied from class: <CODE><A HREF="../../processing/core/PGraphics.html#is3D()">PGraphics</A></CODE></B></DD>
<DD>Return true if this renderer supports 2D drawing. Defaults to true.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../processing/core/PGraphics.html#is3D()">is3D</A></CODE> in class <CODE><A HREF="../../processing/core/PGraphics.html" title="class in processing.core">PGraphics</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../processing/core/PGraphics2D.html" title="class in processing.core"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../processing/core/PGraphicsJava2D.html" title="class in processing.core"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../index.html?processing/core/PGraphics3D.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="PGraphics3D.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<HR>
</BODY>
</HTML>