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 Detail

      • htSpheresRendered

        private java.util.Map<java.lang.String,​java.lang.Boolean> htSpheresRendered
      • htObjects

        private java.util.Map<java.lang.String,​java.lang.Object[]> htObjects
      • html5Applet

        java.lang.Object html5Applet
      • ret

        private java.lang.String[] ret
    • Constructor Detail

      • JSExporter

        public JSExporter()
    • Method Detail

      • jsInitExport

        private void jsInitExport​(java.lang.Object applet)
        Parameters:
        applet -
      • jsEndExport

        private void jsEndExport​(java.lang.Object applet)
        Parameters:
        applet -
      • jsCylinder

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

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

        protected void jsSurface​(java.lang.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​(java.lang.Object applet,
                        int color,
                        javajs.util.T3 pt1,
                        javajs.util.T3 pt2,
                        javajs.util.T3 pt3)
        Parameters:
        applet -
        color -
        pt1 -
        pt2 -
        pt3 -
      • 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 java.lang.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<java.lang.Short> colorList,
                                     java.util.Map<java.lang.Short,​java.lang.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
      • outputTriangle

        protected void outputTriangle​(javajs.util.T3 pt1,
                                      javajs.util.T3 pt2,
                                      javajs.util.T3 pt3,
                                      short colix)
        Specified by:
        outputTriangle 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,
                       java.lang.Object image,
                       short bgcolix,
                       int width,
                       int height)
        Overrides:
        plotImage in class __CartesianExporter
      • plotText

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

        private int[] getColors​(short[] colixes)