Package processing.core
Class PShape
java.lang.Object
processing.core.PShape
- All Implemented Interfaces:
PConstants
- Direct Known Subclasses:
PShapeOBJ
,PShapeOpenGL
,PShapeSVG
Datatype for storing shapes. Before a shape is used, it must be loaded with
the loadShape() or created with the createShape(). The
shape() function is used to draw the shape to the display window.
Processing can currently load and display SVG (Scalable Vector Graphics) and
OBJ shapes. OBJ files can only be opened using the P3D renderer. The
loadShape() function supports SVG files created with Inkscape and
Adobe Illustrator. It is not a full SVG implementation, but offers some
straightforward support for handling vector data.
The PShape object contains a group of methods that can operate on the shape data. Some of the methods are listed below, but the full list used for creating and modifying shapes is available here in the Processing Javadoc.
To create a new shape, use the createShape() function. Do not use the syntax new PShape().
The PShape object contains a group of methods that can operate on the shape data. Some of the methods are listed below, but the full list used for creating and modifying shapes is available here in the Processing Javadoc.
To create a new shape, use the createShape() function. Do not use the syntax new PShape().
Advanced
In-progress class to handle shape data, currently to be considered of alpha or beta quality. Major structural work may be performed on this class after the release of Processing 1.0. Such changes may include:- addition of proper accessors to read shape vertex and coloring data (this is the second most important part of having a PShape class after all).
- a means of creating PShape objects ala beginShape() and endShape().
- load(), update(), and cache methods ala PImage, so that shapes can have renderer-specific optimizations, such as vertex arrays in OpenGL.
- splitting this class into multiple classes to handle different varieties of shape data (primitives vs collections of vertices vs paths)
- change of package declaration, for instance moving the code into package processing.shape (if the code grows too much).
For the time being, this class and its shape() and loadShape() friends in PApplet exist as placeholders for more exciting things to come. If you'd like to work with this class, make a subclass (see how PShapeSVG works) and you can play with its internal methods all you like.
Library developers are encouraged to create PShape objects when loading shape data, so that they can eventually hook into the bounty that will be the PShape interface, and the ease of loadShape() and shape().
- See Also:
- Usage:
- Web & Application
-
Field Summary
Modifier and TypeFieldDescriptionint
The current colorModefloat
Max value for alpha set by colorModefloat
Max value for red (or hue) set by colorModefloat
Max value for green (or saturation) set by colorModefloat
Max value for blue (or value) set by colorModefloat
static final int
Collections of vertices created with beginShape().float
The height of the PShape document.static final String
static final String
static final String
static final String
static final String
static final int
A series of vertex, curveVertex, and bezierVertex calls.static final String
static final int
A line, ellipse, arc, image, etc.float
The width of the PShape document.Fields inherited from interface processing.core.PConstants
ADD, ALPHA, ALT, AMBIENT, ARC, ARGB, ARROW, BACKSPACE, BASELINE, BEVEL, BEZIER_VERTEX, BLEND, BLUR, BOTTOM, BOX, BREAK, BURN, CENTER, CHATTER, CHORD, CLAMP, CLOSE, CODED, COMPLAINT, CONTROL, CORNER, CORNERS, CROSS, CURVE_VERTEX, CUSTOM, DARKEST, DEG_TO_RAD, DELETE, DIAMETER, DIFFERENCE, DILATE, DIRECTIONAL, DISABLE_ASYNC_SAVEFRAME, DISABLE_BUFFER_READING, DISABLE_DEPTH_MASK, DISABLE_DEPTH_SORT, DISABLE_DEPTH_TEST, DISABLE_KEY_REPEAT, DISABLE_NATIVE_FONTS, DISABLE_OPENGL_ERRORS, DISABLE_OPTIMIZED_STROKE, DISABLE_STROKE_PERSPECTIVE, DISABLE_STROKE_PURE, DISABLE_TEXTURE_MIPMAPS, DODGE, DOWN, DXF, ELLIPSE, ENABLE_ASYNC_SAVEFRAME, ENABLE_BUFFER_READING, ENABLE_DEPTH_MASK, ENABLE_DEPTH_SORT, ENABLE_DEPTH_TEST, ENABLE_KEY_REPEAT, ENABLE_NATIVE_FONTS, ENABLE_OPENGL_ERRORS, ENABLE_OPTIMIZED_STROKE, ENABLE_STROKE_PERSPECTIVE, ENABLE_STROKE_PURE, ENABLE_TEXTURE_MIPMAPS, ENTER, EPSILON, ERODE, ESC, EXCLUSION, FX2D, GIF, GRAY, GROUP, HALF_PI, HAND, HARD_LIGHT, HINT_COUNT, HSB, IMAGE, INVERT, JAVA2D, JPEG, LANDSCAPE, LEFT, LIGHTEST, LINE, LINE_LOOP, LINE_STRIP, LINES, LINUX, MACOS, MACOSX, MAX_FLOAT, MAX_INT, MIN_FLOAT, MIN_INT, MITER, MODEL, MODELVIEW, MOVE, MULTIPLY, NORMAL, OPAQUE, OPEN, OPENGL, ORTHOGRAPHIC, OTHER, OVERLAY, P2D, P3D, PDF, PERSPECTIVE, PI, PIE, platformNames, POINT, POINTS, POLYGON, PORTRAIT, POSTERIZE, PROBLEM, PROJECT, PROJECTION, QUAD, QUAD_BEZIER_VERTEX, QUAD_STRIP, QUADRATIC_VERTEX, QUADS, QUARTER_PI, RAD_TO_DEG, RADIUS, RECT, REPEAT, REPLACE, RETURN, RGB, RIGHT, ROUND, SCREEN, SHAPE, SHIFT, SOFT_LIGHT, SPAN, SPHERE, SPOT, SQUARE, SUBTRACT, SVG, TAB, TARGA, TAU, TEXT, THIRD_PI, THRESHOLD, TIFF, TOP, TRIANGLE, TRIANGLE_FAN, TRIANGLE_STRIP, TRIANGLES, TWO_PI, UP, VERTEX, WAIT, WHITESPACE, WINDOWS, X, Y, Z
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Adds a child PShape to a parent PShape that is defined as a GROUP.void
void
Add a shape to the name lookup table.void
ambient
(float gray) void
ambient
(float x, float y, float z) void
ambient
(int rgb) void
applyMatrix
(float n00, float n01, float n02, float n10, float n11, float n12) void
applyMatrix
(float n00, float n01, float n02, float n03, float n10, float n11, float n12, float n13, float n20, float n21, float n22, float n23, float n30, float n31, float n32, float n33) void
applyMatrix
(PMatrix source) void
applyMatrix
(PMatrix2D source) void
applyMatrix
(PMatrix3D source) void
void
void
void
attribColor
(String name, int color) void
attribNormal
(String name, float nx, float ny, float nz) void
attribPosition
(String name, float x, float y, float z) void
The beginContour() and endContour() methods make it possible to define shapes with other shapes cut out of them.void
This method is used to start a custom shape created with the createShape() function.void
beginShape
(int kind) void
void
beginTessellation
(int kind) void
bezierDetail
(int detail) void
bezierVertex
(float x2, float y2, float x3, float y3, float x4, float y4) void
bezierVertex
(float x2, float y2, float z2, float x3, float y3, float z3, float x4, float y4, float z4) void
colorMode
(int mode) void
colorMode
(int mode, float max) void
colorMode
(int mode, float maxX, float maxY, float maxZ) void
colorMode
(int mode, float maxX, float maxY, float maxZ, float maxA) boolean
contains
(float x, float y) Return true if this x, y coordinate is part of this shape.void
curveDetail
(int detail) void
curveTightness
(float tightness) void
curveVertex
(float x, float y) void
curveVertex
(float x, float y, float z) void
Disables the shape's style data and uses Processing's current styles.void
Called by the following (the shape() command adds the g) PShape s = loadShape("blah.svg"); shape(s);void
emissive
(float gray) void
emissive
(float x, float y, float z) void
emissive
(int rgb) void
Enables the shape's style data and ignores Processing's current styles.void
The beginContour() and endContour() methods make it possible to define shapes with other shapes cut out of them.void
endShape()
This method is used to complete a custom shape created with the createShape() function.void
endShape
(int mode) void
void
fill
(float gray) void
fill
(float gray, float alpha) void
fill
(float x, float y, float z) void
fill
(float x, float y, float z, float a) void
fill
(int rgb) void
fill
(int rgb, float alpha) Same as getChild(name), except that it first walks all the way up the hierarchy to the eldest grandparent, so that children can be found anywhere.int
getAmbient
(int index) getChild
(int index) Extracts a child shape from a parent shape.int
Returns the number of children within the PShape.int
getChildIndex
(PShape who) Returns the index of child who.PShape[]
float
getDepth()
Get the depth of the shape area (not necessarily the shape boundary).int
getEmissive
(int index) int
The shape type, one of GROUP, PRIMITIVE, PATH, or GEOMETRY.int
getFill
(int index) float
Get the height of the drawing area (not necessarily the shape boundary).int
getKind()
getName()
getNormal
(int index) float
getNormalX
(int index) float
getNormalY
(int index) float
getNormalZ
(int index) float
getParam
(int index) float[]
float[]
getParams
(float[] target) float
getShininess
(int index) int
getSpecular
(int index) int
getStroke
(int index) float
getStrokeWeight
(int index) Returns a PShape holding the tessellated geometry of this shape, composed entirely of triangles.float
getTextureU
(int index) float
getTextureV
(int index) int
getTint
(int index) getVertex
(int index) The getVertex() method returns a PVector with the coordinates of the vertex point located at the position defined by the index parameter.int
getVertexCode
(int index) One of VERTEX, BEZIER_VERTEX, CURVE_VERTEX, or BREAK.int
int[]
int
The getVertexCount() method returns the number of vertices that make up a PShape.float
getVertexX
(int index) float
getVertexY
(int index) float
getVertexZ
(int index) float
getWidth()
Get the width of the drawing area (not necessarily the shape boundary).boolean
is2D()
Return true if this shape is 2D.boolean
is3D()
Return true if this shape is 3D.boolean
isClosed()
boolean
Returns a boolean value true if the image is set to be visible, false if not.void
noFill()
void
normal
(float nx, float ny, float nz) void
noStroke()
void
void
noTint()
void
quadraticVertex
(float cx, float cy, float x3, float y3) void
quadraticVertex
(float cx, float cy, float cz, float x3, float y3, float z3) void
removeChild
(int idx) Remove the child shape with index idx.void
Replaces the current matrix of a shape with the identity matrix.void
rotate
(float angle) Rotates a shape the amount specified by the angle parameter.void
rotate
(float angle, float v0, float v1, float v2) void
rotateX
(float angle) Rotates a shape around the x-axis the amount specified by the angle parameter.void
rotateY
(float angle) Rotates a shape around the y-axis the amount specified by the angle parameter.void
rotateZ
(float angle) Rotates a shape around the z-axis the amount specified by the angle parameter.void
scale
(float s) Increases or decreases the size of a shape by expanding and contracting vertices.void
scale
(float x, float y) void
scale
(float x, float y, float z) void
set3D
(boolean val) void
setAmbient
(int ambient) void
setAmbient
(int index, int ambient) void
setEmissive
(int emissive) void
setEmissive
(int index, int emissive) void
setFamily
(int family) void
setFill
(boolean fill) void
setFill
(int fill) The setFill() method defines the fill color of a PShape.void
setFill
(int index, int fill) void
setKind
(int kind) void
void
setNormal
(int index, float nx, float ny, float nz) void
setPath
(int vcount, float[][] verts) void
setShininess
(float shine) void
setShininess
(int index, float shine) void
setSpecular
(int specular) void
setSpecular
(int index, int specular) void
setStroke
(boolean stroke) void
setStroke
(int stroke) The setStroke() method defines the outline color of a PShape.void
setStroke
(int index, int stroke) void
setStrokeCap
(int cap) void
setStrokeJoin
(int join) void
setStrokeWeight
(float weight) void
setStrokeWeight
(int index, float weight) void
setTexture
(PImage tex) void
setTextureMode
(int mode) void
setTextureUV
(int index, float u, float v) void
setTint
(boolean tint) void
setTint
(int fill) void
setTint
(int index, int tint) void
setVertex
(int index, float x, float y) The setVertex() method defines the coordinates of the vertex point located at the position defined by the index parameter.void
setVertex
(int index, float x, float y, float z) void
void
setVisible
(boolean visible) Sets the shape to be visible or invisible.void
shininess
(float shine) void
specular
(float gray) void
specular
(float x, float y, float z) void
specular
(int rgb) void
stroke
(float gray) void
stroke
(float gray, float alpha) void
stroke
(float x, float y, float z) void
stroke
(float x, float y, float z, float alpha) void
stroke
(int rgb) void
stroke
(int rgb, float alpha) void
strokeCap
(int cap) void
strokeJoin
(int join) void
strokeWeight
(float weight) void
void
textureMode
(int mode) void
tint
(float gray) void
tint
(float gray, float alpha) void
tint
(float x, float y, float z) void
tint
(float x, float y, float z, float alpha) void
tint
(int rgb) void
tint
(int rgb, float alpha) void
translate
(float x, float y) Specifies an amount to displace the shape.void
translate
(float x, float y, float z) void
vertex
(float x, float y) void
vertex
(float x, float y, float z) void
vertex
(float x, float y, float u, float v) void
vertex
(float x, float y, float z, float u, float v)
-
Field Details
-
PRIMITIVE
public static final int PRIMITIVEA line, ellipse, arc, image, etc.- See Also:
-
PATH
public static final int PATHA series of vertex, curveVertex, and bezierVertex calls.- See Also:
-
GEOMETRY
public static final int GEOMETRYCollections of vertices created with beginShape().- See Also:
-
OUTSIDE_BEGIN_END_ERROR
- See Also:
-
INSIDE_BEGIN_END_ERROR
- See Also:
-
NO_SUCH_VERTEX_ERROR
- See Also:
-
NO_VERTICES_ERROR
- See Also:
-
NOT_A_SIMPLE_VERTEX
- See Also:
-
PER_VERTEX_UNSUPPORTED
- See Also:
-
width
public float widthThe width of the PShape document.- See Also:
- Usage:
- web_application
-
height
public float heightThe height of the PShape document.- See Also:
- Usage:
- web_application
-
depth
public float depth -
colorMode
public int colorModeThe current colorMode -
colorModeX
public float colorModeXMax value for red (or hue) set by colorMode -
colorModeY
public float colorModeYMax value for green (or saturation) set by colorMode -
colorModeZ
public float colorModeZMax value for blue (or value) set by colorMode -
colorModeA
public float colorModeAMax value for alpha set by colorMode
-
-
Constructor Details
-
PShape
public PShape() -
PShape
public PShape(int family) -
PShape
-
PShape
-
-
Method Details
-
setFamily
public void setFamily(int family) -
setKind
public void setKind(int kind) -
setName
-
getName
-
isVisible
public boolean isVisible()Returns a boolean value true if the image is set to be visible, false if not. This value can be modified with the setVisible() method.
The default visibility of a shape is usually controlled by whatever program created the SVG file. For instance, this parameter is controlled by showing or hiding the shape in the layers palette in Adobe Illustrator.- See Also:
- Usage:
- web_application
-
setVisible
public void setVisible(boolean visible) Sets the shape to be visible or invisible. This is determined by the value of the visible parameter.
The default visibility of a shape is usually controlled by whatever program created the SVG file. For instance, this parameter is controlled by showing or hiding the shape in the layers palette in Adobe Illustrator.- Parameters:
visible
- "false" makes the shape invisible and "true" makes it visible- See Also:
- Usage:
- web_application
-
disableStyle
public void disableStyle()Disables the shape's style data and uses Processing's current styles. Styles include attributes such as colors, stroke weight, and stroke joints.Advanced
Overrides this shape's style information and uses PGraphics styles and colors. Identical to ignoreStyles(true). Also disables styles for all child shapes.- See Also:
- Usage:
- web_application
-
enableStyle
public void enableStyle()Enables the shape's style data and ignores Processing's current styles. Styles include attributes such as colors, stroke weight, and stroke joints.- See Also:
- Usage:
- web_application
-
getWidth
public float getWidth()Get the width of the drawing area (not necessarily the shape boundary). -
getHeight
public float getHeight()Get the height of the drawing area (not necessarily the shape boundary). -
getDepth
public float getDepth()Get the depth of the shape area (not necessarily the shape boundary). Only makes sense for 3D PShape subclasses, such as PShape3D. -
is2D
public boolean is2D()Return true if this shape is 2D. Defaults to true. -
is3D
public boolean is3D()Return true if this shape is 3D. Defaults to false. -
set3D
public void set3D(boolean val) -
textureMode
public void textureMode(int mode) -
texture
-
noTexture
public void noTexture() -
beginContour
public void beginContour()The beginContour() and endContour() methods make it possible to define shapes with other shapes cut out of them. For example, the inside of a letter 'O'. These two functions are always used together, you'll never use one without the other. Between them, define the geometry you want to create. As you'll see when you run the example above, the second smaller shape is cut out of the first larger shape.
The exterior shape and the interior contour must wind in opposite directions. This means that if the points of the geometry for the exterior shape are described in a clockwise order, the points on the interior shape are defined in a counterclockwise order.- See Also:
-
endContour
public void endContour()The beginContour() and endContour() methods make it possible to define shapes with other shapes cut out of them. For example, the inside of a letter 'O'. These two functions are always used together, you'll never use one without the other. Between them, define the geometry you want to create. As you'll see when you run the example above, the second smaller shape is cut out of the first larger shape.
The exterior shape and the interior contour must wind in opposite directions. This means that if the points of the geometry for the exterior shape are described in a clockwise order, the points on the interior shape are defined in a counterclockwise order.- See Also:
-
vertex
public void vertex(float x, float y) -
vertex
public void vertex(float x, float y, float u, float v) -
vertex
public void vertex(float x, float y, float z) -
vertex
public void vertex(float x, float y, float z, float u, float v) -
normal
public void normal(float nx, float ny, float nz) -
attribPosition
-
attribNormal
-
attribColor
-
attrib
-
attrib
-
attrib
-
beginShape
public void beginShape()This method is used to start a custom shape created with the createShape() function. It's always and only used with createShape().- See Also:
-
beginShape
public void beginShape(int kind) -
endShape
public void endShape()This method is used to complete a custom shape created with the createShape() function. It's always and only used with createShape().- See Also:
-
endShape
public void endShape(int mode) -
strokeWeight
public void strokeWeight(float weight) -
strokeJoin
public void strokeJoin(int join) -
strokeCap
public void strokeCap(int cap) -
noFill
public void noFill() -
fill
public void fill(int rgb) -
fill
public void fill(int rgb, float alpha) -
fill
public void fill(float gray) -
fill
public void fill(float gray, float alpha) -
fill
public void fill(float x, float y, float z) -
fill
public void fill(float x, float y, float z, float a) -
noStroke
public void noStroke() -
stroke
public void stroke(int rgb) -
stroke
public void stroke(int rgb, float alpha) -
stroke
public void stroke(float gray) -
stroke
public void stroke(float gray, float alpha) -
stroke
public void stroke(float x, float y, float z) -
stroke
public void stroke(float x, float y, float z, float alpha) -
noTint
public void noTint() -
tint
public void tint(int rgb) -
tint
public void tint(int rgb, float alpha) -
tint
public void tint(float gray) -
tint
public void tint(float gray, float alpha) -
tint
public void tint(float x, float y, float z) -
tint
public void tint(float x, float y, float z, float alpha) -
ambient
public void ambient(int rgb) -
ambient
public void ambient(float gray) -
ambient
public void ambient(float x, float y, float z) -
specular
public void specular(int rgb) -
specular
public void specular(float gray) -
specular
public void specular(float x, float y, float z) -
emissive
public void emissive(int rgb) -
emissive
public void emissive(float gray) -
emissive
public void emissive(float x, float y, float z) -
shininess
public void shininess(float shine) -
bezierDetail
public void bezierDetail(int detail) -
bezierVertex
public void bezierVertex(float x2, float y2, float x3, float y3, float x4, float y4) -
bezierVertex
public void bezierVertex(float x2, float y2, float z2, float x3, float y3, float z3, float x4, float y4, float z4) -
quadraticVertex
public void quadraticVertex(float cx, float cy, float x3, float y3) -
quadraticVertex
public void quadraticVertex(float cx, float cy, float cz, float x3, float y3, float z3) -
curveDetail
public void curveDetail(int detail) -
curveTightness
public void curveTightness(float tightness) -
curveVertex
public void curveVertex(float x, float y) -
curveVertex
public void curveVertex(float x, float y, float z) -
draw
Called by the following (the shape() command adds the g) PShape s = loadShape("blah.svg"); shape(s); -
getParent
-
getChildCount
public int getChildCount()Returns the number of children within the PShape. -
getChildren
-
getChild
Extracts a child shape from a parent shape. Specify the name of the shape with the target parameter. The shape is returned as a PShape object, or null is returned if there is an error.- Parameters:
index
- the layer position of the shape to get- See Also:
- Usage:
- web_application
-
getChild
- Parameters:
target
- the name of the shape to get
-
findChild
Same as getChild(name), except that it first walks all the way up the hierarchy to the eldest grandparent, so that children can be found anywhere. -
addChild
Adds a child PShape to a parent PShape that is defined as a GROUP. In the example, the three shapes path, rectangle, and circle are added to a parent PShape variable named house that is a GROUP.- Parameters:
who
- any variable of type PShape- See Also:
-
addChild
- Parameters:
idx
- the layer position in which to insert the new child
-
removeChild
public void removeChild(int idx) Remove the child shape with index idx. -
addName
Add a shape to the name lookup table. -
getChildIndex
Returns the index of child who. -
getTessellation
Returns a PShape holding the tessellated geometry of this shape, composed entirely of triangles. -
beginTessellation
public void beginTessellation() -
beginTessellation
public void beginTessellation(int kind) -
endTessellation
public void endTessellation() -
getFamily
public int getFamily()The shape type, one of GROUP, PRIMITIVE, PATH, or GEOMETRY. -
getKind
public int getKind() -
getParams
public float[] getParams() -
getParams
public float[] getParams(float[] target) -
getParam
public float getParam(int index) -
setPath
public void setPath(int vcount, float[][] verts) -
getVertexCount
public int getVertexCount()The getVertexCount() method returns the number of vertices that make up a PShape. In the above example, the value 4 is returned by the getVertexCount() method because 4 vertices are defined in setup().- See Also:
-
getVertex
The getVertex() method returns a PVector with the coordinates of the vertex point located at the position defined by the index parameter. This method works when shapes are created as shown in the example above, but won't work properly when a shape is defined explicitly (e.g. createShape(RECT, 20, 20, 80, 80).- Parameters:
index
- the location of the vertex- See Also:
-
getVertex
- Parameters:
vec
- PVector to assign the data to
-
getVertexX
public float getVertexX(int index) -
getVertexY
public float getVertexY(int index) -
getVertexZ
public float getVertexZ(int index) -
setVertex
public void setVertex(int index, float x, float y) The setVertex() method defines the coordinates of the vertex point located at the position defined by the index parameter. This method works when shapes are created as shown in the example above, but won't work properly when a shape is defined explicitly (e.g. createShape(RECT, 20, 20, 80, 80).- Parameters:
index
- the location of the vertexx
- the x value for the vertexy
- the y value for the vertex- See Also:
-
setVertex
public void setVertex(int index, float x, float y, float z) - Parameters:
z
- the z value for the vertex
-
setVertex
- Parameters:
vec
- the PVector to define the x, y, z coordinates
-
getNormal
-
getNormal
-
getNormalX
public float getNormalX(int index) -
getNormalY
public float getNormalY(int index) -
getNormalZ
public float getNormalZ(int index) -
setNormal
public void setNormal(int index, float nx, float ny, float nz) -
getTextureU
public float getTextureU(int index) -
getTextureV
public float getTextureV(int index) -
setTextureUV
public void setTextureUV(int index, float u, float v) -
setTextureMode
public void setTextureMode(int mode) -
setTexture
-
getFill
public int getFill(int index) -
setFill
public void setFill(boolean fill) -
setFill
public void setFill(int fill) The setFill() method defines the fill color of a PShape. This method is used after shapes are created or when a shape is defined explicitly (e.g. createShape(RECT, 20, 20, 80, 80)) as shown in the above example. When a shape is created with beginShape() and endShape(), its attributes may be changed with fill() and stroke() within beginShape() and endShape(). However, after the shape is created, only the setFill() method can define a new fill value for the PShape. -
setFill
public void setFill(int index, int fill) -
getTint
public int getTint(int index) -
setTint
public void setTint(boolean tint) -
setTint
public void setTint(int fill) -
setTint
public void setTint(int index, int tint) -
getStroke
public int getStroke(int index) -
setStroke
public void setStroke(boolean stroke) -
setStroke
public void setStroke(int stroke) The setStroke() method defines the outline color of a PShape. This method is used after shapes are created or when a shape is defined explicitly (e.g. createShape(RECT, 20, 20, 80, 80)) as shown in the above example. When a shape is created with beginShape() and endShape(), its attributes may be changed with fill() and stroke() within beginShape() and endShape(). However, after the shape is created, only the setStroke() method can define a new stroke value for the PShape. -
setStroke
public void setStroke(int index, int stroke) -
getStrokeWeight
public float getStrokeWeight(int index) -
setStrokeWeight
public void setStrokeWeight(float weight) -
setStrokeWeight
public void setStrokeWeight(int index, float weight) -
setStrokeJoin
public void setStrokeJoin(int join) -
setStrokeCap
public void setStrokeCap(int cap) -
getAmbient
public int getAmbient(int index) -
setAmbient
public void setAmbient(int ambient) -
setAmbient
public void setAmbient(int index, int ambient) -
getSpecular
public int getSpecular(int index) -
setSpecular
public void setSpecular(int specular) -
setSpecular
public void setSpecular(int index, int specular) -
getEmissive
public int getEmissive(int index) -
setEmissive
public void setEmissive(int emissive) -
setEmissive
public void setEmissive(int index, int emissive) -
getShininess
public float getShininess(int index) -
setShininess
public void setShininess(float shine) -
setShininess
public void setShininess(int index, float shine) -
getVertexCodes
public int[] getVertexCodes() -
getVertexCodeCount
public int getVertexCodeCount() -
getVertexCode
public int getVertexCode(int index) One of VERTEX, BEZIER_VERTEX, CURVE_VERTEX, or BREAK. -
isClosed
public boolean isClosed() -
contains
public boolean contains(float x, float y) Return true if this x, y coordinate is part of this shape. Only works with PATH shapes or GROUP shapes that contain other GROUPs or PATHs. This method is not imperfect and doesn't account for all cases (not all complex shapes: concave shapes or holes may have issues). -
translate
public void translate(float x, float y) Specifies an amount to displace the shape. The x parameter specifies left/right translation, the y parameter specifies up/down translation, and the z parameter specifies translations toward/away from the screen. Subsequent calls to the method accumulates the effect. For example, calling translate(50, 0) and then translate(20, 0) is the same as translate(70, 0). This transformation is applied directly to the shape, it's not refreshed each time draw() is run.
Using this method with the z parameter requires using the P3D parameter in combination with size.- Parameters:
x
- left/right translationy
- up/down translation- See Also:
- Usage:
- web_application
-
translate
public void translate(float x, float y, float z) - Parameters:
z
- forward/back translation
-
rotateX
public void rotateX(float angle) Rotates a shape around the x-axis the amount specified by the angle parameter. Angles should be specified in radians (values from 0 to TWO_PI) or converted to radians with the radians() method.
Shapes are always rotated around the upper-left corner of their bounding box. Positive numbers rotate objects in a clockwise direction. Subsequent calls to the method accumulates the effect. For example, calling rotateX(HALF_PI) and then rotateX(HALF_PI) is the same as rotateX(PI). This transformation is applied directly to the shape, it's not refreshed each time draw() is run.
This method requires a 3D renderer. You need to use P3D as a third parameter for the size() function as shown in the example above.- Parameters:
angle
- angle of rotation specified in radians- See Also:
- Usage:
- web_application
-
rotateY
public void rotateY(float angle) Rotates a shape around the y-axis the amount specified by the angle parameter. Angles should be specified in radians (values from 0 to TWO_PI) or converted to radians with the radians() method.
Shapes are always rotated around the upper-left corner of their bounding box. Positive numbers rotate objects in a clockwise direction. Subsequent calls to the method accumulates the effect. For example, calling rotateY(HALF_PI) and then rotateY(HALF_PI) is the same as rotateY(PI). This transformation is applied directly to the shape, it's not refreshed each time draw() is run.
This method requires a 3D renderer. You need to use P3D as a third parameter for the size() function as shown in the example above.- Parameters:
angle
- angle of rotation specified in radians- See Also:
- Usage:
- web_application
-
rotateZ
public void rotateZ(float angle) Rotates a shape around the z-axis the amount specified by the angle parameter. Angles should be specified in radians (values from 0 to TWO_PI) or converted to radians with the radians() method.
Shapes are always rotated around the upper-left corner of their bounding box. Positive numbers rotate objects in a clockwise direction. Subsequent calls to the method accumulates the effect. For example, calling rotateZ(HALF_PI) and then rotateZ(HALF_PI) is the same as rotateZ(PI). This transformation is applied directly to the shape, it's not refreshed each time draw() is run.
This method requires a 3D renderer. You need to use P3D as a third parameter for the size() function as shown in the example above.- Parameters:
angle
- angle of rotation specified in radians- See Also:
- Usage:
- web_application
-
rotate
public void rotate(float angle) Rotates a shape the amount specified by the angle parameter. Angles should be specified in radians (values from 0 to TWO_PI) or converted to radians with the radians() method.
Shapes are always rotated around the upper-left corner of their bounding box. Positive numbers rotate objects in a clockwise direction. Transformations apply to everything that happens after and subsequent calls to the method accumulates the effect. For example, calling rotate(HALF_PI) and then rotate(HALF_PI) is the same as rotate(PI). This transformation is applied directly to the shape, it's not refreshed each time draw() is run.- Parameters:
angle
- angle of rotation specified in radians- See Also:
- Usage:
- web_application
-
rotate
public void rotate(float angle, float v0, float v1, float v2) -
scale
public void scale(float s) Increases or decreases the size of a shape by expanding and contracting vertices. Shapes always scale from the relative origin of their bounding box. Scale values are specified as decimal percentages. For example, the method call scale(2.0) increases the dimension of a shape by 200%. Subsequent calls to the method multiply the effect. For example, calling scale(2.0) and then scale(1.5) is the same as scale(3.0). This transformation is applied directly to the shape, it's not refreshed each time draw() is run.
Using this method with the z parameter requires using the P3D parameter in combination with size.- Parameters:
s
- percentage to scale the object- See Also:
- Usage:
- web_application
-
scale
public void scale(float x, float y) -
scale
public void scale(float x, float y, float z) - Parameters:
x
- percentage to scale the object in the x-axisy
- percentage to scale the object in the y-axisz
- percentage to scale the object in the z-axis
-
resetMatrix
public void resetMatrix()Replaces the current matrix of a shape with the identity matrix. The equivalent function in OpenGL is glLoadIdentity().- See Also:
- Usage:
- web_application
-
applyMatrix
-
applyMatrix
-
applyMatrix
public void applyMatrix(float n00, float n01, float n02, float n10, float n11, float n12) -
applyMatrix
-
applyMatrix
public void applyMatrix(float n00, float n01, float n02, float n03, float n10, float n11, float n12, float n13, float n20, float n21, float n22, float n23, float n30, float n31, float n32, float n33) -
colorMode
public void colorMode(int mode) -
colorMode
public void colorMode(int mode, float max) - Parameters:
max
- range for all color elements
-
colorMode
public void colorMode(int mode, float maxX, float maxY, float maxZ) - Parameters:
maxX
- range for the red or hue depending on the current color modemaxY
- range for the green or saturation depending on the current color modemaxZ
- range for the blue or brightness depending on the current color mode
-
colorMode
public void colorMode(int mode, float maxX, float maxY, float maxZ, float maxA) - Parameters:
maxA
- range for the alpha
-