DrawRenderer
Date: 2019-10-22

org.jmol.renderspecial

## Class DrawRenderer

- java.lang.Object
- - org.jmol.render.ShapeRenderer
  - - org.jmol.render.MeshRenderer
    - - org.jmol.renderspecial.DrawRenderer

- Direct Known Subclasses:
    CGORenderer

      public class DrawRenderer
      extends MeshRenderer

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `private javajs.util.BS` | `bsHandles`
    `private javajs.util.P3[]` | `controlHermites`
    `protected DrawMesh` | `dmesh`
    `private Draw.EnumDrawType` | `drawType`
    `protected javajs.util.P3` | `pt0`
    `private javajs.util.P3` | `pt0f`
    `protected javajs.util.P3i` | `pt0i`
    `protected javajs.util.P3` | `pt1`
    `protected javajs.util.P3` | `pt2`
    `private javajs.util.P3` | `s0f`
    `private javajs.util.P3` | `s1f`
    `private javajs.util.P3` | `s2f`
    `protected javajs.util.V3` | `vTemp`
    `protected javajs.util.V3` | `vTemp2`

    - ### Fields inherited from class org.jmol.render.MeshRenderer

      `antialias, bsPolygons, bsPolygonsToExport, diameter, exportPass, forceShowTriangles, frontOnly, haveBsDisplay, imageFontScaling, isGhostPass, isShell, isTranslucent, isTranslucentInherit, latticeOffset, mesh, meshSlabValue, needTranslucent, normixes, p3Screens, pt1f, pt1i, pt2f, pt2i, pt3i, renderLow, scalePixelsPerMicron, screens, selectedPolyOnly, thePlane, transformedVectors, vertexCount, vertices, volumeRender, width`

    - ### Fields inherited from class org.jmol.render.ShapeRenderer

      `colix, exportType, g3d, isExport, mad, ms, myVisibilityFlag, shape, shapeID, tm, vwr`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `DrawRenderer()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `private void` | `drawLineData(javajs.util.Lst<javajs.util.P3[]> lineData)`
    `private float` | `getArrowScale()`
    `private void` | `getConnectionPoints()`
    `protected boolean` | `isPolygonDisplayable(int i)`
    `protected boolean` | `render()`
    `protected void` | `render2(boolean isExport)` Overridden in DrawRenderer and IsosurfaceRenderer
    `private void` | `renderArrowHead(javajs.util.T3 pt1, javajs.util.T3 pt2, float factor2, boolean isTransformed, boolean withShaft, boolean isBarb)`
    `private void` | `renderHandles()`
    `private void` | `renderInfo()`
    `private void` | `renderXyArrow(int ptXY)`
    `private void` | `renderXyPoint()`
    `private int` | `setArc(javajs.util.T3 v1, javajs.util.T3 v2, javajs.util.T3 ptRef, float nDegreesOffset, float theta, float fractionalOffset, float scale)`

    - ### Methods inherited from class org.jmol.render.MeshRenderer

      `checkFront, drawEdge, drawTriangle, exportSurface, isVisibleNormix, render2b, renderMesh2, renderPoints, renderTriangles, setColix`

    - ### Methods inherited from class org.jmol.render.ShapeRenderer

      `initRenderer, isVisibleForMe, renderShape, setup, setViewerG3dShapeID`

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

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

- - ### Field Detail

    - #### drawType

          private Draw.EnumDrawType drawType

    - #### dmesh

          protected DrawMesh dmesh

    - #### controlHermites

          private javajs.util.P3[] controlHermites

    - #### pt0

          protected javajs.util.P3 pt0

    - #### pt1

          protected javajs.util.P3 pt1

    - #### pt2

          protected javajs.util.P3 pt2

    - #### vTemp

          protected final javajs.util.V3 vTemp

    - #### vTemp2

          protected final javajs.util.V3 vTemp2

    - #### pt0f

          private final javajs.util.P3 pt0f

    - #### pt0i

          protected javajs.util.P3i pt0i

    - #### s0f

          private javajs.util.P3 s0f

    - #### s1f

          private javajs.util.P3 s1f

    - #### s2f

          private javajs.util.P3 s2f

    - #### bsHandles

          private final javajs.util.BS bsHandles

  - ### Constructor Detail

    - #### DrawRenderer

          public DrawRenderer()

  - ### Method Detail

    - #### render

          protected boolean render()

      Specified by:
        `render` in class `ShapeRenderer`

    - #### isPolygonDisplayable

          protected boolean isPolygonDisplayable(int i)

      Overrides:
        `isPolygonDisplayable` in class `MeshRenderer`
      Returns:
        T/F

    - #### render2

          protected void render2(boolean isExport)

      Description copied from class: `MeshRenderer`
      Overridden in DrawRenderer and IsosurfaceRenderer
      Overrides:
        `render2` in class `MeshRenderer`

    - #### setArc

          private int setArc(javajs.util.T3 v1,
                             javajs.util.T3 v2,
                             javajs.util.T3 ptRef,
                             float nDegreesOffset,
                             float theta,
                             float fractionalOffset,
                             float scale)

    - #### getConnectionPoints

          private void getConnectionPoints()

    - #### drawLineData

          private void drawLineData(javajs.util.Lst<javajs.util.P3[]> lineData)

    - #### renderXyPoint

          private void renderXyPoint()

    - #### renderXyArrow

          private void renderXyArrow(int ptXY)

    - #### renderArrowHead

          private void renderArrowHead(javajs.util.T3 pt1,
                                       javajs.util.T3 pt2,
                                       float factor2,
                                       boolean isTransformed,
                                       boolean withShaft,
                                       boolean isBarb)

    - #### getArrowScale

          private float getArrowScale()

    - #### renderHandles

          private void renderHandles()

    - #### renderInfo

          private void renderInfo()