Class PShapeOpenGL

java.lang.Object
processing.core.PShape
processing.opengl.PShapeOpenGL
All Implemented Interfaces:
PConstants

public class PShapeOpenGL extends PShape
This class holds a 3D model composed of vertices, normals, colors (per vertex) and texture coordinates (also per vertex). All this data is stored in Vertex Buffer Objects (VBO) in GPU memory for very fast access. OBJ loading implemented using code from Saito's OBJLoader library: http://code.google.com/p/saitoobjloader/ and OBJReader from Ahmet Kizilay http://www.openprocessing.org/visuals/?visualID=191 By Andres Colubri Other formats to consider: AMF: http://en.wikipedia.org/wiki/Additive_Manufacturing_File_Format STL: http://en.wikipedia.org/wiki/STL_(file_format) OFF: http://people.sc.fsu.edu/~jburkardt/data/off/off.html(file_format) DXF: http://en.wikipedia.org/wiki/AutoCAD_DXF
  • Field Details

    • POSITION

      public static final int POSITION
      See Also:
    • NORMAL

      public static final int NORMAL
      See Also:
    • TEXCOORD

      public static final int TEXCOORD
      See Also:
    • DIRECTION

      public static final int DIRECTION
      See Also:
    • OFFSET

      public static final int OFFSET
      See Also:
    • TRANSLATE

      protected static final int TRANSLATE
      See Also:
    • ROTATE

      protected static final int ROTATE
      See Also:
    • SCALE

      protected static final int SCALE
      See Also:
    • MATRIX

      protected static final int MATRIX
      See Also:
    • pg

      protected PGraphicsOpenGL pg
    • pgl

      protected PGL pgl
    • context

      protected int context
    • root

      protected PShapeOpenGL root
    • inGeo

      protected PGraphicsOpenGL.InGeometry inGeo
    • tessGeo

      protected PGraphicsOpenGL.TessGeometry tessGeo
    • tessellator

      protected PGraphicsOpenGL.Tessellator tessellator
    • polyAttribs

      protected PGraphicsOpenGL.AttributeMap polyAttribs
    • textures

      protected HashSet<PImage> textures
    • strokedTexture

      protected boolean strokedTexture
    • untexChild

      protected boolean untexChild
    • bufPolyVertex

      protected VertexBuffer bufPolyVertex
    • bufPolyColor

      protected VertexBuffer bufPolyColor
    • bufPolyNormal

      protected VertexBuffer bufPolyNormal
    • bufPolyTexCoord

      protected VertexBuffer bufPolyTexCoord
    • bufPolyAmbient

      protected VertexBuffer bufPolyAmbient
    • bufPolySpecular

      protected VertexBuffer bufPolySpecular
    • bufPolyEmissive

      protected VertexBuffer bufPolyEmissive
    • bufPolyShininess

      protected VertexBuffer bufPolyShininess
    • bufPolyIndex

      protected VertexBuffer bufPolyIndex
    • bufLineVertex

      protected VertexBuffer bufLineVertex
    • bufLineColor

      protected VertexBuffer bufLineColor
    • bufLineAttrib

      protected VertexBuffer bufLineAttrib
    • bufLineIndex

      protected VertexBuffer bufLineIndex
    • bufPointVertex

      protected VertexBuffer bufPointVertex
    • bufPointColor

      protected VertexBuffer bufPointColor
    • bufPointAttrib

      protected VertexBuffer bufPointAttrib
    • bufPointIndex

      protected VertexBuffer bufPointIndex
    • polyVertCopyOffset

      protected int polyVertCopyOffset
    • polyIndCopyOffset

      protected int polyIndCopyOffset
    • lineVertCopyOffset

      protected int lineVertCopyOffset
    • lineIndCopyOffset

      protected int lineIndCopyOffset
    • pointVertCopyOffset

      protected int pointVertCopyOffset
    • pointIndCopyOffset

      protected int pointIndCopyOffset
    • polyIndexOffset

      protected int polyIndexOffset
    • polyVertexOffset

      protected int polyVertexOffset
    • polyVertexAbs

      protected int polyVertexAbs
    • polyVertexRel

      protected int polyVertexRel
    • lineIndexOffset

      protected int lineIndexOffset
    • lineVertexOffset

      protected int lineVertexOffset
    • lineVertexAbs

      protected int lineVertexAbs
    • lineVertexRel

      protected int lineVertexRel
    • pointIndexOffset

      protected int pointIndexOffset
    • pointVertexOffset

      protected int pointVertexOffset
    • pointVertexAbs

      protected int pointVertexAbs
    • pointVertexRel

      protected int pointVertexRel
    • firstPolyIndexCache

      protected int firstPolyIndexCache
    • lastPolyIndexCache

      protected int lastPolyIndexCache
    • firstLineIndexCache

      protected int firstLineIndexCache
    • lastLineIndexCache

      protected int lastLineIndexCache
    • firstPointIndexCache

      protected int firstPointIndexCache
    • lastPointIndexCache

      protected int lastPointIndexCache
    • firstPolyVertex

      protected int firstPolyVertex
    • lastPolyVertex

      protected int lastPolyVertex
    • firstLineVertex

      protected int firstLineVertex
    • lastLineVertex

      protected int lastLineVertex
    • firstPointVertex

      protected int firstPointVertex
    • lastPointVertex

      protected int lastPointVertex
    • transform

      protected PMatrix transform
    • transformInv

      protected PMatrix transformInv
    • matrixInv

      protected PMatrix matrixInv
    • tessellated

      protected boolean tessellated
    • needBufferInit

      protected boolean needBufferInit
    • solid

      protected boolean solid
    • breakShape

      protected boolean breakShape
    • shapeCreated

      protected boolean shapeCreated
    • hasPolys

      protected boolean hasPolys
    • hasLines

      protected boolean hasLines
    • hasPoints

      protected boolean hasPoints
    • bezierDetail

      protected int bezierDetail
    • curveDetail

      protected int curveDetail
    • curveTightness

      protected float curveTightness
    • savedBezierDetail

      protected int savedBezierDetail
    • savedCurveDetail

      protected int savedCurveDetail
    • savedCurveTightness

      protected float savedCurveTightness
    • normalX

      protected float normalX
    • normalY

      protected float normalY
    • normalZ

      protected float normalZ
    • NORMAL_MODE_AUTO

      protected static final int NORMAL_MODE_AUTO
      See Also:
    • NORMAL_MODE_SHAPE

      protected static final int NORMAL_MODE_SHAPE
      See Also:
    • NORMAL_MODE_VERTEX

      protected static final int NORMAL_MODE_VERTEX
      See Also:
    • normalMode

      protected int normalMode
    • modified

      protected boolean modified
    • modifiedPolyVertices

      protected boolean modifiedPolyVertices
    • modifiedPolyColors

      protected boolean modifiedPolyColors
    • modifiedPolyNormals

      protected boolean modifiedPolyNormals
    • modifiedPolyTexCoords

      protected boolean modifiedPolyTexCoords
    • modifiedPolyAmbient

      protected boolean modifiedPolyAmbient
    • modifiedPolySpecular

      protected boolean modifiedPolySpecular
    • modifiedPolyEmissive

      protected boolean modifiedPolyEmissive
    • modifiedPolyShininess

      protected boolean modifiedPolyShininess
    • modifiedLineVertices

      protected boolean modifiedLineVertices
    • modifiedLineColors

      protected boolean modifiedLineColors
    • modifiedLineAttributes

      protected boolean modifiedLineAttributes
    • modifiedPointVertices

      protected boolean modifiedPointVertices
    • modifiedPointColors

      protected boolean modifiedPointColors
    • modifiedPointAttributes

      protected boolean modifiedPointAttributes
    • firstModifiedPolyVertex

      protected int firstModifiedPolyVertex
    • lastModifiedPolyVertex

      protected int lastModifiedPolyVertex
    • firstModifiedPolyColor

      protected int firstModifiedPolyColor
    • lastModifiedPolyColor

      protected int lastModifiedPolyColor
    • firstModifiedPolyNormal

      protected int firstModifiedPolyNormal
    • lastModifiedPolyNormal

      protected int lastModifiedPolyNormal
    • firstModifiedPolyTexCoord

      protected int firstModifiedPolyTexCoord
    • lastModifiedPolyTexCoord

      protected int lastModifiedPolyTexCoord
    • firstModifiedPolyAmbient

      protected int firstModifiedPolyAmbient
    • lastModifiedPolyAmbient

      protected int lastModifiedPolyAmbient
    • firstModifiedPolySpecular

      protected int firstModifiedPolySpecular
    • lastModifiedPolySpecular

      protected int lastModifiedPolySpecular
    • firstModifiedPolyEmissive

      protected int firstModifiedPolyEmissive
    • lastModifiedPolyEmissive

      protected int lastModifiedPolyEmissive
    • firstModifiedPolyShininess

      protected int firstModifiedPolyShininess
    • lastModifiedPolyShininess

      protected int lastModifiedPolyShininess
    • firstModifiedLineVertex

      protected int firstModifiedLineVertex
    • lastModifiedLineVertex

      protected int lastModifiedLineVertex
    • firstModifiedLineColor

      protected int firstModifiedLineColor
    • lastModifiedLineColor

      protected int lastModifiedLineColor
    • firstModifiedLineAttribute

      protected int firstModifiedLineAttribute
    • lastModifiedLineAttribute

      protected int lastModifiedLineAttribute
    • firstModifiedPointVertex

      protected int firstModifiedPointVertex
    • lastModifiedPointVertex

      protected int lastModifiedPointVertex
    • firstModifiedPointColor

      protected int firstModifiedPointColor
    • lastModifiedPointColor

      protected int lastModifiedPointColor
    • firstModifiedPointAttribute

      protected int firstModifiedPointAttribute
    • lastModifiedPointAttribute

      protected int lastModifiedPointAttribute
    • savedStroke

      protected boolean savedStroke
    • savedStrokeColor

      protected int savedStrokeColor
    • savedStrokeWeight

      protected float savedStrokeWeight
    • savedStrokeCap

      protected int savedStrokeCap
    • savedStrokeJoin

      protected int savedStrokeJoin
    • savedFill

      protected boolean savedFill
    • savedFillColor

      protected int savedFillColor
    • savedTint

      protected boolean savedTint
    • savedTintColor

      protected int savedTintColor
    • savedAmbientColor

      protected int savedAmbientColor
    • savedSpecularColor

      protected int savedSpecularColor
    • savedEmissiveColor

      protected int savedEmissiveColor
    • savedShininess

      protected float savedShininess
    • savedTextureMode

      protected int savedTextureMode
  • Constructor Details

    • PShapeOpenGL

      public PShapeOpenGL(PGraphicsOpenGL pg, int family)
    • PShapeOpenGL

      public PShapeOpenGL(PGraphicsOpenGL pg, int kind, float... p)
      Create a shape from the PRIMITIVE family, using this kind and these params
  • Method Details

    • addChild

      public void addChild(PShape who)
      Description copied from class: PShape
      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.
      Overrides:
      addChild in class PShape
      Parameters:
      who - any variable of type PShape
      See Also:
    • addChild

      public void addChild(PShape who, int idx)
      Overrides:
      addChild in class PShape
      idx - the layer position in which to insert the new child
    • removeChild

      public void removeChild(int idx)
      Description copied from class: PShape
      Remove the child shape with index idx.
      Overrides:
      removeChild in class PShape
    • updateRoot

      protected void updateRoot(PShape root)
    • createShape

      public static PShapeOpenGL createShape(PGraphicsOpenGL pg, PShape src)
    • copyGroup

      public static void copyGroup(PGraphicsOpenGL pg, PShape src, PShape dest)
    • getWidth

      public float getWidth()
      Description copied from class: PShape
      Get the width of the drawing area (not necessarily the shape boundary).
      Overrides:
      getWidth in class PShape
    • getHeight

      public float getHeight()
      Description copied from class: PShape
      Get the height of the drawing area (not necessarily the shape boundary).
      Overrides:
      getHeight in class PShape
    • getDepth

      public float getDepth()
      Description copied from class: PShape
      Get the depth of the shape area (not necessarily the shape boundary). Only makes sense for 3D PShape subclasses, such as PShape3D.
      Overrides:
      getDepth in class PShape
    • getVertexMin

      protected void getVertexMin(PVector min)
    • getVertexMax

      protected void getVertexMax(PVector max)
    • getVertexSum

      protected int getVertexSum(PVector sum, int count)
    • setTextureMode

      public void setTextureMode(int mode)
      Overrides:
      setTextureMode in class PShape
    • setTextureModeImpl

      protected void setTextureModeImpl(int mode)
    • setTexture

      public void setTexture(PImage tex)
      Overrides:
      setTexture in class PShape
    • setTextureImpl

      protected void setTextureImpl(PImage tex)
    • scaleTextureUV

      protected void scaleTextureUV(float uFactor, float vFactor)
    • addTexture

      protected void addTexture(PImage tex)
    • removeTexture

      protected void removeTexture(PImage tex, PShapeOpenGL caller)
    • strokedTexture

      protected void strokedTexture(boolean newValue)
    • strokedTexture

      protected void strokedTexture(boolean newValue, PShapeOpenGL caller)
    • untexChild

      protected void untexChild(boolean newValue)
    • untexChild

      protected void untexChild(boolean newValue, PShapeOpenGL caller)
    • hasTexture

      protected boolean hasTexture()
    • hasTexture

      protected boolean hasTexture(PImage tex)
    • hasStrokedTexture

      protected boolean hasStrokedTexture()
    • solid

      public void solid(boolean solid)
      Overrides:
      solid in class PShape
    • beginContourImpl

      protected void beginContourImpl()
      Overrides:
      beginContourImpl in class PShape
    • endContourImpl

      protected void endContourImpl()
      Overrides:
      endContourImpl in class PShape
    • vertex

      public void vertex(float x, float y)
      Overrides:
      vertex in class PShape
    • vertex

      public void vertex(float x, float y, float u, float v)
      Overrides:
      vertex in class PShape
    • vertex

      public void vertex(float x, float y, float z)
      Overrides:
      vertex in class PShape
    • vertex

      public void vertex(float x, float y, float z, float u, float v)
      Overrides:
      vertex in class PShape
    • vertexImpl

      protected void vertexImpl(float x, float y, float z, float u, float v)
    • vertexBreak

      protected boolean vertexBreak()
    • normal

      public void normal(float nx, float ny, float nz)
      Overrides:
      normal in class PShape
    • attribPosition

      public void attribPosition(String name, float x, float y, float z)
      Overrides:
      attribPosition in class PShape
    • attribNormal

      public void attribNormal(String name, float nx, float ny, float nz)
      Overrides:
      attribNormal in class PShape
    • attribColor

      public void attribColor(String name, int color)
      Overrides:
      attribColor in class PShape
    • attrib

      public void attrib(String name, float... values)
      Overrides:
      attrib in class PShape
    • attrib

      public void attrib(String name, int... values)
      Overrides:
      attrib in class PShape
    • attrib

      public void attrib(String name, boolean... values)
      Overrides:
      attrib in class PShape
    • attribImpl

      protected PGraphicsOpenGL.VertexAttribute attribImpl(String name, int kind, int type, int size)
    • endShape

      public void endShape(int mode)
      Overrides:
      endShape in class PShape
    • setParams

      public void setParams(float[] source)
      Overrides:
      setParams in class PShape
    • setPath

      public void setPath(int vcount, float[][] verts, int ccount, int[] codes)
      Overrides:
      setPath in class PShape
    • translate

      public void translate(float tx, float ty)
      Description copied from class: PShape
      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.
      Overrides:
      translate in class PShape
      Parameters:
      tx - left/right translation
      ty - up/down translation
      See Also:
    • translate

      public void translate(float tx, float ty, float tz)
      Overrides:
      translate in class PShape
      tz - forward/back translation
    • rotate

      public void rotate(float angle)
      Description copied from class: PShape
      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.
      Overrides:
      rotate in class PShape
      Parameters:
      angle - angle of rotation specified in radians
      See Also:
    • rotateX

      public void rotateX(float angle)
      Description copied from class: PShape
      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.
      Overrides:
      rotateX in class PShape
      Parameters:
      angle - angle of rotation specified in radians
      See Also:
    • rotateY

      public void rotateY(float angle)
      Description copied from class: PShape
      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.
      Overrides:
      rotateY in class PShape
      Parameters:
      angle - angle of rotation specified in radians
      See Also:
    • rotateZ

      public void rotateZ(float angle)
      Description copied from class: PShape
      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.
      Overrides:
      rotateZ in class PShape
      Parameters:
      angle - angle of rotation specified in radians
      See Also:
    • rotate

      public void rotate(float angle, float v0, float v1, float v2)
      Overrides:
      rotate in class PShape
    • scale

      public void scale(float s)
      Description copied from class: PShape
      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.
      Overrides:
      scale in class PShape
      Parameters:
      s - percentage to scale the object
      See Also:
    • scale

      public void scale(float x, float y)
      Overrides:
      scale in class PShape
    • scale

      public void scale(float x, float y, float z)
      Overrides:
      scale in class PShape
      Parameters:
      x - percentage to scale the object in the x-axis
      y - percentage to scale the object in the y-axis
      z - percentage to scale the object in the z-axis
    • applyMatrix

      public void applyMatrix(PMatrix2D source)
      Overrides:
      applyMatrix in class PShape
    • applyMatrix

      public void applyMatrix(float n00, float n01, float n02, float n10, float n11, float n12)
      Overrides:
      applyMatrix in class PShape
    • 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)
      Overrides:
      applyMatrix in class PShape
    • resetMatrix

      public void resetMatrix()
      Description copied from class: PShape
      Replaces the current matrix of a shape with the identity matrix. The equivalent function in OpenGL is glLoadIdentity().
      Overrides:
      resetMatrix in class PShape
      See Also:
    • transform

      protected void transform(int type, float... args)
    • applyMatrixImpl

      protected void applyMatrixImpl(PMatrix matrix)
    • checkMatrix

      protected void checkMatrix(int dimensions)
      Description copied from class: PShape
      Make sure that the shape's matrix is 1) not null, and 2) has a matrix that can handle at least the specified number of dimensions.
      Overrides:
      checkMatrix in class PShape
    • bezierDetail

      public void bezierDetail(int detail)
      Overrides:
      bezierDetail in class PShape
    • bezierVertex

      public void bezierVertex(float x2, float y2, float x3, float y3, float x4, float y4)
      Overrides:
      bezierVertex in class PShape
    • bezierVertex

      public void bezierVertex(float x2, float y2, float z2, float x3, float y3, float z3, float x4, float y4, float z4)
      Overrides:
      bezierVertex in class PShape
    • bezierVertexImpl

      protected void bezierVertexImpl(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)
      Overrides:
      quadraticVertex in class PShape
    • quadraticVertex

      public void quadraticVertex(float cx, float cy, float cz, float x3, float y3, float z3)
      Overrides:
      quadraticVertex in class PShape
    • quadraticVertexImpl

      protected void quadraticVertexImpl(float cx, float cy, float cz, float x3, float y3, float z3)
    • curveDetail

      public void curveDetail(int detail)
      Overrides:
      curveDetail in class PShape
    • curveTightness

      public void curveTightness(float tightness)
      Overrides:
      curveTightness in class PShape
    • curveVertex

      public void curveVertex(float x, float y)
      Overrides:
      curveVertex in class PShape
    • curveVertex

      public void curveVertex(float x, float y, float z)
      Overrides:
      curveVertex in class PShape
    • curveVertexImpl

      protected void curveVertexImpl(float x, float y, float z)
    • getVertexCount

      public int getVertexCount()
      Overrides:
      getVertexCount in class PShape
    • getVertexCount

      public int getVertexCount(boolean includeChildren)
      Description copied from class: PShape
      The getVertexCount() method returns the number of vertices (with an option to count children by passing true as boolean parameter to method call) that make up a PShape. By default, it does not count child vertices for GROUP shapes. To include child vertices, pass true as a boolean parameter. In the above example, the value 4 is returned by the getVertexCount() method because 4 vertices are defined in setup().
      Overrides:
      getVertexCount in class PShape
      See Also:
    • getVertex

      public PVector getVertex(int index, PVector vec)
      Overrides:
      getVertex in class PShape
      vec - PVector to assign the data to
    • getVertexX

      public float getVertexX(int index)
      Overrides:
      getVertexX in class PShape
    • getVertexY

      public float getVertexY(int index)
      Overrides:
      getVertexY in class PShape
    • getVertexZ

      public float getVertexZ(int index)
      Overrides:
      getVertexZ in class PShape
    • setVertex

      public void setVertex(int index, float x, float y)
      Description copied from class: PShape
      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).
      Overrides:
      setVertex in class PShape
      Parameters:
      index - the location of the vertex
      x - the x value for the vertex
      y - the y value for the vertex
      See Also:
    • setVertex

      public void setVertex(int index, float x, float y, float z)
      Overrides:
      setVertex in class PShape
      z - the z value for the vertex
    • setVertex

      public void setVertex(int index, PVector vec)
      Overrides:
      setVertex in class PShape
      vec - the PVector to define the x, y, z coordinates
    • getNormal

      public PVector getNormal(int index, PVector vec)
      Overrides:
      getNormal in class PShape
    • getNormalX

      public float getNormalX(int index)
      Overrides:
      getNormalX in class PShape
    • getNormalY

      public float getNormalY(int index)
      Overrides:
      getNormalY in class PShape
    • getNormalZ

      public float getNormalZ(int index)
      Overrides:
      getNormalZ in class PShape
    • setNormal

      public void setNormal(int index, float nx, float ny, float nz)
      Overrides:
      setNormal in class PShape
    • getTextureU

      public float getTextureU(int index)
      Overrides:
      getTextureU in class PShape
    • getTextureV

      public float getTextureV(int index)
      Overrides:
      getTextureV in class PShape
    • setTextureUV

      public void setTextureUV(int index, float u, float v)
      Overrides:
      setTextureUV in class PShape
    • getFill

      public int getFill(int index)
      Overrides:
      getFill in class PShape
    • setFill

      public void setFill(boolean fill)
      Overrides:
      setFill in class PShape
    • setFill

      public void setFill(int fill)
      Description copied from class: PShape
      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.
      Overrides:
      setFill in class PShape
    • setFillImpl

      protected void setFillImpl(int fill)
    • setFill

      public void setFill(int index, int fill)
      Overrides:
      setFill in class PShape
    • getTint

      public int getTint(int index)
      Overrides:
      getTint in class PShape
    • setTint

      public void setTint(boolean tint)
      Overrides:
      setTint in class PShape
    • setTint

      public void setTint(int tint)
      Overrides:
      setTint in class PShape
    • setTintImpl

      protected void setTintImpl(int tint)
    • setTint

      public void setTint(int index, int tint)
      Overrides:
      setTint in class PShape
    • getStroke

      public int getStroke(int index)
      Overrides:
      getStroke in class PShape
    • setStroke

      public void setStroke(boolean stroke)
      Overrides:
      setStroke in class PShape
    • setStrokeImpl

      protected void setStrokeImpl(boolean stroke)
    • setStroke

      public void setStroke(int stroke)
      Description copied from class: PShape
      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.
      Overrides:
      setStroke in class PShape
    • setStrokeImpl

      protected void setStrokeImpl(int stroke)
    • setStroke

      public void setStroke(int index, int stroke)
      Overrides:
      setStroke in class PShape
    • getStrokeWeight

      public float getStrokeWeight(int index)
      Overrides:
      getStrokeWeight in class PShape
    • setStrokeWeight

      public void setStrokeWeight(float weight)
      Overrides:
      setStrokeWeight in class PShape
    • setStrokeWeightImpl

      protected void setStrokeWeightImpl(float weight)
    • setStrokeWeight

      public void setStrokeWeight(int index, float weight)
      Overrides:
      setStrokeWeight in class PShape
    • setStrokeJoin

      public void setStrokeJoin(int join)
      Overrides:
      setStrokeJoin in class PShape
    • setStrokeCap

      public void setStrokeCap(int cap)
      Overrides:
      setStrokeCap in class PShape
    • getAmbient

      public int getAmbient(int index)
      Overrides:
      getAmbient in class PShape
    • setAmbient

      public void setAmbient(int ambient)
      Overrides:
      setAmbient in class PShape
    • setAmbientImpl

      protected void setAmbientImpl(int ambient)
    • setAmbient

      public void setAmbient(int index, int ambient)
      Overrides:
      setAmbient in class PShape
    • getSpecular

      public int getSpecular(int index)
      Overrides:
      getSpecular in class PShape
    • setSpecular

      public void setSpecular(int specular)
      Overrides:
      setSpecular in class PShape
    • setSpecularImpl

      protected void setSpecularImpl(int specular)
    • setSpecular

      public void setSpecular(int index, int specular)
      Overrides:
      setSpecular in class PShape
    • getEmissive

      public int getEmissive(int index)
      Overrides:
      getEmissive in class PShape
    • setEmissive

      public void setEmissive(int emissive)
      Overrides:
      setEmissive in class PShape
    • setEmissiveImpl

      protected void setEmissiveImpl(int emissive)
    • setEmissive

      public void setEmissive(int index, int emissive)
      Overrides:
      setEmissive in class PShape
    • getShininess

      public float getShininess(int index)
      Overrides:
      getShininess in class PShape
    • setShininess

      public void setShininess(float shininess)
      Overrides:
      setShininess in class PShape
    • setShininessImpl

      protected void setShininessImpl(float shininess)
    • setShininess

      public void setShininess(int index, float shine)
      Overrides:
      setShininess in class PShape
    • getAttribPosition

      public PVector getAttribPosition(String name, int index, PVector vec)
    • getAttribPositionX

      public float getAttribPositionX(String name, int index)
    • getAttribPositionY

      public float getAttribPositionY(String name, int index)
    • getAttribPositionZ

      public float getAttribPositionZ(String name, int index)
    • getAttribNormal

      public PVector getAttribNormal(String name, int index, PVector vec)
    • getAttribNormalX

      public float getAttribNormalX(String name, int index)
    • getAttribNormalY

      public float getAttribNormalY(String name, int index)
    • getAttribNormalZ

      public float getAttribNormalZ(String name, int index)
    • getAttribColor

      public int getAttribColor(String name, int index)
    • getAttrib

      public float[] getAttrib(String name, int index, float[] values)
    • getAttrib

      public int[] getAttrib(String name, int index, int[] values)
    • getAttrib

      public boolean[] getAttrib(String name, int index, boolean[] values)
    • setAttribPosition

      public void setAttribPosition(String name, int index, float x, float y, float z)
    • setAttribNormal

      public void setAttribNormal(String name, int index, float nx, float ny, float nz)
    • setAttribColor

      public void setAttribColor(String name, int index, int color)
    • setAttrib

      public void setAttrib(String name, int index, float... values)
    • setAttrib

      public void setAttrib(String name, int index, int... values)
    • setAttrib

      public void setAttrib(String name, int index, boolean... values)
    • getVertexCodes

      public int[] getVertexCodes()
      Overrides:
      getVertexCodes in class PShape
    • getVertexCodeCount

      public int getVertexCodeCount()
      Overrides:
      getVertexCodeCount in class PShape
    • getVertexCode

      public int getVertexCode(int index)
      One of VERTEX, BEZIER_VERTEX, CURVE_VERTEX, or BREAK.
      Overrides:
      getVertexCode in class PShape
    • getTessellation

      public PShape getTessellation()
      Description copied from class: PShape
      Returns a PShape holding the tessellated geometry of this shape, composed entirely of triangles.
      Overrides:
      getTessellation in class PShape
    • beginTessellation

      public void beginTessellation(int kind)
      Overrides:
      beginTessellation in class PShape
    • endTessellation

      public void endTessellation()
      Overrides:
      endTessellation in class PShape
    • 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).
      Overrides:
      contains in class PShape
    • updateTessellation

      protected void updateTessellation()
    • markForTessellation

      protected void markForTessellation()
    • initModified

      protected void initModified()
    • tessellate

      protected void tessellate()
    • collectPolyAttribs

      protected void collectPolyAttribs()
    • tessellateImpl

      protected void tessellateImpl()
    • tessellatePoint

      protected void tessellatePoint()
    • tessellateLine

      protected void tessellateLine()
    • tessellateTriangle

      protected void tessellateTriangle()
    • tessellateQuad

      protected void tessellateQuad()
    • tessellateRect

      protected void tessellateRect()
    • tessellateEllipse

      protected void tessellateEllipse()
    • tessellateArc

      protected void tessellateArc()
    • tessellateBox

      protected void tessellateBox()
    • tessellateSphere

      protected void tessellateSphere()
    • tessellatePath

      protected void tessellatePath()
    • saveBezierVertexSettings

      protected void saveBezierVertexSettings()
    • restoreBezierVertexSettings

      protected void restoreBezierVertexSettings()
    • saveCurveVertexSettings

      protected void saveCurveVertexSettings()
    • restoreCurveVertexSettings

      protected void restoreCurveVertexSettings()
    • aggregate

      protected void aggregate()
    • aggregateImpl

      protected void aggregateImpl()
    • updatePolyIndexCache

      protected void updatePolyIndexCache()
    • startStrokedTex

      protected boolean startStrokedTex(int n)
    • setFirstStrokeVertex

      protected void setFirstStrokeVertex(int n, int vert)
    • setLastStrokeVertex

      protected void setLastStrokeVertex(int vert)
    • updateLineIndexCache

      protected void updateLineIndexCache()
    • updatePointIndexCache

      protected void updatePointIndexCache()
    • initBuffers

      protected void initBuffers()
    • initPolyBuffers

      protected void initPolyBuffers()
    • initLineBuffers

      protected void initLineBuffers()
    • initPointBuffers

      protected void initPointBuffers()
    • contextIsOutdated

      protected boolean contextIsOutdated()
    • updateGeometry

      protected void updateGeometry()
    • updateGeometryImpl

      protected void updateGeometryImpl()
    • copyPolyVertices

      protected void copyPolyVertices(int offset, int size)
    • copyPolyColors

      protected void copyPolyColors(int offset, int size)
    • copyPolyNormals

      protected void copyPolyNormals(int offset, int size)
    • copyPolyTexCoords

      protected void copyPolyTexCoords(int offset, int size)
    • copyPolyAmbient

      protected void copyPolyAmbient(int offset, int size)
    • copyPolySpecular

      protected void copyPolySpecular(int offset, int size)
    • copyPolyEmissive

      protected void copyPolyEmissive(int offset, int size)
    • copyPolyShininess

      protected void copyPolyShininess(int offset, int size)
    • copyPolyAttrib

      protected void copyPolyAttrib(PGraphicsOpenGL.VertexAttribute attrib, int offset, int size)
    • copyLineVertices

      protected void copyLineVertices(int offset, int size)
    • copyLineColors

      protected void copyLineColors(int offset, int size)
    • copyLineAttributes

      protected void copyLineAttributes(int offset, int size)
    • copyPointVertices

      protected void copyPointVertices(int offset, int size)
    • copyPointColors

      protected void copyPointColors(int offset, int size)
    • copyPointAttributes

      protected void copyPointAttributes(int offset, int size)
    • setModifiedPolyVertices

      protected void setModifiedPolyVertices(int first, int last)
    • setModifiedPolyColors

      protected void setModifiedPolyColors(int first, int last)
    • setModifiedPolyNormals

      protected void setModifiedPolyNormals(int first, int last)
    • setModifiedPolyTexCoords

      protected void setModifiedPolyTexCoords(int first, int last)
    • setModifiedPolyAmbient

      protected void setModifiedPolyAmbient(int first, int last)
    • setModifiedPolySpecular

      protected void setModifiedPolySpecular(int first, int last)
    • setModifiedPolyEmissive

      protected void setModifiedPolyEmissive(int first, int last)
    • setModifiedPolyShininess

      protected void setModifiedPolyShininess(int first, int last)
    • setModifiedPolyAttrib

      protected void setModifiedPolyAttrib(PGraphicsOpenGL.VertexAttribute attrib, int first, int last)
    • setModifiedLineVertices

      protected void setModifiedLineVertices(int first, int last)
    • setModifiedLineColors

      protected void setModifiedLineColors(int first, int last)
    • setModifiedLineAttributes

      protected void setModifiedLineAttributes(int first, int last)
    • setModifiedPointVertices

      protected void setModifiedPointVertices(int first, int last)
    • setModifiedPointColors

      protected void setModifiedPointColors(int first, int last)
    • setModifiedPointAttributes

      protected void setModifiedPointAttributes(int first, int last)
    • disableStyle

      public void disableStyle()
      Description copied from class: PShape
      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.
      Overrides:
      disableStyle in class PShape
      See Also:
    • enableStyle

      public void enableStyle()
      Description copied from class: PShape
      Enables the shape's style data and ignores Processing's current styles. Styles include attributes such as colors, stroke weight, and stroke joints.
      Overrides:
      enableStyle in class PShape
      See Also:
    • styles

      protected void styles(PGraphics g)
      Overrides:
      styles in class PShape
    • draw

      public void draw(PGraphics g)
      Description copied from class: PShape
      Called by the following (the shape() command adds the g) PShape s = loadShape("blah.svg"); shape(s);
      Overrides:
      draw in class PShape
    • fragmentedGroup

      protected boolean fragmentedGroup(PGraphicsOpenGL g)
    • pre

      protected void pre(PGraphics g)
      Overrides:
      pre in class PShape
    • post

      protected void post(PGraphics g)
      Overrides:
      post in class PShape
    • drawGeometry

      protected void drawGeometry(PGraphics g)
      Overrides:
      drawGeometry in class PShape
    • render

      protected void render(PGraphicsOpenGL g, PImage texture)
    • renderPolys

      protected void renderPolys(PGraphicsOpenGL g, PImage textureImage)
    • rawPolys

      protected void rawPolys(PGraphicsOpenGL g, PImage textureImage)
    • renderLines

      protected void renderLines(PGraphicsOpenGL g)
    • rawLines

      protected void rawLines(PGraphicsOpenGL g)
    • renderPoints

      protected void renderPoints(PGraphicsOpenGL g)
    • rawPoints

      protected void rawPoints(PGraphicsOpenGL g)