Class _VrmlExporter

  • Direct Known Subclasses:
    _StlExporter, _X3dExporter

    public class _VrmlExporter
    extends __CartesianExporter
    A basic VRML generator. Modified 10/2016 to no longer use high-level objects Cone, Sphere, and Cylinder. Makes substantial use of DEF and USE to reduce file size hugely.
    Author:
    Bob Hanson
    • Field Detail

      • plateVertices

        private javajs.util.T3[] plateVertices
      • plateIndices

        private int[][] plateIndices
      • plateColixes

        private short[] plateColixes
      • tempQ1

        protected javajs.util.P3 tempQ1
      • tempQ2

        protected javajs.util.P3 tempQ2
      • tempQ3

        protected javajs.util.P3 tempQ3
      • oneFace

        private int[][] oneFace
      • threeVertices

        private javajs.util.P3[] threeVertices
      • fontSize

        protected float fontSize
      • fontFace

        protected String fontFace
      • fontStyle

        protected String fontStyle
      • fontChild

        protected String fontChild
    • Constructor Detail

      • _VrmlExporter

        public _VrmlExporter()
    • Method Detail

      • output

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

        protected void outputInitialTransform()
      • getViewpoint

        protected float getViewpoint()
      • outputAppearance

        protected void outputAppearance​(short colix,
                                        boolean isText)
      • pushMatrix

        protected void pushMatrix()
      • popMatrix

        protected void popMatrix()
      • outputAttrPt

        protected void outputAttrPt​(String attr,
                                    javajs.util.T3 pt)
      • outputAttr

        protected void outputAttr​(String attr,
                                  float x,
                                  float y,
                                  float z)
      • outputRotation

        protected void outputRotation​(javajs.util.A4 a)
      • outputTransRot

        protected void outputTransRot​(javajs.util.P3 pt1,
                                      javajs.util.P3 pt2,
                                      int x,
                                      int y,
                                      int z)
      • outputQuaternionFrame

        protected void outputQuaternionFrame​(javajs.util.P3 ptCenter,
                                             javajs.util.P3 ptX,
                                             javajs.util.P3 ptY,
                                             javajs.util.P3 ptZ,
                                             float xScale,
                                             float yScale,
                                             float zScale)
      • outputChildShapeStart

        protected void outputChildShapeStart()
      • outputChildStart

        protected void outputChildStart()
      • outputShapeStart

        protected void outputShapeStart()
      • outputDefChildFaceSet

        protected void outputDefChildFaceSet​(String child)
      • outputFaceSetStart

        protected void outputFaceSetStart()
      • outputFaceSetClose

        protected void outputFaceSetClose()
      • outputUseChildClose

        protected void outputUseChildClose​(String child)
      • outputChildShapeClose

        protected void outputChildShapeClose()
      • outputChildClose

        protected void outputChildClose()
      • outputShapeClose

        protected void outputShapeClose()
      • outputCloseTag

        protected void outputCloseTag()
      • outputCircle

        protected void outputCircle​(javajs.util.P3 pt1,
                                    javajs.util.P3 pt2,
                                    float radius,
                                    short colix,
                                    boolean doFill)
        Specified by:
        outputCircle 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
      • outputConeGeometry

        private void outputConeGeometry​(boolean addBase)
      • 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
      • outputCylinderChildScaled

        protected void outputCylinderChildScaled​(short colix,
                                                 byte endcaps)
      • outputCylinderGeometry

        private void outputCylinderGeometry​(int endcaps)
      • outputSphere

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

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

        private void outputSphereChildScaled​(javajs.util.P3 ptCenter,
                                             float radius,
                                             javajs.util.P3[] points,
                                             short colix)
      • outputSphereGeometry

        private void outputSphereGeometry()
      • outputSolidPlate

        protected void outputSolidPlate​(javajs.util.P3 tempP1,
                                        javajs.util.P3 tempP2,
                                        javajs.util.P3 tempP3,
                                        short colix)
        Overrides:
        outputSolidPlate in class __CartesianExporter
      • outputSurface

        protected void outputSurface​(javajs.util.T3[] vertices,
                                     javajs.util.T3[] normals,
                                     short[] colixes,
                                     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
        colixes - 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
      • outputGeometry

        protected void outputGeometry​(javajs.util.T3[] vertices,
                                      javajs.util.T3[] normals,
                                      short[] colixes,
                                      int[][] indices,
                                      short[] polygonColixes,
                                      int nVertices,
                                      int nPolygons,
                                      javajs.util.BS bsPolygons,
                                      int faceVertexMax,
                                      javajs.util.Lst<Short> colorList,
                                      Map<Short,​Integer> htColixes,
                                      javajs.util.P3 offset)
      • outputNormals

        protected void outputNormals​(javajs.util.Lst<String> vNormals)
      • outputColors

        protected void outputColors​(javajs.util.Lst<Short> colorList)
      • outputColorIndices

        protected void outputColorIndices​(int[][] indices,
                                          int nPolygons,
                                          javajs.util.BS bsPolygons,
                                          int faceVertexMax,
                                          Map<Short,​Integer> htColixes,
                                          short[] colixes,
                                          short[] polygonColixes)
      • outputTriangle

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

        private void outputTriangleGeometry​(javajs.util.T3 pt1,
                                            javajs.util.T3 pt2,
                                            javajs.util.T3 pt3,
                                            short colix)
      • setFont

        private void setFont​(short colix,
                             String text,
                             Font font3d)