Package org.jmol.g3d

Class 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 Detail

      • shader

        private final Shader shader
      • 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
      • 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)