Package org.jmol.g3d
Class SphereRenderer
java.lang.Object
org.jmol.g3d.SphereRenderer
Implements high performance rendering of shaded spheres.
Drawing spheres quickly is critically important to Jmol. These routines implement high performance rendering of spheres in 3D.
If you can think of a faster way to implement this, please let us know.
There is a lot of bit-twiddling going on here, which may make the code difficult to understand for non-systems programmers.
Ellipsoid code added 4/2008 -- Bob Hanson hansonr@stolaf.edu- Author:
- Miguel, miguel@jmol.org
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate double[]
private int
private final float[][]
private final Graphics3D
private int
private javajs.util.M3
private static final int
(package private) static final int
(package private) static final int
private javajs.util.M4
private int
private int
private final int[]
private final javajs.util.P3
private int
private static final int
private final Shader
private int
private int
private int[]
private double[]
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription(package private) void
render
(int[] shades, int diameter, int x, int y, int z, javajs.util.M3 mat, double[] coef, javajs.util.M4 mDeriv, int selectedOctant, javajs.util.P3[] octantPoints) private void
renderQuadrant
(int xSign, int ySign, int x, int y, int z, int diameter, int[] shades) private void
renderQuadrantClipped
(int radius, int xSign, int ySign, int x, int y, int z, int[] shades) private void
renderQuadrantUnclipped
(int radius, int xSign, int ySign, int z, int[] s) private void
renderSphereClipped
(int[] sphereShape, int x, int y, int z, int diameter, int[] shades) private void
renderSphereUnclipped
(int[] sphereShape, int z, int diameter, int[] shades)
-
Field Details
-
g3d
-
shader
-
maxOddSizeSphere
private static final int maxOddSizeSphere- See Also:
-
maxSphereDiameter
static final int maxSphereDiameter- See Also:
-
maxSphereDiameter2
static final int maxSphereDiameter2- See Also:
-
zroot
private double[] zroot -
mat
private javajs.util.M3 mat -
coef
private double[] coef -
mDeriv
private javajs.util.M4 mDeriv -
selectedOctant
private int selectedOctant -
planeShade
private int planeShade -
zbuf
private int[] zbuf -
width
private int width -
height
private int height -
depth
private int depth -
slab
private int slab -
offsetPbufBeginLine
private int offsetPbufBeginLine -
SHADE_SLAB_CLIPPED
private static final int SHADE_SLAB_CLIPPED- See Also:
-
ptTemp
private final javajs.util.P3 ptTemp -
planeShades
private final int[] planeShades -
dxyz
private final float[][] dxyz
-
-
Constructor Details
-
SphereRenderer
SphereRenderer(Graphics3D g3d)
-
-
Method Details
-
render
void render(int[] shades, int diameter, int x, int y, int z, javajs.util.M3 mat, double[] coef, javajs.util.M4 mDeriv, int selectedOctant, javajs.util.P3[] octantPoints) -
renderSphereUnclipped
private void renderSphereUnclipped(int[] sphereShape, int z, int diameter, int[] shades) -
renderSphereClipped
private void renderSphereClipped(int[] sphereShape, int x, int y, int z, int diameter, int[] shades) -
renderQuadrant
private void renderQuadrant(int xSign, int ySign, int x, int y, int z, int diameter, int[] shades) -
renderQuadrantUnclipped
private void renderQuadrantUnclipped(int radius, int xSign, int ySign, int z, int[] s) -
renderQuadrantClipped
private void renderQuadrantClipped(int radius, int xSign, int ySign, int x, int y, int z, int[] shades)
-