Package org.jmol.g3d

Class SphereRenderer

java.lang.Object
org.jmol.g3d.SphereRenderer

public class SphereRenderer extends Object

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 Details

    • g3d

      private final Graphics3D g3d
    • shader

      private final Shader 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

  • 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)