org.jmol.geodesic
Class EnvelopeCalculation

java.lang.Object
  extended by org.jmol.geodesic.EnvelopeCalculation

public final class EnvelopeCalculation
extends java.lang.Object


Field Summary
private  int atomCount
           
private  AtomData atomData
           
private  java.util.BitSet bsIgnore
           
private  java.util.BitSet bsMySelected
           
private  java.util.BitSet bsSurface
           
private  javax.vecmath.Point3f centerI
           
private  javax.vecmath.Point3f centerT
           
private  javax.vecmath.Point3f[] currentPoints
           
private  float diameterP
           
private  boolean disregardNeighbors
           
private  FastBitSet[] dotsConvexMaps
           
private  int dotsConvexMax
           
private  FastBitSet emptySet
           
private  int geodesicCount
           
private  FastBitSet geodesicMap
           
private  int indexI
           
private  boolean isSurface
           
private  short[] mads
           
private  FastBitSet mapT
           
static int MAX_LEVEL
           
private  float maxRadius
           
private  boolean modelZeroBased
           
private  boolean multiModel
           
private  javax.vecmath.Point3f[] neighborCenters
           
private  int neighborCount
           
private  int[] neighborIndices
           
private  float[] neighborPlusProbeRadii2
           
private  float[] neighborRadii2
           
private  boolean onlySelectedDots
           
private  javax.vecmath.Point3f pointT
           
private static int[] power4
           
private  float radiiIP2
           
private  float radiusI
           
private  float radiusP
           
static float SURFACE_DISTANCE_FOR_CALCULATION
           
private  javax.vecmath.Point3f[] vertexTest
           
private  AtomDataServer viewer
           
 
Constructor Summary
EnvelopeCalculation(AtomDataServer viewer, int atomCount, short[] mads, boolean asJavaBitSet)
           
 
Method Summary
private  void addIncompleteFaces(FastBitSet points)
           
 void allocDotsConvexMaps(int max)
           
private  void calcConvexBits()
           
private  void calcConvexMap(boolean isSurface)
           
 void calculate(RadiusData rd, float maxRadius, java.util.BitSet bsSelected, java.util.BitSet bsIgnore, boolean disregardNeighbors, boolean onlySelectedDots, boolean isSurface, boolean multiModel)
           
 void deleteAtoms(int firstAtomDeleted, int nAtomsDeleted, java.util.BitSet bsAtoms)
           
 float getAppropriateRadius(int atomIndex)
           
 java.util.BitSet getBsSurfaceClone()
           
 FastBitSet[] getDotsConvexMaps()
           
 int getDotsConvexMax()
           
private  AtomIndexIterator getNeighbors(AtomIndexIterator iter)
           
 javax.vecmath.Point3f[] getPoints()
           
 float getRadius(int atomIndex)
           
 void newSet()
           
 void reCalculate(java.util.BitSet bs)
           
private  void setAtomI(int indexI)
           
private  void setDotsConvexMax()
           
 void setFromBits(int index, java.util.BitSet bs)
           
 void setMads(short[] mads)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

geodesicMap

private FastBitSet geodesicMap

mapT

private FastBitSet mapT

mads

private short[] mads

atomData

private AtomData atomData

viewer

private AtomDataServer viewer

atomCount

private int atomCount

emptySet

private FastBitSet emptySet

SURFACE_DISTANCE_FOR_CALCULATION

public static final float SURFACE_DISTANCE_FOR_CALCULATION
See Also:
Constant Field Values

MAX_LEVEL

public static final int MAX_LEVEL
See Also:
Constant Field Values

maxRadius

private float maxRadius

modelZeroBased

private boolean modelZeroBased

disregardNeighbors

private boolean disregardNeighbors

bsMySelected

private java.util.BitSet bsMySelected

dotsConvexMaps

private FastBitSet[] dotsConvexMaps

dotsConvexMax

private int dotsConvexMax

geodesicCount

private int geodesicCount

bsSurface

private java.util.BitSet bsSurface

radiusP

private float radiusP

diameterP

private float diameterP

bsIgnore

private java.util.BitSet bsIgnore

onlySelectedDots

private boolean onlySelectedDots

isSurface

private boolean isSurface

multiModel

private boolean multiModel

currentPoints

private javax.vecmath.Point3f[] currentPoints

indexI

private int indexI

centerI

private javax.vecmath.Point3f centerI

radiusI

private float radiusI

radiiIP2

private float radiiIP2

pointT

private final javax.vecmath.Point3f pointT

centerT

private javax.vecmath.Point3f centerT

vertexTest

private final javax.vecmath.Point3f[] vertexTest

power4

private static int[] power4

neighborCount

private int neighborCount

neighborIndices

private int[] neighborIndices

neighborCenters

private javax.vecmath.Point3f[] neighborCenters

neighborPlusProbeRadii2

private float[] neighborPlusProbeRadii2

neighborRadii2

private float[] neighborRadii2
Constructor Detail

EnvelopeCalculation

public EnvelopeCalculation(AtomDataServer viewer,
                           int atomCount,
                           short[] mads,
                           boolean asJavaBitSet)
Method Detail

getDotsConvexMaps

public FastBitSet[] getDotsConvexMaps()

getDotsConvexMax

public int getDotsConvexMax()

allocDotsConvexMaps

public void allocDotsConvexMaps(int max)

getBsSurfaceClone

public java.util.BitSet getBsSurfaceClone()

setMads

public void setMads(short[] mads)

setFromBits

public void setFromBits(int index,
                        java.util.BitSet bs)

newSet

public void newSet()

reCalculate

public void reCalculate(java.util.BitSet bs)

calculate

public void calculate(RadiusData rd,
                      float maxRadius,
                      java.util.BitSet bsSelected,
                      java.util.BitSet bsIgnore,
                      boolean disregardNeighbors,
                      boolean onlySelectedDots,
                      boolean isSurface,
                      boolean multiModel)
Parameters:
rd -
maxRadius -
bsSelected -
bsIgnore -
disregardNeighbors -
onlySelectedDots -
isSurface -
multiModel -

getRadius

public float getRadius(int atomIndex)

getPoints

public javax.vecmath.Point3f[] getPoints()

setDotsConvexMax

private void setDotsConvexMax()

getAppropriateRadius

public float getAppropriateRadius(int atomIndex)

setAtomI

private void setAtomI(int indexI)

calcConvexMap

private void calcConvexMap(boolean isSurface)

addIncompleteFaces

private void addIncompleteFaces(FastBitSet points)

calcConvexBits

private void calcConvexBits()

getNeighbors

private AtomIndexIterator getNeighbors(AtomIndexIterator iter)

deleteAtoms

public void deleteAtoms(int firstAtomDeleted,
                        int nAtomsDeleted,
                        java.util.BitSet bsAtoms)