org.jmol.geodesic
Class EnvelopeCalculation

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

public final class EnvelopeCalculation
extends Object


Field Summary
private  int atomCount
           
private  AtomData atomData
           
private  BitSet bsIgnore
           
private  BitSet bsMySelected
           
private  BitSet bsSurface
           
private  Point3f centerI
           
private  Point3f centerT
           
private  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  Point3f[] neighborCenters
           
private  int neighborCount
           
private  int[] neighborIndices
           
private  float[] neighborPlusProbeRadii2
           
private  float[] neighborRadii2
           
private  boolean onlySelectedDots
           
private  Point3f pointT
           
private static int[] power4
           
private  float radiiIP2
           
private  float radiusI
           
private  float radiusP
           
static float SURFACE_DISTANCE_FOR_CALCULATION
           
private  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, BitSet bsSelected, BitSet bsIgnore, boolean disregardNeighbors, boolean onlySelectedDots, boolean isSurface, boolean multiModel)
           
 void deleteAtoms(int firstAtomDeleted, int nAtomsDeleted, BitSet bsAtoms)
           
 float getAppropriateRadius(int atomIndex)
           
 BitSet getBsSurfaceClone()
           
 FastBitSet[] getDotsConvexMaps()
           
 int getDotsConvexMax()
           
private  AtomIndexIterator getNeighbors(AtomIndexIterator iter)
           
 Point3f[] getPoints()
           
 float getRadius(int atomIndex)
           
 void newSet()
           
 void reCalculate(BitSet bs)
           
private  void setAtomI(int indexI)
           
private  void setDotsConvexMax()
           
 void setFromBits(int index, 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 BitSet bsMySelected

dotsConvexMaps

private FastBitSet[] dotsConvexMaps

dotsConvexMax

private int dotsConvexMax

geodesicCount

private int geodesicCount

bsSurface

private BitSet bsSurface

radiusP

private float radiusP

diameterP

private float diameterP

bsIgnore

private BitSet bsIgnore

onlySelectedDots

private boolean onlySelectedDots

isSurface

private boolean isSurface

multiModel

private boolean multiModel

currentPoints

private Point3f[] currentPoints

indexI

private int indexI

centerI

private Point3f centerI

radiusI

private float radiusI

radiiIP2

private float radiiIP2

pointT

private final Point3f pointT

centerT

private Point3f centerT

vertexTest

private final Point3f[] vertexTest

power4

private static int[] power4

neighborCount

private int neighborCount

neighborIndices

private int[] neighborIndices

neighborCenters

private 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 BitSet getBsSurfaceClone()

setMads

public void setMads(short[] mads)

setFromBits

public void setFromBits(int index,
                        BitSet bs)

newSet

public void newSet()

reCalculate

public void reCalculate(BitSet bs)

calculate

public void calculate(RadiusData rd,
                      float maxRadius,
                      BitSet bsSelected,
                      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 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,
                        BitSet bsAtoms)