mirror of
https://github.com/arduino/Arduino.git
synced 2024-11-30 11:24:12 +01:00
323 lines
9.8 KiB
Java
323 lines
9.8 KiB
Java
/* -*- mode: jde; c-basic-offset: 2; indent-tabs-mode: nil -*- */
|
|
|
|
/*
|
|
Part of the Processing project - http://processing.org
|
|
|
|
Copyright (c) 2004-06 Ben Fry and Casey Reas
|
|
Copyright (c) 2001-04 Massachusetts Institute of Technology
|
|
|
|
This library is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU Lesser General Public
|
|
License as published by the Free Software Foundation; either
|
|
version 2.1 of the License, or (at your option) any later version.
|
|
|
|
This library is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Lesser General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Lesser General
|
|
Public License along with this library; if not, write to the
|
|
Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
|
Boston, MA 02111-1307 USA
|
|
*/
|
|
|
|
package processing.core;
|
|
|
|
import java.awt.Cursor;
|
|
import java.awt.event.KeyEvent;
|
|
|
|
|
|
/**
|
|
* Numbers shared throughout processing.core.
|
|
* <P>
|
|
* An attempt is made to keep the constants as short/non-verbose
|
|
* as possible. For instance, the constant is TIFF instead of
|
|
* FILE_TYPE_TIFF. We'll do this as long as we can get away with it.
|
|
*/
|
|
public interface PConstants {
|
|
|
|
// renderers known to processing.core
|
|
|
|
static final String P2D = "processing.core.PGraphics2D";
|
|
static final String P3D = "processing.core.PGraphics3D";
|
|
static final String JAVA2D = "processing.core.PGraphicsJava2D";
|
|
static final String OPENGL = "processing.opengl.PGraphicsOpenGL";
|
|
static final String PDF = "processing.pdf.PGraphicsPDF";
|
|
static final String DXF = "processing.dxf.RawDXF";
|
|
//static final String SVG = "processing.dxf.PGraphicsSVG";
|
|
|
|
|
|
// platform IDs for PApplet.platform
|
|
|
|
static final int WINDOWS = 1;
|
|
static final int MACOS9 = 2;
|
|
static final int MACOSX = 3;
|
|
static final int LINUX = 4;
|
|
static final int OTHER = 0;
|
|
|
|
|
|
// for better parity between c++ version (at no speed cost)
|
|
|
|
static final float EPSILON = 0.0001f;
|
|
// was around for auto-port to mobile version
|
|
//static final float ONE = 1.0f;
|
|
|
|
|
|
// useful goodness
|
|
|
|
static final float PI = (float) Math.PI;
|
|
static final float HALF_PI = PI / 2.0f;
|
|
static final float THIRD_PI = PI / 3.0f;
|
|
static final float QUARTER_PI = PI / 4.0f;
|
|
static final float TWO_PI = PI * 2.0f;
|
|
|
|
static final float DEG_TO_RAD = PI/180.0f;
|
|
static final float RAD_TO_DEG = 180.0f/PI;
|
|
|
|
|
|
// angle modes
|
|
|
|
//static final int RADIANS = 0;
|
|
//static final int DEGREES = 1;
|
|
|
|
|
|
// used by split, all the standard whitespace chars
|
|
// (also includes unicode nbsp, that little bostage)
|
|
|
|
static final String WHITESPACE = " \t\n\r\f\u00A0";
|
|
|
|
|
|
// for colors and/or images
|
|
|
|
static final int RGB = 1; // image & color
|
|
static final int ARGB = 2; // image
|
|
static final int HSB = 3; // color
|
|
static final int ALPHA = 4; // image
|
|
|
|
|
|
// image file types
|
|
|
|
static final int TIFF = 0;
|
|
static final int TARGA = 1;
|
|
static final int JPEG = 2;
|
|
static final int GIF = 3;
|
|
|
|
|
|
// filter/convert types
|
|
|
|
static final int BLUR = 11;
|
|
static final int GRAY = 12;
|
|
static final int INVERT = 13;
|
|
static final int OPAQUE = 14;
|
|
static final int POSTERIZE = 15;
|
|
static final int THRESHOLD = 16;
|
|
static final int ERODE = 17;
|
|
static final int DILATE = 18;
|
|
|
|
|
|
// blend mode keyword definitions
|
|
// @see processing.core.PImage#blendColor(int,int,int)
|
|
|
|
public final static int REPLACE = 0;
|
|
public final static int BLEND = 1 << 0;
|
|
public final static int ADD = 1 << 1;
|
|
public final static int SUBTRACT = 1 << 2;
|
|
public final static int LIGHTEST = 1 << 3;
|
|
public final static int DARKEST = 1 << 4;
|
|
public final static int DIFFERENCE = 1 << 5;
|
|
public final static int EXCLUSION = 1 << 6;
|
|
public final static int MULTIPLY = 1 << 7;
|
|
public final static int SCREEN = 1 << 8;
|
|
public final static int OVERLAY = 1 << 9;
|
|
public final static int HARD_LIGHT = 1 << 10;
|
|
public final static int SOFT_LIGHT = 1 << 11;
|
|
public final static int DODGE = 1 << 12;
|
|
public final static int BURN = 1 << 13;
|
|
|
|
// colour component bitmasks
|
|
|
|
public static final int ALPHA_MASK = 0xff000000;
|
|
public static final int RED_MASK = 0x00ff0000;
|
|
public static final int GREEN_MASK = 0x0000ff00;
|
|
public static final int BLUE_MASK = 0x000000ff;
|
|
|
|
|
|
// for messages
|
|
|
|
static final int CHATTER = 0;
|
|
static final int COMPLAINT = 1;
|
|
static final int PROBLEM = 2;
|
|
|
|
|
|
// types of projection matrices
|
|
|
|
static final int CUSTOM = 0; // user-specified fanciness
|
|
static final int ORTHOGRAPHIC = 2; // 2D isometric projection
|
|
static final int PERSPECTIVE = 3; // perspective matrix
|
|
|
|
|
|
// rendering settings
|
|
|
|
static final float PIXEL_CENTER = 0.5f; // for polygon aa
|
|
|
|
|
|
// shapes
|
|
|
|
// the low four bits set the variety,
|
|
// higher bits set the specific shape type
|
|
|
|
static final int POINTS = (1 << 4) | 0;
|
|
|
|
static final int LINES = (1 << 5) | 0;
|
|
//static final int LINE_STRIP = (1 << 5) | 1;
|
|
//static final int LINE_LOOP = (1 << 5) | 2;
|
|
|
|
static final int TRIANGLES = (1 << 6) | 0;
|
|
static final int TRIANGLE_STRIP = (1 << 6) | 1;
|
|
static final int TRIANGLE_FAN = (1 << 6) | 2;
|
|
|
|
static final int QUADS = (1 << 7) | 0;
|
|
static final int QUAD_STRIP = (1 << 7) | 1;
|
|
|
|
static final int POLYGON = (1 << 8) | 0;
|
|
//static final int CONCAVE_POLYGON = (1 << 8) | 1;
|
|
//static final int CONVEX_POLYGON = (1 << 8) | 2;
|
|
|
|
static final int OPEN = 1;
|
|
static final int CLOSE = 2;
|
|
|
|
|
|
// shape drawing modes
|
|
|
|
/** Draw mode convention to use (x, y) to (width, height) */
|
|
static final int CORNER = 0;
|
|
/** Draw mode convention to use (x1, y1) to (x2, y2) coordinates */
|
|
static final int CORNERS = 1;
|
|
/** @deprecated Use RADIUS instead (as of 0125) */
|
|
static final int CENTER_RADIUS = 2;
|
|
/** Draw mode from the center, and using the radius */
|
|
static final int RADIUS = 2;
|
|
/** Draw from the center, using second pair of values as the diameter.
|
|
Formerly called CENTER_DIAMETER in alpha releases */
|
|
static final int CENTER = 3;
|
|
|
|
|
|
// vertically alignment modes for text
|
|
|
|
/** Default vertical alignment for text placement */
|
|
static final int BASELINE = 0;
|
|
/** Align text to the top */
|
|
static final int TOP = 101;
|
|
/** Align text from the bottom, using the baseline. */
|
|
static final int BOTTOM = 102;
|
|
|
|
|
|
// uv texture orientation modes
|
|
|
|
static final int NORMALIZED = 1; //_SPACE = 0; // 0..1
|
|
static final int IMAGE = 2;
|
|
|
|
|
|
// text placement modes
|
|
|
|
/**
|
|
* textMode(MODEL) is the default, meaning that characters
|
|
* will be affected by transformations like any other shapes.
|
|
* <p/>
|
|
* Changed value in 0093 to not interfere with LEFT, CENTER, and RIGHT.
|
|
*/
|
|
static final int MODEL = 4;
|
|
|
|
/**
|
|
* textMode(SHAPE) draws text using the the glyph outlines of
|
|
* individual characters rather than as textures. If the outlines are
|
|
* not available, then textMode(SHAPE) will be ignored and textMode(MODEL)
|
|
* will be used instead. For this reason, be sure to call textMode()
|
|
* <EM>after</EM> calling textFont().
|
|
* <p/>
|
|
* Currently, textMode(SHAPE) is only supported by OPENGL mode.
|
|
* It also requires Java 1.2 or higher (OPENGL requires 1.4 anyway)
|
|
*/
|
|
static final int SHAPE = 5;
|
|
|
|
|
|
// text alignment modes
|
|
// are inherited from LEFT, CENTER, RIGHT
|
|
|
|
|
|
// stroke modes
|
|
|
|
static final int SQUARE = 1 << 0; // called 'butt' in the svg spec
|
|
static final int ROUND = 1 << 1;
|
|
static final int PROJECT = 1 << 2; // called 'square' in the svg spec
|
|
static final int MITER = 1 << 3;
|
|
static final int BEVEL = 1 << 5;
|
|
|
|
|
|
// lighting
|
|
|
|
static final int AMBIENT = 0;
|
|
static final int DIRECTIONAL = 1;
|
|
static final int POINT = 2;
|
|
static final int SPOT = 3;
|
|
|
|
|
|
// key constants
|
|
|
|
// only including the most-used of these guys
|
|
// if people need more esoteric keys, they can learn about
|
|
// the esoteric java KeyEvent api and of virtual keys
|
|
|
|
// both key and keyCode will equal these values
|
|
// for 0125, these were changed to 'char' values, because they
|
|
// can be upgraded to ints automatically by Java, but having them
|
|
// as ints prevented split(blah, TAB) from working
|
|
static final char BACKSPACE = 8;
|
|
static final char TAB = 9;
|
|
static final char ENTER = 10;
|
|
static final char RETURN = 13;
|
|
static final char ESC = 27;
|
|
static final char DELETE = 127;
|
|
|
|
// i.e. if ((key == CODED) && (keyCode == UP))
|
|
static final int CODED = 0xffff;
|
|
|
|
// key will be CODED and keyCode will be this value
|
|
static final int UP = KeyEvent.VK_UP;
|
|
static final int DOWN = KeyEvent.VK_DOWN;
|
|
static final int LEFT = KeyEvent.VK_LEFT;
|
|
static final int RIGHT = KeyEvent.VK_RIGHT;
|
|
|
|
// key will be CODED and keyCode will be this value
|
|
static final int ALT = KeyEvent.VK_ALT;
|
|
static final int CONTROL = KeyEvent.VK_CONTROL;
|
|
static final int SHIFT = KeyEvent.VK_SHIFT;
|
|
|
|
|
|
// cursor types
|
|
|
|
static final int ARROW = Cursor.DEFAULT_CURSOR;
|
|
static final int CROSS = Cursor.CROSSHAIR_CURSOR;
|
|
static final int HAND = Cursor.HAND_CURSOR;
|
|
static final int MOVE = Cursor.MOVE_CURSOR;
|
|
static final int TEXT = Cursor.TEXT_CURSOR;
|
|
static final int WAIT = Cursor.WAIT_CURSOR;
|
|
|
|
|
|
// hints
|
|
|
|
//static final int SCALE_STROKE_WIDTH = 0;
|
|
//static final int LIGHTING_AFFECTS_STROKE = 1;
|
|
static final int ENABLE_NATIVE_FONTS = 2;
|
|
static final int DISABLE_TEXT_SMOOTH = 3;
|
|
//static final int DISABLE_SMOOTH_HACK = 4;
|
|
static final int DISABLE_DEPTH_TEST = 5;
|
|
static final int NO_FLYING_POO = 6;
|
|
static final int ENABLE_DEPTH_SORT = 7;
|
|
static final int DISABLE_ERROR_REPORT = 8;
|
|
static final int ENABLE_ACCURATE_TEXTURES = 9;
|
|
|
|
static final int HINT_COUNT = 10;
|
|
}
|