# Class _StlExporter

java.lang.Object
org.jmol.export.___Exporter
org.jmol.export.__CartesianExporter
org.jmol.export._VrmlExporter
org.jmol.export._StlExporter

public class _StlExporter extends _VrmlExporter
STereoLithography file format exporter for 3D printing. Based on _VrmlExporter by Bob Hanson; diverts the output() method to do nothing and delivers only triangle sets. Note that no attempt is made here to ensure that surfaces are closed. Also, an inefficient mechanism that involves creating a full in-memory representation of the data is used. If this turns out to be problematic, it might be possible to use random access, but the applet does not have that capability, and certainly JavaScript does not.

## Field Summary

### Fields inherited from class _VrmlExporter

`fontChild, fontFace, fontSize, fontStyle, tempQ1, tempQ2, tempQ3, useTable`

### Fields inherited from class __CartesianExporter

`canCapCylinders, noColor, sphereMatrix, viewpoint`

### Fields inherited from class ___Exporter

`apertureAngle, backgroundColix, cameraDistance, cameraPosition, center, commandLineOptions, commentChar, degreesPerRadian, depthZ, export3D, exportScale, fileName, fixedRotationCenter, gdata, lightSource, lineWidthMad, out, privateKey, referenceCenter, scalePixelsPerAngstrom, screenHeight, screenWidth, slabZ, solidOnly, tempP1, tempP2, tempP3, tempV1, tempV2, tm, vwr`

## Constructor Summary

Constructors
Constructor
Description
`_StlExporter()`

## Method Summary

Modifier and Type
Method
Description
`protected String`
`finalizeOutput()`
`protected void`
`output(String data)`
`protected void`
`outputAttr(String attr, float x, float y, float z)`
`protected void`
`outputAttrPt(String attr, T3 pt)`
`protected void`
`outputChildClose()`
`protected void`
`outputChildStart()`
`protected void`
`outputCircle(P3 pt1, P3 pt2, float radius, short colix, boolean doFill)`
`protected void`
`outputGeometry(T3[] vertices, T3[] normals, short[] colixes, int[][] indices, short[] polygonColixes, int nVertices, int nPolygons, BS bsPolygons, int faceVertexMax, Lst<Short> colorList, Map<Short,Integer> htColixes, P3 offset)`
`protected void`
`outputHeader()`
`protected void`
`outputRotation(A4 a)`
`protected void`
`popMatrix()`
`protected void`
`pushMatrix()`

### Methods inherited from class _VrmlExporter

`getDef, getViewpoint, output, outputAppearance, outputChildShapeClose, outputChildShapeStart, outputCloseTag, outputColorIndices, outputColors, outputCone, outputCylinder, outputCylinderChildScaled, outputDefChildFaceSet, outputEllipsoid, outputFace, outputFaceSetClose, outputFaceSetStart, outputFooter, outputInitialTransform, outputNormals, outputQuaternionFrame, outputShapeClose, outputShapeStart, outputSolidPlate, outputSphere, outputSurface, outputTextPixel, outputTransRot, outputTriangle, outputUseChildClose`

### Methods inherited from class __CartesianExporter

`fillTriangle, getCameraPosition, getCoordinateMap, getModelCenter, getNormalMap, outputIndices, setSphereMatrix`

### Methods inherited from class ___Exporter

`finalizeOutput2, fixScreenZ, getByteCount, getColorList, getConeMesh, getExportDate, getJmolPerspective, getRotationMatrix, getRotationMatrix, getTriad, getTriadC, initOutput, opacityFractionalFromArgb, opacityFractionalFromColix, outputComment, outputJmolPerspective, outputVertex, outputVertices, rgbFractionalFromArgb, rgbFractionalFromColix, round, round, setTempVertex, translucencyFractionalFromColix`

### Methods inherited from class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### _StlExporter

public _StlExporter()

## Method Details

### outputHeader

protected void outputHeader()

Overrides:
  `outputHeader` in class `_VrmlExporter`

### pushMatrix

protected void pushMatrix()

Overrides:
  `pushMatrix` in class `_VrmlExporter`

### popMatrix

protected void popMatrix()

Overrides:
  `popMatrix` in class `_VrmlExporter`

### output

protected void output(String data)

Overrides:
  `output` in class `___Exporter`

### outputChildStart

protected void outputChildStart()

Overrides:
  `outputChildStart` in class `_VrmlExporter`

### outputChildClose

protected void outputChildClose()

Overrides:
  `outputChildClose` in class `_VrmlExporter`

### outputRotation

protected void outputRotation(A4 a)

Overrides:
  `outputRotation` in class `_VrmlExporter`

### outputAttrPt

protected void outputAttrPt(String attr, T3 pt)

Overrides:
  `outputAttrPt` in class `_VrmlExporter`

### outputAttr

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

Overrides:
  `outputAttr` in class `_VrmlExporter`

### outputGeometry

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

Overrides:
  `outputGeometry` in class `_VrmlExporter`

### finalizeOutput

protected String finalizeOutput()

Overrides:
  `finalizeOutput` in class `___Exporter`

### outputCircle

protected void outputCircle(P3 pt1, P3 pt2, float radius, short colix, boolean doFill)

Overrides:
  `outputCircle` in class `_VrmlExporter`