igeo.p

## Class PIGraphicsGL3

- java.lang.Object
- - processing.core.PImage
  - - processing.core.PGraphics
    - - processing.opengl.PGraphicsOpenGL
      - - processing.opengl.PGraphics3D
        - - igeo.p.PIGraphicsGL3

- All Implemented Interfaces:
    java.lang.Cloneable, processing.core.PConstants

      public class PIGraphicsGL3
      extends processing.opengl.PGraphics3D

  A child class of Processing's PGraphic to draw on Processing using OpenGL. This class also manages the IServer to manage all the objects in iGeo.
  Author:
    Satoru Sugihara

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class processing.opengl.PGraphicsOpenGL

      `processing.opengl.PGraphicsOpenGL.AsyncPixelReader, processing.opengl.PGraphicsOpenGL.AttributeMap, processing.opengl.PGraphicsOpenGL.DepthSorter, processing.opengl.PGraphicsOpenGL.GLResourceFrameBuffer, processing.opengl.PGraphicsOpenGL.GLResourceShader, processing.opengl.PGraphicsOpenGL.GLResourceTexture, processing.opengl.PGraphicsOpenGL.GLResourceVertexBuffer, processing.opengl.PGraphicsOpenGL.IndexCache, processing.opengl.PGraphicsOpenGL.InGeometry, processing.opengl.PGraphicsOpenGL.Tessellator, processing.opengl.PGraphicsOpenGL.TessGeometry, processing.opengl.PGraphicsOpenGL.TexCache, processing.opengl.PGraphicsOpenGL.VertexAttribute`

    - ### Nested classes/interfaces inherited from class processing.core.PGraphics

      `processing.core.PGraphics.AsyncImageSaver`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `boolean` | `finished`
    `IGraphics3D` | `igg`
    `processing.opengl.PGL` | `localPGL`
    `boolean` | `looping`
    `com.jogamp.opengl.util.awt.Overlay` | `overlay` To draw Java2D graphic over OpenGL graphic.
    `static java.awt.Color` | `overlayBG` Background color of overlay should be transparent.
    `boolean` | `overwritePAppletFinish` To show iGeo correctly in Processing's basic mode, this needs to be true.
    `boolean` | `overwritePAppletLoop` To show iGeo correctly in Processing's basic mode, this needs to be true.
    `IPanelI` | `panel`

    - ### Fields inherited from class processing.opengl.PGraphicsOpenGL

      `anisoSamplingSupported, asyncPixelReader, asyncPixelReaderInitialized, autoMipmapGenSupported, blendEqSupported, breakShape, bufLineAttrib, bufLineColor, bufLineIndex, bufLineVertex, bufPointAttrib, bufPointColor, bufPointIndex, bufPointVertex, bufPolyAmbient, bufPolyColor, bufPolyEmissive, bufPolyIndex, bufPolyNormal, bufPolyShininess, bufPolySpecular, bufPolyTexcoord, bufPolyVertex, camera, cameraAspect, cameraFar, cameraFOV, cameraInv, cameraInvStack, cameraNear, cameraStack, cameraX, cameraY, cameraZ, clip, clipRect, currentFramebuffer, currentLightFalloffConstant, currentLightFalloffLinear, currentLightFalloffQuadratic, currentLightSpecular, currentPG, defaultEdges, defCameraAspect, defCameraFar, defCameraFOV, defCameraNear, defCameraX, defCameraY, defCameraZ, defColorShader, defColorShaderFragURL, defColorShaderVertURL, defLightShader, defLightShaderFragURL, defLightShaderVertURL, defLineShader, defLineShaderFragURL, defLineShaderVertURL, defPointShader, defPointShaderFragURL, defPointShaderVertURL, defTexlightShader, defTexlightShaderFragURL, defTexlightShaderVertURL, defTextureShader, defTextureShaderFragURL, defTextureShaderVertURL, depthBits, drawBufferSupported, drawFramebuffer, drawing, EDGE_CLOSE, EDGE_MIDDLE, EDGE_SINGLE, EDGE_START, EDGE_STOP, eyeDist, FB_STACK_DEPTH, fboMultisampleSupported, fbStack, fbStackDepth, filterImage, filterTexture, floatBuffer, FLUSH_CONTINUOUSLY, FLUSH_WHEN_FULL, flushMode, fontMap, glModelview, glNormal, glParamsRead, glProjection, glProjmodelview, GLSL_VERSION, identity, IMMEDIATE, inGeo, INIT_INDEX_BUFFER_SIZE, INIT_VERTEX_BUFFER_SIZE, initialized, intBuffer, isDepthSortingEnabled, lastBlendMode, lastSmoothCall, lightAmbient, lightCount, lightDiffuse, lightFalloffCoefficients, lightNormal, lightPosition, lights, lightSpecular, lightSpotParameters, lightType, lineBuffersContext, lineBuffersCreated, lineShader, manipulatingCamera, maskShader, maskShaderFragURL, MATRIX_STACK_DEPTH, MAX_POINT_ACCURACY, maxAnisoAmount, maxSamples, maxTextureSize, MIN_POINT_ACCURACY, modelview, modelviewInv, modelviewInvStack, modelviewStack, modelviewStackDepth, multisampleFramebuffer, nativePixelBuffer, nativePixels, npotTexSupported, offscreenFramebuffer, offscreenMultisample, ongoingPixelTransfers, ongoingPixelTransfersIterable, OP_NONE, OP_READ, OP_WRITE, openContour, OPENGL_EXTENSIONS, OPENGL_RENDERER, OPENGL_VENDOR, OPENGL_VERSION, packedDepthStencilSupported, pgl, pixelBuffer, pixelsOp, pixOpChangedFB, POINT_ACCURACY_FACTOR, pointBuffersContext, pointBuffersCreated, pointShader, polyAttribs, polyBuffersContext, polyBuffersCreated, polyShader, projection, projectionStack, projectionStackDepth, projmodelview, ptexture, QUAD_POINT_SIGNS, readBufferSupported, readFramebuffer, RETAINED, sized, smoothCallCount, smoothDisabled, sorter, stencilBits, tessellator, tessGeo, texCache, texture, textureSampling, textureWrap, viewport`

    - ### Fields inherited from class processing.core.PGraphics

      `A, AB, AG, ambientB, ambientColor, ambientG, ambientR, AR, asyncImageSaver, autoNormal, B, backgroundA, backgroundAi, backgroundAlpha, backgroundB, backgroundBi, backgroundColor, backgroundG, backgroundGi, backgroundR, backgroundRi, BEEN_LIT, bezierBasisInverse, bezierBasisMatrix, bezierDetail, bezierDrawMatrix, bezierInited, blendMode, cacheMap, calcA, calcAi, calcAlpha, calcB, calcBi, calcColor, calcG, calcGi, calcR, calcRi, colorMode, colorModeA, colorModeX, colorModeY, colorModeZ, cosLUT, curveBasisMatrix, curveDetail, curveDrawMatrix, curveInited, curveTightness, curveToBezierMatrix, curveVertexCount, curveVertices, DA, DB, DEFAULT_STROKE_CAP, DEFAULT_STROKE_JOIN, DEFAULT_STROKE_WEIGHT, DEFAULT_VERTICES, DG, DR, EB, edge, EDGE, EG, ellipseMode, emissiveB, emissiveColor, emissiveG, emissiveR, ER, ERROR_BACKGROUND_IMAGE_FORMAT, ERROR_BACKGROUND_IMAGE_SIZE, ERROR_PUSHMATRIX_OVERFLOW, ERROR_PUSHMATRIX_UNDERFLOW, ERROR_TEXTFONT_NULL_PFONT, fill, fillA, fillAi, fillAlpha, fillB, fillBi, fillColor, fillG, fillGi, fillR, fillRi, G, HAS_NORMAL, hints, image, imageMode, NORMAL_MODE_AUTO, NORMAL_MODE_SHAPE, NORMAL_MODE_VERTEX, normalMode, normalX, normalY, normalZ, NX, NY, NZ, path, pixelCount, primaryGraphics, R, raw, reapplySettings, rectMode, SA, SB, setAmbient, settingsInited, SG, shape, shapeMode, SHINE, shininess, SINCOS_LENGTH, SINCOS_PRECISION, sinLUT, smooth, SPB, specularB, specularColor, specularG, specularR, SPG, sphereDetailU, sphereDetailV, sphereX, sphereY, sphereZ, SPR, SR, stroke, strokeA, strokeAi, strokeAlpha, strokeB, strokeBi, strokeCap, strokeColor, strokeG, strokeGi, strokeJoin, strokeR, strokeRi, strokeWeight, surface, SW, textAlign, textAlignY, textBreakCount, textBreakStart, textBreakStop, textBuffer, textFont, textLeading, textMode, textSize, textureImage, textureMode, textureU, textureV, textWidthBuffer, tint, tintA, tintAi, tintAlpha, tintB, tintBi, tintColor, tintG, tintGi, tintR, tintRi, TX, TY, TZ, U, V, VERTEX_FIELD_COUNT, vertexCount, vertices, VW, VX, VY, VZ, warnings`

    - ### Fields inherited from class processing.core.PImage

      `ALPHA_MASK, BLUE_MASK, format, GREEN_MASK, height, loaded, modified, mx1, mx2, my1, my2, parent, pixelDensity, pixelHeight, pixels, pixelWidth, RED_MASK, saveImageFormats, width`

    - ### 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, MACOSX, MAX_FLOAT, MAX_INT, MIN_FLOAT, MIN_INT, MITER, MODEL, MODELVIEW, MOVE, MULTIPLY, NORMAL, OPAQUE, OPEN, OPENGL, ORTHOGRAPHIC, OTHER, OVERLAY, P2D, P3D, PATH, 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

    Constructors
    Constructor and Description
    `PIGraphicsGL3()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `draw()`
    `void` | `drawIG()` Drawing all the iGeo objects through IPanel.
    `protected java.awt.Canvas` | `getCanvas()`
    `com.jogamp.opengl.GL` | `getGL()`
    `com.jogamp.opengl.GL2` | `getGL2()`
    `processing.opengl.PGL` | `getPGL()`
    `void` | `initPrimary()`
    `void` | `keyEvent(processing.event.KeyEvent m)`
    `void` | `loop()`
    `void` | `mouseEvent(processing.event.MouseEvent m)`
    `void` | `noLoop()`
    `void` | `post()`
    `void` | `pre()`
    `void` | `setOverlay()`
    `void` | `setParent(processing.core.PApplet parent)` setParent is called by Processing in the initialization process of Processing.
    `void` | `setSize(int w, int h)`
    `void` | `start()`
    `void` | `stop()`

    - ### Methods inherited from class processing.opengl.PGraphics3D

      `begin2D, defaultCamera, defaultPerspective, end2D, is2D, is3D, isSupportedExtension, loadShapeImpl`

    - ### Methods inherited from class processing.opengl.PGraphicsOpenGL

      `addTexture, addTexture, allocatePixels, ambientLight, ambientLight, applyMatrix, applyMatrix, applyMatrix, applyMatrix, applyMatrixImpl, applyProjection, applyProjection, arcImpl, attrib, attrib, attrib, attribColor, attribImpl, attribNormal, attribPosition, awaitAsyncSaveCompletion, backgroundImpl, backgroundImpl, beginBindFramebuffer, beginCamera, beginContour, beginDraw, beginOffscreenDraw, beginOnscreenDraw, beginPGL, beginPixelsOp, beginReadPixels, beginShape, bezierVertex, bezierVertex, bezierVertexImpl, bindFrontTexture, blendModeImpl, box, camera, camera, checkGLThread, checkSettings, checkTexture, clipImpl, completeAllPixelTransfers, completeFinishedPixelTransfers, copy, copy, createLineBuffers, createPGL, createPointBuffers, createPolyBuffers, createPTexture, createShapeFamily, createShapePrimitive, createSurface, curveVertex, curveVertex, curveVertexImpl, defaultSettings, deleteSurfaceTextures, diff, directionalLight, disableLighting, dispose, drawPixels, drawPTexture, drawTexture, drawTexture, ellipseImpl, enableLighting, endBindFramebuffer, endCamera, endContour, endDraw, endOffscreenDraw, endOnscreenDraw, endPGL, endPixelsOp, endReadPixels, endShape, endShape, expandArraySize, fillFromCalc, filter, filter, filter, flush, flushLines, flushPixels, flushPoints, flushPolys, flushSortedPolys, frustum, get, getCache, getCurrentFB, getCurrentPG, getFontTexture, getFrameBuffer, getFrameBuffer, getGLParameters, getHint, getImpl, getLineShader, getMatrix, getMatrix, getPointShader, getPolyShader, getPrimaryPG, getPrimaryPGL, getTexture, getTexture, getTexture, handleTextSize, hint, initCache, initOffscreen, invRotate, invRotate, invScale, invScale, invTranslate, invTranslate, isGL, lightAmbient, lightDiffuse, lightFalloff, lightFalloff, lightNormal, lightPosition, lights, lightSpecular, lightSpecular, lightSpot, line, line, lineBufferContextIsOutdated, lineImpl, loadPixels, loadShader, loadShader, loadShape, loadTexture, loadTextureImpl, mask, matrixScale, modelX, modelY, modelZ, newAttributeMap, newInGeometry, newTessGeometry, newTexCache, noClip, noLightAmbient, noLightDiffuse, noLightFalloff, noLights, noLightSpecular, noLightSpot, nonOrthoProjection, nonZero, ortho, ortho, ortho, orthoProjection, perspective, perspective, point, point, pointBuffersContextIsOutdated, pointImpl, pointLight, polyBuffersContextIsOutdated, popFramebuffer, popMatrix, popProjection, popStyle, printCamera, printMatrix, printProjection, processImageBeforeAsyncSave, pushFramebuffer, pushMatrix, pushProjection, quad, quadraticVertex, quadraticVertex, quadraticVertexImpl, readPixels, rectImpl, removeCache, removeFontTexture, report, resetMatrix, resetProjection, resetShader, resetShader, resize, restartPGL, restoreGL, rotate, rotate, rotateImpl, rotateX, rotateY, rotateZ, same, save, saveImpl, scale, scale, scale, scaleImpl, screenX, screenX, screenXImpl, screenXImpl, screenY, screenY, screenYImpl, screenYImpl, screenZ, screenZImpl, screenZImpl, set, setCache, setCurrentPG, setCurrentPG, setFlushMode, setFontTexture, setFramebuffer, setGLSettings, setImpl, setMatrix, setMatrix, setPrimary, setProjection, setViewport, shader, shader, shape, shape, shearX, shearY, sphere, spotLight, strokeCap, strokeJoin, strokeWeight, swapOffscreenTextures, tessellate, tessellate, textAscent, textCharImpl, textCharModelImpl, textCharShapeImpl, textDescent, textLineImpl, textModeCheck, textureSampling, textureWrap, textWidthImpl, translate, translate, translateImpl, triangle, unbindFrontTexture, unbindLineBuffers, unbindPointBuffers, unbindPolyBuffers, updateDisplay, updateGLModelview, updateGLNormal, updateGLProjection, updateGLProjmodelview, updateLineBuffers, updatePixelSize, updatePointBuffers, updatePolyBuffers, updateProjmodelview, updateTexture, updateTexture, updateTexture, vertex, vertex, vertex, vertex, vertexBreak, vertexImpl, wrapTexture, zero`

    - ### Methods inherited from class processing.core.PGraphics

      `alpha, ambient, ambient, ambient, ambientFromCalc, applyMatrix, arc, arc, background, background, background, background, background, background, background, backgroundFromCalc, beginRaw, beginShape, bezier, bezier, bezierDetail, bezierInit, bezierInitCheck, bezierPoint, bezierTangent, bezierVertexCheck, bezierVertexCheck, blendMode, blue, box, brightness, circle, clear, clip, color, color, color, color, color, color, color, color, color, colorCalc, colorCalc, colorCalc, colorCalc, colorCalc, colorCalc, colorCalcARGB, colorMode, colorMode, colorMode, colorMode, createDefaultFont, createFont, createShape, createShape, createShape, curve, curve, curveDetail, curveInit, curveInitCheck, curvePoint, curveTangent, curveTightness, curveVertexCheck, curveVertexCheck, curveVertexSegment, curveVertexSegment, defaultFontOrDeath, defaultFontOrDeath, displayable, edge, ellipse, ellipseMode, emissive, emissive, emissive, emissiveFromCalc, endRaw, endShape, fill, fill, fill, fill, fill, fill, getMatrix, getRaw, getStyle, getStyle, green, haveRaw, hue, image, image, image, imageImpl, imageMode, is2X, lerpColor, lerpColor, loadShape, noFill, normal, noSmooth, noStroke, noTexture, noTint, pop, push, pushStyle, reapplySettings, rect, rect, rect, rectImpl, rectMode, red, saturation, setMatrix, setPath, shape, shape, shape, shapeMode, shininess, showDepthWarning, showDepthWarningXYZ, showException, showMethodWarning, showMissingWarning, showVariationWarning, showWarning, showWarning, smooth, smooth, specular, specular, specular, specularFromCalc, sphereDetail, sphereDetail, splineForward, square, stroke, stroke, stroke, stroke, stroke, stroke, strokeFromCalc, style, text, text, text, text, text, text, text, text, text, text, text, textAlign, textAlign, textCharModelImpl, textFont, textFont, textFontImpl, textLeading, textLineAlignImpl, textMode, textSentence, textSentenceBreak, textSize, textSizeImpl, texture, textureMode, textWidth, textWidth, textWidth, tint, tint, tint, tint, tint, tint, tintFromCalc, vertex, vertexCheck, vertexTexture`

    - ### Methods inherited from class processing.core.PImage

      `blend, blend, blendColor, blurAlpha, blurARGB, blurRGB, buildBlurKernel, checkAlpha, clone, copy, dilate, erode, get, get, getImage, getModifiedX1, getModifiedX2, getModifiedY1, getModifiedY2, getNative, init, init, isLoaded, isModified, loadTIFF, mask, opaque, saveImageIO, saveTGA, saveTIFF, set, setLoaded, setLoaded, setModified, setModified, updatePixels, updatePixels`

    - ### Methods inherited from class java.lang.Object

      `equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### panel

          public IPanelI panel

    - #### igg

          public IGraphics3D igg

    - #### localPGL

          public processing.opengl.PGL localPGL

    - #### overlay

          public com.jogamp.opengl.util.awt.Overlay overlay

      To draw Java2D graphic over OpenGL graphic.

    - #### overlayBG

          public static java.awt.Color overlayBG

      Background color of overlay should be transparent.

    - #### overwritePAppletFinish

          public boolean overwritePAppletFinish

      To show iGeo correctly in Processing's basic mode, this needs to be true.

    - #### finished

          public boolean finished

    - #### overwritePAppletLoop

          public boolean overwritePAppletLoop

      To show iGeo correctly in Processing's basic mode, this needs to be true.

    - #### looping

          public boolean looping

  - ### Constructor Detail

    - #### PIGraphicsGL3

          public PIGraphicsGL3()

  - ### Method Detail

    - #### setParent

          public void setParent(processing.core.PApplet parent)

      setParent is called by Processing in the initialization process of Processing. Here the initialization proces of iGeo is also done.
      Overrides:
        `setParent` in class `processing.opengl.PGraphicsOpenGL`
      Parameters:
        `parent` - parent PApplet of Processing.

    - #### getPGL

          public processing.opengl.PGL getPGL()

    - #### getGL

          public com.jogamp.opengl.GL getGL()

    - #### getGL2

          public com.jogamp.opengl.GL2 getGL2()

    - #### getCanvas

          protected java.awt.Canvas getCanvas()

    - #### initPrimary

          public void initPrimary()

      Overrides:
        `initPrimary` in class `processing.opengl.PGraphicsOpenGL`

    - #### pre

          public void pre()

    - #### draw

          public void draw()

    - #### drawIG

          public void drawIG()

      Drawing all the iGeo objects through IPanel. Overlay is also used to draw 2D graphics on top of OpenGL 3D graphics.

    - #### setOverlay

          public void setOverlay()

    - #### setSize

          public void setSize(int w,
                              int h)

      Overrides:
        `setSize` in class `processing.opengl.PGraphicsOpenGL`

    - #### post

          public void post()

    - #### loop

          public void loop()

    - #### noLoop

          public void noLoop()

    - #### start

          public void start()

    - #### stop

          public void stop()

    - #### mouseEvent

          public void mouseEvent(processing.event.MouseEvent m)

    - #### keyEvent

          public void keyEvent(processing.event.KeyEvent m)