org.jmol.export

Class Export3D

public final class Export3D extends Object implements JmolRendererInterface

Provides high-level graphics primitives for 3D graphics export.

Author: hansonr, hansonr@stolaf.edu

Field Summary
shortcolix
JmolExportInterfaceexporter
Graphics3Dg3d
intheight
Hermite3Dhermite3d
Point3fptA
Point3iptAi
Point3fptB
Point3iptBi
Point3fptC
Point3fptD
intslab
intwidth
Constructor Summary
Export3D()
Method Summary
intcalcSurfaceShade(Point3i pointA, Point3i pointB, Point3i pointC)
booleancheckTranslucent(boolean isAlphaTranslucent)
voiddrawCircleCentered(short colix, int diameter, int x, int y, int z, boolean doFill)
draws a simple circle (draw circle)
voiddrawCylinderTriangle(int xA, int yA, int zA, int xB, int yB, int zB, int xC, int yC, int zC, int diameter)
voiddrawDashedLine(int run, int rise, Point3i pointA, Point3i pointB)
voiddrawDottedLine(Point3i pointA, Point3i pointB)
voiddrawfillTriangle(int xA, int yA, int zA, int xB, int yB, int zB, int xC, int yC, int zC)
voiddrawHermite(int tension, Point3i s0, Point3i s1, Point3i s2, Point3i s3)
voiddrawHermite(boolean fill, boolean border, int tension, Point3i s0, Point3i s1, Point3i s2, Point3i s3, Point3i s4, Point3i s5, Point3i s6, Point3i s7, int aspectRatio)
voiddrawHLine(int x, int y, int z, int w)
voiddrawImage(Image image, int x, int y, int z, int zSlab, short bgcolix, int width, int height)
voiddrawLine(int x1, int y1, int z1, int x2, int y2, int z2)
voiddrawLine(short colixA, short colixB, int xA, int yA, int zA, int xB, int yB, int zB)
voiddrawLine(Point3i pointA, Point3i pointB)
voiddrawPixel(int x, int y, int z)
voiddrawPoints(int count, int[] coordinates)
voiddrawQuadrilateral(short colix, Point3i pointA, Point3i pointB, Point3i pointC, Point3i screenD)
voiddrawRect(int x, int y, int z, int zSlab, int rWidth, int rHeight)
draws a rectangle
voiddrawString(String str, Font3D font3d, int xBaseline, int yBaseline, int z, int zSlab)
draws the specified string in the current font. no line wrapping -- axis, labels, measures
voiddrawStringNoSlab(String str, Font3D font3d, int xBaseline, int yBaseline, int z)
draws the specified string in the current font. no line wrapping -- echo, frank, hover, molecularOrbital, uccage
voiddrawTriangle(Point3i pointA, short colixA, Point3i pointB, short colixB, Point3i pointC, short colixC, int check)
voiddrawTriangle(Point3i pointA, Point3i pointB, Point3i pointC, int check)
voiddrawVLine(int x, int y, int z, int h)
voidfillCone(byte endcap, int diameter, Point3i pointBase, Point3i screenTip)
voidfillCone(byte endcap, int diameter, Point3f pointBase, Point3f screenTip)
voidfillCylinder(short colixA, short colixB, byte endcaps, int mad, int xA, int yA, int zA, int xB, int yB, int zB)
voidfillCylinder(byte endcaps, int mad, int xA, int yA, int zA, int xB, int yB, int zB)
voidfillCylinder(byte endcaps, int diameter, Point3i pointA, Point3i pointB)
voidfillCylinderBits(byte endcaps, int diameter, Point3f pointA, Point3f pointB)
voidfillHermite(int tension, int diameterBeg, int diameterMid, int diameterEnd, Point3i s0, Point3i s1, Point3i s2, Point3i s3)
voidfillQuadrilateral(Point3f pointA, Point3f pointB, Point3f pointC, Point3f pointD)
voidfillQuadrilateral(Point3i pointA, short colixA, short normixA, Point3i pointB, short colixB, short normixB, Point3i pointC, short colixC, short normixC, Point3i screenD, short colixD, short normixD)
voidfillRect(int x, int y, int z, int zSlab, int widthFill, int heightFill)
fills background rectangle for label

voidfillScreenedCircleCentered(short colixFill, int diameter, int x, int y, int z)
draws a screened circle ... every other dot is turned on
voidfillSphereCentered(int diameter, int x, int y, int z)
fills a solid sphere
voidfillSphereCentered(int diameter, Point3i center)
fills a solid sphere
voidfillSphereCentered(int diameter, Point3f center)
fills a solid sphere
voidfillTriangle(Point3i pointA, int intensityA, Point3i pointB, int intensityB, Point3i pointC, int intensityC)
voidfillTriangle(Point3i pointA, short colixA, short normixA, Point3i pointB, short colixB, short normixB, Point3i pointC, short colixC, short normixC)
voidfillTriangle(short normix, int xpointA, int ypointA, int zpointA, int xpointB, int ypointB, int zpointB, int xpointC, int ypointC, int zpointC)
voidfillTriangle(Point3f pointA, Point3f pointB, Point3f pointC)
voidfillTriangle(Point3i pointA, Point3i pointB, Point3i pointC)
voidfillTriangle(Point3i pointA, short colixA, short normixA, Point3i pointB, short colixB, short normixB, Point3i pointC, short colixC, short normixC, float factor)
intgetColixArgb(short colix)
intgetDepth()
gets g3d depth
JmolExportInterfacegetExporter()
Font3DgetFont3DCurrent()
Font3DgetFont3DScaled(Font3D font, float scale)
bytegetFontFid(String fontFace, float fontSize)
bytegetFontFid(float fontSize)
StringgetHexColorFromIndex(short colix)
shortgetInverseNormix(short normix)
shortgetNormix(Vector3f vector)
Vector3fgetNormixVector(short normix)
intgetRenderHeight()
gets g3d height
intgetRenderWidth()
gets g3d width
intgetSlab()
gets g3d slab
Vector3f[]getTransformedVertexVectors()
booleanhaveTranslucentObjects()
booleanisAntialiased()
is full scene / oversampling antialiasing in effect
booleanisClippedXY(int diameter, int x, int y)
booleanisClippedZ(int z)
booleanisDirectedTowardsCamera(short normix)
booleanisInDisplayRange(int x, int y)
voidplotPixelClipped(int x, int y, int z)
voidplotPixelClipped(Point3i screen)
voidplotPixelClippedNoSlab(int argb, int x, int y, int z)
voidrenderBackground()
voidrenderEllipsoid(int x, int y, int z, int diameter, Matrix3f mToEllipsoidal, double[] coef, Matrix4f mDeriv, int selectedOctant, Point3i[] octantPoints)
voidrenderIsosurface(Point3f[] vertices, short colix, short[] colixes, Vector3f[] normals, int[][] indices, BitSet bsFaces, int nVertices, int faceVertexMax)
booleansetColix(short colix)
sets current color from colix color index
voidsetFont(byte fid)
voidsetg3dExporter(Graphics3D g3d, JmolExportInterface exporter)
voidsetRenderer(ShapeRenderer shapeRenderer)
voidsetSlab(int slabValue)

Field Detail

colix

private short colix

exporter

private JmolExportInterface exporter

g3d

private Graphics3D g3d

height

private int height

hermite3d

private Hermite3D hermite3d

ptA

private Point3f ptA

ptAi

private Point3i ptAi

ptB

private Point3f ptB

ptBi

private Point3i ptBi

ptC

private Point3f ptC

ptD

private Point3f ptD

slab

private int slab

width

private int width

Constructor Detail

Export3D

public Export3D()

Method Detail

calcSurfaceShade

public int calcSurfaceShade(Point3i pointA, Point3i pointB, Point3i pointC)

checkTranslucent

public boolean checkTranslucent(boolean isAlphaTranslucent)

drawCircleCentered

public void drawCircleCentered(short colix, int diameter, int x, int y, int z, boolean doFill)
draws a simple circle (draw circle)

Parameters: colix the color index diameter the pixel diameter x center x y center y z center z doFill (not implemented in exporters)

drawCylinderTriangle

public void drawCylinderTriangle(int xA, int yA, int zA, int xB, int yB, int zB, int xC, int yC, int zC, int diameter)

drawDashedLine

public void drawDashedLine(int run, int rise, Point3i pointA, Point3i pointB)

drawDottedLine

public void drawDottedLine(Point3i pointA, Point3i pointB)

drawfillTriangle

public void drawfillTriangle(int xA, int yA, int zA, int xB, int yB, int zB, int xC, int yC, int zC)

drawHermite

public void drawHermite(int tension, Point3i s0, Point3i s1, Point3i s2, Point3i s3)

drawHermite

public void drawHermite(boolean fill, boolean border, int tension, Point3i s0, Point3i s1, Point3i s2, Point3i s3, Point3i s4, Point3i s5, Point3i s6, Point3i s7, int aspectRatio)

drawHLine

private void drawHLine(int x, int y, int z, int w)

drawImage

public void drawImage(Image image, int x, int y, int z, int zSlab, short bgcolix, int width, int height)

drawLine

public void drawLine(int x1, int y1, int z1, int x2, int y2, int z2)

drawLine

public void drawLine(short colixA, short colixB, int xA, int yA, int zA, int xB, int yB, int zB)

drawLine

public void drawLine(Point3i pointA, Point3i pointB)

drawPixel

public void drawPixel(int x, int y, int z)

drawPoints

public void drawPoints(int count, int[] coordinates)

drawQuadrilateral

public void drawQuadrilateral(short colix, Point3i pointA, Point3i pointB, Point3i pointC, Point3i screenD)

drawRect

public void drawRect(int x, int y, int z, int zSlab, int rWidth, int rHeight)
draws a rectangle

Parameters: x upper left x y upper left y z upper left z zSlab z for slab check (for set labelsFront) rWidth pixel count rHeight pixel count

drawString

public void drawString(String str, Font3D font3d, int xBaseline, int yBaseline, int z, int zSlab)
draws the specified string in the current font. no line wrapping -- axis, labels, measures

Parameters: str the String font3d the Font3D xBaseline baseline x yBaseline baseline y z baseline z zSlab z for slab calculation

drawStringNoSlab

public void drawStringNoSlab(String str, Font3D font3d, int xBaseline, int yBaseline, int z)
draws the specified string in the current font. no line wrapping -- echo, frank, hover, molecularOrbital, uccage

Parameters: str the String font3d the Font3D xBaseline baseline x yBaseline baseline y z baseline z

drawTriangle

public void drawTriangle(Point3i pointA, short colixA, Point3i pointB, short colixB, Point3i pointC, short colixC, int check)

drawTriangle

public void drawTriangle(Point3i pointA, Point3i pointB, Point3i pointC, int check)

drawVLine

private void drawVLine(int x, int y, int z, int h)

fillCone

public void fillCone(byte endcap, int diameter, Point3i pointBase, Point3i screenTip)

fillCone

public void fillCone(byte endcap, int diameter, Point3f pointBase, Point3f screenTip)

fillCylinder

public void fillCylinder(short colixA, short colixB, byte endcaps, int mad, int xA, int yA, int zA, int xB, int yB, int zB)

fillCylinder

public void fillCylinder(byte endcaps, int mad, int xA, int yA, int zA, int xB, int yB, int zB)

fillCylinder

public void fillCylinder(byte endcaps, int diameter, Point3i pointA, Point3i pointB)

fillCylinderBits

public void fillCylinderBits(byte endcaps, int diameter, Point3f pointA, Point3f pointB)

fillHermite

public void fillHermite(int tension, int diameterBeg, int diameterMid, int diameterEnd, Point3i s0, Point3i s1, Point3i s2, Point3i s3)

fillQuadrilateral

public void fillQuadrilateral(Point3f pointA, Point3f pointB, Point3f pointC, Point3f pointD)

fillQuadrilateral

public void fillQuadrilateral(Point3i pointA, short colixA, short normixA, Point3i pointB, short colixB, short normixB, Point3i pointC, short colixC, short normixC, Point3i screenD, short colixD, short normixD)

fillRect

public void fillRect(int x, int y, int z, int zSlab, int widthFill, int heightFill)
fills background rectangle for label

Parameters: x upper left x y upper left y z upper left z zSlab z value for slabbing widthFill pixel count heightFill pixel count

fillScreenedCircleCentered

public void fillScreenedCircleCentered(short colixFill, int diameter, int x, int y, int z)
draws a screened circle ... every other dot is turned on

Parameters: colixFill the color index diameter the pixel diameter x center x y center y z center z

fillSphereCentered

public void fillSphereCentered(int diameter, int x, int y, int z)
fills a solid sphere

Parameters: diameter pixel count x center x y center y z center z

fillSphereCentered

public void fillSphereCentered(int diameter, Point3i center)
fills a solid sphere

Parameters: diameter pixel count center javax.vecmath.Point3i defining the center

fillSphereCentered

public void fillSphereCentered(int diameter, Point3f center)
fills a solid sphere

Parameters: diameter pixel count center a javax.vecmath.Point3f ... floats are casted to ints

fillTriangle

public void fillTriangle(Point3i pointA, int intensityA, Point3i pointB, int intensityB, Point3i pointC, int intensityC)

fillTriangle

public void fillTriangle(Point3i pointA, short colixA, short normixA, Point3i pointB, short colixB, short normixB, Point3i pointC, short colixC, short normixC)

fillTriangle

public void fillTriangle(short normix, int xpointA, int ypointA, int zpointA, int xpointB, int ypointB, int zpointB, int xpointC, int ypointC, int zpointC)

fillTriangle

public void fillTriangle(Point3f pointA, Point3f pointB, Point3f pointC)

fillTriangle

public void fillTriangle(Point3i pointA, Point3i pointB, Point3i pointC)

fillTriangle

public void fillTriangle(Point3i pointA, short colixA, short normixA, Point3i pointB, short colixB, short normixB, Point3i pointC, short colixC, short normixC, float factor)

getColixArgb

public int getColixArgb(short colix)

getDepth

public int getDepth()
gets g3d depth

Returns: depth

getExporter

public JmolExportInterface getExporter()

getFont3DCurrent

public Font3D getFont3DCurrent()

getFont3DScaled

public Font3D getFont3DScaled(Font3D font, float scale)

getFontFid

public byte getFontFid(String fontFace, float fontSize)

getFontFid

public byte getFontFid(float fontSize)

getHexColorFromIndex

public String getHexColorFromIndex(short colix)

getInverseNormix

public short getInverseNormix(short normix)

getNormix

public short getNormix(Vector3f vector)

getNormixVector

public Vector3f getNormixVector(short normix)

getRenderHeight

public int getRenderHeight()
gets g3d height

Returns: height pixel count

getRenderWidth

public int getRenderWidth()
gets g3d width

Returns: width pixel count;

getSlab

public int getSlab()
gets g3d slab

Returns: slab

getTransformedVertexVectors

public Vector3f[] getTransformedVertexVectors()

haveTranslucentObjects

public boolean haveTranslucentObjects()

isAntialiased

public boolean isAntialiased()
is full scene / oversampling antialiasing in effect

Returns: the answer

isClippedXY

public boolean isClippedXY(int diameter, int x, int y)

isClippedZ

public boolean isClippedZ(int z)

isDirectedTowardsCamera

public boolean isDirectedTowardsCamera(short normix)

isInDisplayRange

public boolean isInDisplayRange(int x, int y)

plotPixelClipped

void plotPixelClipped(int x, int y, int z)

plotPixelClipped

public void plotPixelClipped(Point3i screen)

plotPixelClippedNoSlab

public void plotPixelClippedNoSlab(int argb, int x, int y, int z)

renderBackground

public void renderBackground()

renderEllipsoid

public void renderEllipsoid(int x, int y, int z, int diameter, Matrix3f mToEllipsoidal, double[] coef, Matrix4f mDeriv, int selectedOctant, Point3i[] octantPoints)

renderIsosurface

public void renderIsosurface(Point3f[] vertices, short colix, short[] colixes, Vector3f[] normals, int[][] indices, BitSet bsFaces, int nVertices, int faceVertexMax)

setColix

public boolean setColix(short colix)
sets current color from colix color index

Parameters: colix the color index

Returns: true or false if this is the right pass

setFont

public void setFont(byte fid)

setg3dExporter

public void setg3dExporter(Graphics3D g3d, JmolExportInterface exporter)

setRenderer

public void setRenderer(ShapeRenderer shapeRenderer)

setSlab

public void setSlab(int slabValue)