Package org.jmol.g3d
Class SphereRenderer
- java.lang.Object
-
- org.jmol.g3d.SphereRenderer
-
public class SphereRenderer extends java.lang.ObjectImplements 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
Fields Modifier and Type Field Description private double[]coefprivate intdepthprivate float[][]dxyzprivate Graphics3Dg3dprivate intheightprivate javajs.util.M3matprivate static intmaxOddSizeSphere(package private) static intmaxSphereDiameter(package private) static intmaxSphereDiameter2private javajs.util.M4mDerivprivate intoffsetPbufBeginLineprivate intplaneShadeprivate int[]planeShadesprivate javajs.util.P3ptTempprivate intselectedOctantprivate static intSHADE_SLAB_CLIPPEDprivate Shadershaderprivate intslabprivate intwidthprivate int[]zbufprivate double[]zroot
-
Constructor Summary
Constructors Constructor Description SphereRenderer(Graphics3D g3d)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) voidrender(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 voidrenderQuadrant(int xSign, int ySign, int x, int y, int z, int diameter, int[] shades)private voidrenderQuadrantClipped(int radius, int xSign, int ySign, int x, int y, int z, int[] shades)private voidrenderQuadrantUnclipped(int radius, int xSign, int ySign, int z, int[] s)private voidrenderSphereClipped(int[] sphereShape, int x, int y, int z, int diameter, int[] shades)private voidrenderSphereUnclipped(int[] sphereShape, int z, int diameter, int[] shades)
-
-
-
Field Detail
-
g3d
private final Graphics3D g3d
-
shader
private final Shader shader
-
maxOddSizeSphere
private static final int maxOddSizeSphere
- See Also:
- Constant Field Values
-
maxSphereDiameter
static final int maxSphereDiameter
- See Also:
- Constant Field Values
-
maxSphereDiameter2
static final int maxSphereDiameter2
- See Also:
- Constant Field Values
-
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:
- Constant Field Values
-
ptTemp
private final javajs.util.P3 ptTemp
-
planeShades
private final int[] planeShades
-
dxyz
private final float[][] dxyz
-
-
Constructor Detail
-
SphereRenderer
SphereRenderer(Graphics3D g3d)
-
-
Method Detail
-
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)
-
-