Class JSExporter


public class JSExporter extends __CartesianExporter
A class to output WebGL graphics. Only minimally fleshed out. No text, for instance. This class demonstrates a way of interacting with JavaScript that other classes in Jmol do not use. The methods here that start with "js" -- jsInitExport, jsEndExport, etc., are all implemented in JSmolGLmol.js -- that is, they are overridden in the JavaScript. The advantage to this is that this code references just the one line of JavaScript below, which is a static call and serves to extend the prototype. extendJSExporter is in JSmolGLmol.js.
  • Field Details

  • Constructor Details

    • JSExporter

      public JSExporter()
  • Method Details

    • jsInitExport

      private void jsInitExport(Object applet)
      Parameters:
      applet -
    • jsEndExport

      private void jsEndExport(Object applet)
      Parameters:
      applet -
    • jsCylinder

      private void jsCylinder(Object applet, String id, boolean isNew, javajs.util.P3 pt1, javajs.util.P3 pt2, Object[] o)
      Parameters:
      applet -
      id -
      isNew -
      pt1 -
      pt2 -
      o -
    • jsSphere

      private void jsSphere(Object applet, String id, boolean isNew, javajs.util.T3 pt, Object[] o)
      Parameters:
      applet -
      id -
      isNew -
      pt -
      o -
    • jsSurface

      protected void jsSurface(Object applet, javajs.util.T3[] vertices, javajs.util.T3[] normals, int[][] indices, int nVertices, int nPolygons, int nFaces, javajs.util.BS bsPolygons, int faceVertexMax, int color, int[] vertexColors, int[] polygonColors)
      Parameters:
      applet -
      vertices -
      normals -
      indices -
      nVertices -
      nPolygons -
      nFaces -
      bsPolygons -
      faceVertexMax -
      color -
      vertexColors -
      polygonColors -
    • jsTriangle

      void jsTriangle(Object applet, int color, javajs.util.T3 pt1, javajs.util.T3 pt2, javajs.util.T3 pt3)
      Parameters:
      applet -
      color -
      pt1 -
      pt2 -
      pt3 -
    • outputHeader

      protected void outputHeader()
      Specified by:
      outputHeader in class ___Exporter
    • outputFooter

      protected void outputFooter()
      Overrides:
      outputFooter in class ___Exporter
    • outputSphere

      protected void outputSphere(javajs.util.P3 ptCenter, float radius, short colix, boolean checkRadius)
      Specified by:
      outputSphere in class __CartesianExporter
    • outputCylinder

      protected boolean outputCylinder(javajs.util.P3 ptCenter, javajs.util.P3 pt1, javajs.util.P3 pt2, short colix, byte endcaps, float radius, javajs.util.P3 ptX, javajs.util.P3 ptY, boolean checkRadius)
      Specified by:
      outputCylinder in class __CartesianExporter
    • outputCircle

      protected void outputCircle(javajs.util.P3 pt1, javajs.util.P3 pt2, float radius, short colix, boolean doFill)
      Specified by:
      outputCircle in class __CartesianExporter
    • outputEllipsoid

      protected void outputEllipsoid(javajs.util.P3 center, javajs.util.P3[] points, short colix)
      Specified by:
      outputEllipsoid in class __CartesianExporter
    • outputCone

      protected void outputCone(javajs.util.P3 ptBase, javajs.util.P3 ptTip, float radius, short colix)
      Specified by:
      outputCone in class __CartesianExporter
    • getColor

      private Integer getColor(short colix)
    • outputSurface

      protected void outputSurface(javajs.util.T3[] vertices, javajs.util.T3[] normals, short[] vertexColixes, int[][] indices, short[] polygonColixes, int nVertices, int nPolygons, int nTriangles, javajs.util.BS bsPolygons, int faceVertexMax, short colix, javajs.util.Lst<Short> colorList, Map<Short,Integer> htColixes, javajs.util.P3 offset)
      Overrides:
      outputSurface in class ___Exporter
      Parameters:
      vertices - generally unique vertices [0:nVertices)
      normals - one per vertex
      vertexColixes - one per vertex, or null
      indices - one per triangular or quad polygon; may have additional elements beyond vertex indices if faceVertexMax = 3 triangular if faceVertexMax == 3; 3 or 4 if face VertexMax = 4
      polygonColixes - face-based colixes
      nVertices - vertices[nVertices-1] is last vertex
      nPolygons - indices[nPolygons - 1] is last polygon
      nTriangles - number of triangular faces required
      bsPolygons - number of polygons (triangles or quads)
      faceVertexMax - (3) triangles only, indices[][i] may have more elements (4) triangles and quads; indices[][i].length determines
      colix - overall (solid) color index
      colorList - list of unique color IDs
      htColixes - map of color IDs to colorList
      offset -
    • outputTriangle

      protected void outputTriangle(javajs.util.T3 pt1, javajs.util.T3 pt2, javajs.util.T3 pt3, short colix)
      Specified by:
      outputTriangle in class __CartesianExporter
    • outputTextPixel

      protected void outputTextPixel(javajs.util.P3 pt, int argb)
      Specified by:
      outputTextPixel in class __CartesianExporter
    • outputFace

      protected void outputFace(int[] is, int[] coordMap, int faceVertexMax)
      Specified by:
      outputFace in class __CartesianExporter
    • output

      protected void output(javajs.util.T3 pt)
      Specified by:
      output in class ___Exporter
    • plotImage

      void plotImage(int x, int y, int z, Object image, short bgcolix, int width, int height)
      Overrides:
      plotImage in class __CartesianExporter
    • plotText

      void plotText(int x, int y, int z, short colix, String text, Font font3d)
      Overrides:
      plotText in class __CartesianExporter
    • getColors

      private int[] getColors(short[] colixes)