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 Details

    • useTable

      protected UseTable useTable
    • htSpheresRendered

      private Map<String,Boolean> htSpheresRendered
    • 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 Details

    • _VrmlExporter

      public _VrmlExporter()
  • Method Details

    • output

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

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

      protected void outputInitialTransform()
    • getViewpoint

      protected float getViewpoint()
    • outputFooter

      protected void outputFooter()
      Overrides:
      outputFooter in class ___Exporter
    • 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
      Parameters:
      tempP1 -
      tempP2 -
      tempP3 -
    • 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
      offset -
    • 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)
    • outputFace

      protected void outputFace(int[] face, int[] map, int faceVertexMax)
      Specified by:
      outputFace in class __CartesianExporter
    • 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)
    • outputTextPixel

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

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

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

      protected String getDef(String key)