__CartesianExporter
Date: 2019-10-22

org.jmol.export

## Class __CartesianExporter

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

- Direct Known Subclasses:
    _IdtfExporter, _MayaExporter, _ObjExporter, _VrmlExporter, JSExporter

      public abstract class __CartesianExporter
      extends ___Exporter

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected boolean` | `canCapCylinders`
    `protected boolean` | `noColor`
    `protected javajs.util.M4` | `sphereMatrix`
    `protected javajs.util.A4` | `viewpoint`

    - ### 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
    `__CartesianExporter()`

  - ### 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 ptA, javajs.util.P3 ptB, short colix1, short colix2, byte endcaps, int mad, int bondOrder)` bond order -1 -- single bond, Cartesian bond order -2 -- multiple bond, Cartesian
    `(package private) boolean` | `drawEllipse(javajs.util.P3 ptCenter, 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)`
    `(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 mad, 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 javajs.util.P3` | `getCameraPosition()`
    `protected int` | `getCoordinateMap(javajs.util.T3[] vertices, int[] coordMap, javajs.util.BS bsValid)`
    `protected javajs.util.P3` | `getModelCenter()`
    `protected int[]` | `getNormalMap(javajs.util.T3[] normals, int nNormals, javajs.util.BS bsValid, javajs.util.Lst<java.lang.String> vNormals)`
    `protected abstract void` | `outputCircle(javajs.util.P3 pt1, javajs.util.P3 pt2, float radius, short colix, boolean doFill)`
    `protected abstract void` | `outputCone(javajs.util.P3 ptBase, javajs.util.P3 ptTip, float radius, short colix)`
    `protected abstract boolean` | `outputCylinder(javajs.util.P3 ptCenter, javajs.util.P3 pt1, javajs.util.P3 pt2, short colix1, byte endcaps, float radius, javajs.util.P3 ptX, javajs.util.P3 ptY, boolean checkRadius)`
    `protected abstract void` | `outputEllipsoid(javajs.util.P3 center, javajs.util.P3[] points, short colix)`
    `protected abstract void` | `outputFace(int[] is, int[] coordMap, int faceVertexMax)`
    `protected void` | `outputIndices(int[][] indices, int[] map, int nPolygons, javajs.util.BS bsPolygons, int faceVertexMax)`
    `protected void` | `outputSolidPlate(javajs.util.P3 tempP1, javajs.util.P3 tempP2, javajs.util.P3 tempP3, short colix)`
    `protected abstract void` | `outputSphere(javajs.util.P3 ptCenter, float f, short colix, boolean checkRadius)`
    `protected abstract void` | `outputTextPixel(javajs.util.P3 pt, int argb)`
    `protected abstract void` | `outputTriangle(javajs.util.T3 pt1, javajs.util.T3 pt2, javajs.util.T3 pt3, short colix)`
    `(package private) void` | `plotImage(int x, int y, int z, java.lang.Object image, short bgcolix, int width, int height)`
    `(package private) void` | `plotText(int x, int y, int z, short colix, java.lang.String text, Font font3d)`
    `protected void` | `setSphereMatrix(javajs.util.T3 center, float rx, float ry, float rz, javajs.util.A4 a, javajs.util.M4 sphereMatrix)`
    `private void` | `setTempPoints(javajs.util.P3 ptA, javajs.util.P3 ptB, boolean isCartesian)`

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

      `drawFilledCircle, drawSurface, finalizeOutput, finalizeOutput2, fixScreenZ, getByteCount, getColorList, getConeMesh, getExportDate, getJmolPerspective, getRotationMatrix, getRotationMatrix, getTriad, getTriadC, initializeOutput, initOutput, opacityFractionalFromArgb, opacityFractionalFromColix, output, output, outputComment, outputFooter, outputHeader, outputJmolPerspective, outputSurface, outputVertex, outputVertices, 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

    - #### viewpoint

          protected javajs.util.A4 viewpoint

    - #### canCapCylinders

          protected boolean canCapCylinders

    - #### noColor

          protected boolean noColor

    - #### sphereMatrix

          protected javajs.util.M4 sphereMatrix

  - ### Constructor Detail

    - #### __CartesianExporter

          public __CartesianExporter()

  - ### Method Detail

    - #### getModelCenter

          protected javajs.util.P3 getModelCenter()

    - #### getCameraPosition

          protected javajs.util.P3 getCameraPosition()

    - #### setTempPoints

          private void setTempPoints(javajs.util.P3 ptA,
                                     javajs.util.P3 ptB,
                                     boolean isCartesian)

    - #### getCoordinateMap

          protected int getCoordinateMap(javajs.util.T3[] vertices,
                                         int[] coordMap,
                                         javajs.util.BS bsValid)

    - #### getNormalMap

          protected int[] getNormalMap(javajs.util.T3[] normals,
                                       int nNormals,
                                       javajs.util.BS bsValid,
                                       javajs.util.Lst<java.lang.String> vNormals)

    - #### outputIndices

          protected void outputIndices(int[][] indices,
                                       int[] map,
                                       int nPolygons,
                                       javajs.util.BS bsPolygons,
                                       int faceVertexMax)

    - #### outputFace

          protected abstract void outputFace(int[] is,
                                             int[] coordMap,
                                             int faceVertexMax)

    - #### outputCircle

          protected abstract void outputCircle(javajs.util.P3 pt1,
                                               javajs.util.P3 pt2,
                                               float radius,
                                               short colix,
                                               boolean doFill)

    - #### outputCone

          protected abstract void outputCone(javajs.util.P3 ptBase,
                                             javajs.util.P3 ptTip,
                                             float radius,
                                             short colix)

    - #### outputCylinder

          protected abstract boolean outputCylinder(javajs.util.P3 ptCenter,
                                                    javajs.util.P3 pt1,
                                                    javajs.util.P3 pt2,
                                                    short colix1,
                                                    byte endcaps,
                                                    float radius,
                                                    javajs.util.P3 ptX,
                                                    javajs.util.P3 ptY,
                                                    boolean checkRadius)

    - #### outputEllipsoid

          protected abstract void outputEllipsoid(javajs.util.P3 center,
                                                  javajs.util.P3[] points,
                                                  short colix)

    - #### outputSphere

          protected abstract void outputSphere(javajs.util.P3 ptCenter,
                                               float f,
                                               short colix,
                                               boolean checkRadius)

    - #### outputTextPixel

          protected abstract void outputTextPixel(javajs.util.P3 pt,
                                                  int argb)

    - #### outputTriangle

          protected abstract void outputTriangle(javajs.util.T3 pt1,
                                                 javajs.util.T3 pt2,
                                                 javajs.util.T3 pt3,
                                                 short colix)

    - #### plotText

          void plotText(int x,
                        int y,
                        int z,
                        short colix,
                        java.lang.String text,
                        Font font3d)

      Overrides:
        `plotText` in class `___Exporter`

    - #### plotImage

          void plotImage(int x,
                         int y,
                         int z,
                         java.lang.Object image,
                         short bgcolix,
                         int width,
                         int height)

      Overrides:
        `plotImage` in class `___Exporter`

    - #### 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 ptCenter,
                              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 ptA,
                            javajs.util.P3 ptB,
                            short colix1,
                            short colix2,
                            byte endcaps,
                            int mad,
                            int bondOrder)

      bond order -1 -- single bond, Cartesian bond order -2 -- multiple bond, Cartesian
      Specified by:
        `drawCylinder` in class `___Exporter`

    - #### fillCylinderScreenMad

          void fillCylinderScreenMad(short colix,
                                     byte endcaps,
                                     int mad,
                                     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`

    - #### 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`

    - #### 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`

    - #### outputSolidPlate

          protected void outputSolidPlate(javajs.util.P3 tempP1,
                                          javajs.util.P3 tempP2,
                                          javajs.util.P3 tempP3,
                                          short colix)

      Parameters:
        `tempP1` -
        `tempP2` -
        `tempP3` -

    - #### setSphereMatrix

          protected void setSphereMatrix(javajs.util.T3 center,
                                         float rx,
                                         float ry,
                                         float rz,
                                         javajs.util.A4 a,
                                         javajs.util.M4 sphereMatrix)