org.jmol.export
public class _ObjExporter extends __CartesianExporter
Modifier and Type | Field and Description |
---|---|
private int |
circleNum
Number for the next mesh of this type.
|
private int |
coneNum
Number for the next mesh of this type.
|
private int |
currentNormalOrigin
Wavefront OBJ refers to vertices and normals and textures by their location
in the file.
|
private int |
currentTextureOrigin
Wavefront OBJ refers to vertices and normals and textures by their location
in the file.
|
private int |
currentVertexOrigin
Wavefront OBJ refers to vertices and normals and textures by their location
in the file.
|
private int |
cylinderNum
Number for the next mesh of this type.
|
private static boolean |
debug
Flag to cause debugging output to stdout.
|
private int |
ellipseNum
Number for the next mesh of this type.
|
private int |
ellipsoidNum
Number for the next mesh of this type.
|
private BufferedWriter |
mtlbw
BufferedWriter for the .mtl file.
|
(package private) File |
mtlFile
File for the .mtl file.
|
private FileOutputStream |
mtlos
FileOutputStream for the .mtl file.
|
private int |
nMtlBytes
Bytes written to the .mtl file.
|
private boolean |
normalizeUV
Whether to normalize UV texture coordinates.
|
(package private) String |
objFileRootName
Path of the OBJ file without the extension.
|
private float |
pixelSize
The size of a pixel based on some assumptions about screen size
|
private Point3f |
ptTemp |
private int |
sphereNum
Number for the next mesh of this type.
|
private int |
surfaceNum
Number for the next mesh of this type.
|
private boolean |
surfacesOnly
Flag to cause only surfaces to be output.
|
(package private) List<String> |
textureFiles
List of texture files created.
|
(package private) Set<Short> |
textures
HashSet for textures.
|
private int |
triangleNum
Number for the next mesh of this type.
|
sphereMatrix, viewpoint
aperatureAngle, backgroundColix, bw, cameraDistance, cameraPosition, center, commandLineOptions, commentChar, degreesPerRadian, depthZ, exportType, fileName, fixedRotationCenter, g3d, isToFile, jmolRenderer, lightSource, lineWidthMad, nBytes, output, privateKey, referenceCenter, scalePixelsPerAngstrom, screenHeight, screenWidth, slabZ, tempA, tempP1, tempP2, tempP3, tempV1, tempV2, tempV3, viewer
Constructor and Description |
---|
_ObjExporter() |
Modifier and Type | Method and Description |
---|---|
private void |
addMesh(String name,
MeshSurface data,
Matrix4f matrix,
Matrix4f matrix1,
short colix,
Point dim,
BitSet bsValid)
Adds a new mesh using the given data (faces, vertices, and normals) and
colix after transforming it via the given affine transform matrix.
|
private void |
addTexture(short colix,
String name)
Adds a texture to the .mtl file if it is a new texture.
|
private Object |
createImage(String fileName,
String type,
Object image,
int width,
int height) |
private File |
createTextureFile(String name,
MeshSurface data,
Point dim)
Writes a texture file with the colors in the colixes array in a way that it
can be mapped by the texture coordinates vt.
|
protected void |
debugPrint(String string)
Debug print utility.
|
protected void |
drawSurface(MeshSurface meshSurface,
short colix) |
(package private) String |
finalizeOutput() |
private String |
getTextureName(short colix)
Returns the name to be used for the texture associated with the given
colix.
|
(package private) boolean |
initializeOutput(Viewer viewer,
double privateKey,
Graphics3D g3d,
Object output) |
protected void |
output(Tuple3f pt) |
protected void |
outputCircle(Point3f pt1,
Point3f pt2,
float radius,
short colix,
boolean doFill) |
private void |
outputCircle1(Point3f ptCenter,
Point3f ptPerp,
short colix,
float radius)
Local implementation of outputCircle.
|
protected void |
outputCone(Point3f ptBase,
Point3f ptTip,
float radius,
short colix) |
private void |
outputCone1(Point3f ptBase,
Point3f ptTip,
float radius,
short colix)
Local implementation of outputCone.
|
protected boolean |
outputCylinder(Point3f ptCenter,
Point3f pt1,
Point3f pt2,
short colix,
byte endcaps,
float radius,
Point3f ptX,
Point3f ptY,
boolean checkRadius) |
private void |
outputCylinder1(Point3f ptCenter,
Point3f pt1,
Point3f pt2,
short colix,
byte endcaps,
float radius,
Point3f ptX,
Point3f ptY)
Local implementation of outputCylinder.
|
private boolean |
outputEllipse1(Point3f ptCenter,
Point3f ptZ,
Point3f ptX,
Point3f ptY,
short colix)
Local implementation of outputEllipse.
|
protected void |
outputEllipsoid(Point3f center,
Point3f[] points,
short colix) |
private void |
outputEllipsoid1(Point3f center,
float rx,
float ry,
float rz,
AxisAngle4f a,
short colix)
Local implementation of outputEllipsoid.
|
protected void |
outputFace(int[] face,
int[] map,
int faceVertexMax) |
private void |
outputFace1(int[] face,
int[] map,
int[] map2)
Local implementation of outputFace used for no texture coordinates.
|
private void |
outputFace2(int[] face,
int vt,
int[] map,
int[] map2)
Local implementation of outputFace used with texture coordinates.
|
protected void |
outputHeader() |
private void |
outputList(Tuple3f[] pts,
int nPts,
Matrix4f m,
String prefix,
BitSet bsValid)
create the v or vn list
|
private void |
outputMtl(String data)
Write to the .mtl file and keep track of the bytes written.
|
protected void |
outputSphere(Point3f center,
float radius,
short colix,
boolean checkRadius) |
protected void |
outputTextPixel(Point3f pt,
int argb) |
protected void |
outputTriangle(Point3f pt1,
Point3f pt2,
Point3f pt3,
short colix) |
private void |
outputTriangle1(Point3f pt1,
Point3f pt2,
Point3f pt3,
short colix)
Local implementation of outputCylinder.
|
drawAtom, drawCircle, drawCylinder, drawEllipse, drawPixel, drawTextPixel, fillConeScreen, fillCylinderScreen, fillCylinderScreenMad, fillEllipsoid, fillSphere, fillTriangle, getCameraPosition, getCoordinateMap, getModelCenter, getNormalMap, outputIndices, plotImage, plotText, setSphereMatrix
drawFilledCircle, getColorList, getConeMesh, getExportDate, getJmolPerspective, getRotationMatrix, getRotationMatrix, opacityFractionalFromArgb, opacityFractionalFromColix, output, outputComment, outputFooter, outputJmolPerspective, outputSurface, outputVertex, outputVertices, rgbFractionalFromArgb, rgbFractionalFromColix, round, round, setRenderer, setTempVertex, translucencyFractionalFromColix
private static final boolean debug
private boolean surfacesOnly
private boolean normalizeUV
private BufferedWriter mtlbw
private FileOutputStream mtlos
String objFileRootName
File mtlFile
private int nMtlBytes
private int sphereNum
private int cylinderNum
private int ellipseNum
private int circleNum
private int ellipsoidNum
private int coneNum
private int triangleNum
private int surfaceNum
private int currentVertexOrigin
private int currentNormalOrigin
private int currentTextureOrigin
private float pixelSize
private final Point3f ptTemp
protected void debugPrint(String string)
string
- protected void outputFace(int[] face, int[] map, int faceVertexMax)
outputFace
in class __CartesianExporter
protected void outputCircle(Point3f pt1, Point3f pt2, float radius, short colix, boolean doFill)
outputCircle
in class __CartesianExporter
protected void outputCone(Point3f ptBase, Point3f ptTip, float radius, short colix)
outputCone
in class __CartesianExporter
protected boolean outputCylinder(Point3f ptCenter, Point3f pt1, Point3f pt2, short colix, byte endcaps, float radius, Point3f ptX, Point3f ptY, boolean checkRadius)
outputCylinder
in class __CartesianExporter
protected void outputEllipsoid(Point3f center, Point3f[] points, short colix)
outputEllipsoid
in class __CartesianExporter
protected void outputSphere(Point3f center, float radius, short colix, boolean checkRadius)
outputSphere
in class __CartesianExporter
protected void outputTextPixel(Point3f pt, int argb)
outputTextPixel
in class __CartesianExporter
protected void outputTriangle(Point3f pt1, Point3f pt2, Point3f pt3, short colix)
outputTriangle
in class __CartesianExporter
protected void outputHeader()
outputHeader
in class ___Exporter
protected void output(Tuple3f pt)
output
in class ___Exporter
protected void drawSurface(MeshSurface meshSurface, short colix)
drawSurface
in class ___Exporter
boolean initializeOutput(Viewer viewer, double privateKey, Graphics3D g3d, Object output)
initializeOutput
in class ___Exporter
String finalizeOutput()
finalizeOutput
in class ___Exporter
private void outputMtl(String data)
data
- private String getTextureName(short colix)
colix
- The value of colix.private void outputCircle1(Point3f ptCenter, Point3f ptPerp, short colix, float radius)
ptCenter
- ptPerp
- colix
- radius
- private void outputCone1(Point3f ptBase, Point3f ptTip, float radius, short colix)
ptBase
- ptTip
- radius
- colix
- private boolean outputEllipse1(Point3f ptCenter, Point3f ptZ, Point3f ptX, Point3f ptY, short colix)
ptCenter
- ptZ
- ptX
- ptY
- colix
- private File createTextureFile(String name, MeshSurface data, Point dim)
name
- The name of the file without the path or ext. This will be added
to the root name of the OBJ file along with the image suffix. The
value should be the name given to the surface.data
- dim
- A Point representing the width, height of the image.private Object createImage(String fileName, String type, Object image, int width, int height) throws Exception
fileName
- type
- image
- width
- height
- Exception
private void outputEllipsoid1(Point3f center, float rx, float ry, float rz, AxisAngle4f a, short colix)
center
- rx
- ry
- rz
- a
- colix
- private void outputCylinder1(Point3f ptCenter, Point3f pt1, Point3f pt2, short colix, byte endcaps, float radius, Point3f ptX, Point3f ptY)
ptCenter
- pt1
- pt2
- colix
- endcaps
- radius
- ptX
- ptY
- private void outputTriangle1(Point3f pt1, Point3f pt2, Point3f pt3, short colix)
pt1
- Vertex 1.pt2
- Vertex 2.pt3
- Vertex 3.colix
- The colix.private void addTexture(short colix, String name)
colix
- name
- TODOprivate void addMesh(String name, MeshSurface data, Matrix4f matrix, Matrix4f matrix1, short colix, Point dim, BitSet bsValid)
name
- The name to be used for the mesh.data
- Where the data are located.matrix
- Transformation to transform the base mesh.matrix1
- Transformation for normalscolix
- Colix associated with the mesh.dim
- The width, height of the associated image for UV texture
coordinates. If null no UV coordinates are used.bsValid
- TODOprivate void outputList(Tuple3f[] pts, int nPts, Matrix4f m, String prefix, BitSet bsValid)
pts
- nPts
- m
- prefix
- bsValid
- TODOprivate void outputFace1(int[] face, int[] map, int[] map2)
face
- map
- Map of data vertex indexes to output indexesmap2
- Map of data normal indexes to output indexesprivate void outputFace2(int[] face, int vt, int[] map, int[] map2)
face
- Array of vertices for the face.vt
- Number of the vt texture coordinate.map
- Map of data vertex indexes to output indexesmap2
- Map of data normal indexes to output indexes