__RayTracerExporter
Date: 2019-10-22

org.jmol.export

## Class __RayTracerExporter

- java.lang.Object
- - org.jmol.export.___Exporter
  - - org.jmol.export.__RayTracerExporter

- Direct Known Subclasses:
    _PovrayExporter, _TachyonExporter

      abstract class __RayTracerExporter
      extends ___Exporter

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected boolean` | `isSlabEnabled`
    `protected int` | `minScreenDimension`
    `protected boolean` | `wasPerspective`

    - ### Fields inherited from class org.jmol.export.___Exporter

      `apertureAngle, backgroundColix, cameraDistance, cameraPosition, center, commandLineOptions, commentChar, degreesPerRadian, depthZ, export3D, exportScale, exportType, fileName, fixedRotationCenter, gdata, lightSource, lineWidthMad, out, privateKey, referenceCenter, scalePixelsPerAngstrom, screenHeight, screenWidth, slabZ, solidOnly, tempP1, tempP2, tempP3, tempV1, tempV2, tm, vwr`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `__RayTracerExporter()`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `(package private) void` | `drawAtom(Atom atom, float radius)`
    `(package private) void` | `drawCircle(int x, int y, int z, int diameter, short colix, boolean doFill)`
    `(package private) void` | `drawCylinder(javajs.util.P3 screenA, javajs.util.P3 screenB, short colix1, short colix2, byte endcaps, int madBond, int bondOrder)`
    `(package private) boolean` | `drawEllipse(javajs.util.P3 ptAtom, javajs.util.P3 ptX, javajs.util.P3 ptY, short colix, boolean doFill)`
    `(package private) void` | `drawPixel(short colix, int x, int y, int z, int scale)`
    `(package private) void` | `drawTextPixel(int argb, int x, int y, int z)`
    `(package private) void` | `fillConeScreen(short colix, byte endcap, int screenDiameter, javajs.util.P3 screenBase, javajs.util.P3 screenTip, boolean isBarb)`
    `protected void` | `fillConicalCylinder(javajs.util.P3 screenA, javajs.util.P3 screenB, int madBond, short colix, byte endcaps)`
    `(package private) void` | `fillCylinderScreen(short colix, byte endcaps, int screenDiameter, javajs.util.P3 screenA, javajs.util.P3 screenB, javajs.util.P3 ptA, javajs.util.P3 ptB, float radius)`
    `(package private) void` | `fillCylinderScreenMad(short colix, byte endcaps, int diameter, javajs.util.P3 screenA, javajs.util.P3 screenB)`
    `(package private) void` | `fillEllipsoid(javajs.util.P3 center, javajs.util.P3[] points, short colix, int x, int y, int z, int diameter, javajs.util.M3 toEllipsoidal, double[] coef, javajs.util.M4 deriv, javajs.util.P3[] octantPoints)`
    `(package private) void` | `fillSphere(short colix, int diameter, javajs.util.P3 pt)`
    `protected void` | `fillTriangle(short colix, javajs.util.T3 ptA, javajs.util.T3 ptB, javajs.util.T3 ptC, boolean twoSided)`
    `protected java.lang.String` | `finalizeOutput2()`
    `protected javajs.util.P3` | `getScreenNormal(javajs.util.T3 pt, javajs.util.T3 normal, float factor)`
    `protected boolean` | `initOutput(Viewer vwr, double privateKey, GData g3d, java.util.Map<java.lang.String,java.lang.Object> params)`
    `protected void` | `initVars()`
    `protected abstract void` | `outputCircle(int x, int y, int z, float radius, short colix, boolean doFill)`
    `protected abstract void` | `outputCone(javajs.util.P3 screenBase, javajs.util.P3 screenTip, float radius, short colix, boolean isBarb)`
    `protected abstract void` | `outputCylinder(javajs.util.P3 screenA, javajs.util.P3 screenB, float radius, short colix, boolean withCaps)`
    `protected abstract void` | `outputCylinderConical(javajs.util.P3 screenA, javajs.util.P3 screenB, float radius1, float radius2, short colix)`
    `protected abstract void` | `outputEllipsoid(javajs.util.P3 center, float radius, double[] coef, short colix)`
    `protected abstract void` | `outputSphere(float x, float y, float z, float radius, short colix)`
    `protected abstract void` | `outputTextPixel(int x, int y, int z, int argb)`
    `protected abstract void` | `outputTriangle(javajs.util.T3 ptA, javajs.util.T3 ptB, javajs.util.T3 ptC, short colix)`
    `protected void` | `outputVertex(javajs.util.T3 pt, javajs.util.T3 offset)`

    - ### Methods inherited from class org.jmol.export.___Exporter

      `drawFilledCircle, drawSurface, finalizeOutput, fixScreenZ, getByteCount, getColorList, getConeMesh, getExportDate, getJmolPerspective, getRotationMatrix, getRotationMatrix, getTriad, getTriadC, initializeOutput, opacityFractionalFromArgb, opacityFractionalFromColix, output, output, outputComment, outputFooter, outputHeader, outputJmolPerspective, outputSurface, outputVertices, plotImage, plotText, rgbFractionalFromArgb, rgbFractionalFromColix, round, round, setTempVertex, translucencyFractionalFromColix`

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

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

- - ### Field Detail

    - #### isSlabEnabled

          protected boolean isSlabEnabled

    - #### minScreenDimension

          protected int minScreenDimension

    - #### wasPerspective

          protected boolean wasPerspective

  - ### Constructor Detail

    - #### __RayTracerExporter

          public __RayTracerExporter()

  - ### Method Detail

    - #### initOutput

          protected boolean initOutput(Viewer vwr,
                                       double privateKey,
                                       GData g3d,
                                       java.util.Map<java.lang.String,java.lang.Object> params)

      Overrides:
        `initOutput` in class `___Exporter`

    - #### finalizeOutput2

          protected java.lang.String finalizeOutput2()

      Overrides:
        `finalizeOutput2` in class `___Exporter`

    - #### outputVertex

          protected void outputVertex(javajs.util.T3 pt,
                                      javajs.util.T3 offset)

      Overrides:
        `outputVertex` in class `___Exporter`

    - #### outputCircle

          protected abstract void outputCircle(int x,
                                               int y,
                                               int z,
                                               float radius,
                                               short colix,
                                               boolean doFill)

    - #### outputCylinder

          protected abstract void outputCylinder(javajs.util.P3 screenA,
                                                 javajs.util.P3 screenB,
                                                 float radius,
                                                 short colix,
                                                 boolean withCaps)

    - #### outputCylinderConical

          protected abstract void outputCylinderConical(javajs.util.P3 screenA,
                                                        javajs.util.P3 screenB,
                                                        float radius1,
                                                        float radius2,
                                                        short colix)

    - #### outputEllipsoid

          protected abstract void outputEllipsoid(javajs.util.P3 center,
                                                  float radius,
                                                  double[] coef,
                                                  short colix)

    - #### outputSphere

          protected abstract void outputSphere(float x,
                                               float y,
                                               float z,
                                               float radius,
                                               short colix)

    - #### outputTextPixel

          protected abstract void outputTextPixel(int x,
                                                  int y,
                                                  int z,
                                                  int argb)

    - #### outputTriangle

          protected abstract void outputTriangle(javajs.util.T3 ptA,
                                                 javajs.util.T3 ptB,
                                                 javajs.util.T3 ptC,
                                                 short colix)

    - #### outputCone

          protected abstract void outputCone(javajs.util.P3 screenBase,
                                             javajs.util.P3 screenTip,
                                             float radius,
                                             short colix,
                                             boolean isBarb)

    - #### getScreenNormal

          protected javajs.util.P3 getScreenNormal(javajs.util.T3 pt,
                                                   javajs.util.T3 normal,
                                                   float factor)

    - #### initVars

          protected void initVars()

    - #### drawAtom

          void drawAtom(Atom atom,
                        float radius)

      Specified by:
        `drawAtom` in class `___Exporter`

    - #### drawCircle

          void drawCircle(int x,
                          int y,
                          int z,
                          int diameter,
                          short colix,
                          boolean doFill)

      Specified by:
        `drawCircle` in class `___Exporter`

    - #### drawEllipse

          boolean drawEllipse(javajs.util.P3 ptAtom,
                              javajs.util.P3 ptX,
                              javajs.util.P3 ptY,
                              short colix,
                              boolean doFill)

      Specified by:
        `drawEllipse` in class `___Exporter`

    - #### drawPixel

          void drawPixel(short colix,
                         int x,
                         int y,
                         int z,
                         int scale)

      Specified by:
        `drawPixel` in class `___Exporter`

    - #### drawTextPixel

          void drawTextPixel(int argb,
                             int x,
                             int y,
                             int z)

      Specified by:
        `drawTextPixel` in class `___Exporter`

    - #### fillConeScreen

          void fillConeScreen(short colix,
                              byte endcap,
                              int screenDiameter,
                              javajs.util.P3 screenBase,
                              javajs.util.P3 screenTip,
                              boolean isBarb)

      Specified by:
        `fillConeScreen` in class `___Exporter`

    - #### drawCylinder

          void drawCylinder(javajs.util.P3 screenA,
                            javajs.util.P3 screenB,
                            short colix1,
                            short colix2,
                            byte endcaps,
                            int madBond,
                            int bondOrder)

      Specified by:
        `drawCylinder` in class `___Exporter`

    - #### fillConicalCylinder

          protected void fillConicalCylinder(javajs.util.P3 screenA,
                                             javajs.util.P3 screenB,
                                             int madBond,
                                             short colix,
                                             byte endcaps)

      Parameters:
        `screenA` -
        `screenB` -
        `madBond` -
        `colix` -
        `endcaps` -

    - #### fillCylinderScreenMad

          void fillCylinderScreenMad(short colix,
                                     byte endcaps,
                                     int diameter,
                                     javajs.util.P3 screenA,
                                     javajs.util.P3 screenB)

      Specified by:
        `fillCylinderScreenMad` in class `___Exporter`

    - #### fillCylinderScreen

          void fillCylinderScreen(short colix,
                                  byte endcaps,
                                  int screenDiameter,
                                  javajs.util.P3 screenA,
                                  javajs.util.P3 screenB,
                                  javajs.util.P3 ptA,
                                  javajs.util.P3 ptB,
                                  float radius)

      Specified by:
        `fillCylinderScreen` in class `___Exporter`

    - #### fillSphere

          void fillSphere(short colix,
                          int diameter,
                          javajs.util.P3 pt)

      Specified by:
        `fillSphere` in class `___Exporter`

    - #### fillTriangle

          protected void fillTriangle(short colix,
                                      javajs.util.T3 ptA,
                                      javajs.util.T3 ptB,
                                      javajs.util.T3 ptC,
                                      boolean twoSided)

      Specified by:
        `fillTriangle` in class `___Exporter`

    - #### fillEllipsoid

          void fillEllipsoid(javajs.util.P3 center,
                             javajs.util.P3[] points,
                             short colix,
                             int x,
                             int y,
                             int z,
                             int diameter,
                             javajs.util.M3 toEllipsoidal,
                             double[] coef,
                             javajs.util.M4 deriv,
                             javajs.util.P3[] octantPoints)

      Specified by:
        `fillEllipsoid` in class `___Exporter`