Package org.jmol.geodesic
Class EnvelopeCalculation
- java.lang.Object
-
- org.jmol.geodesic.EnvelopeCalculation
-
- All Implemented Interfaces:
JmolEnvCalc
public final class EnvelopeCalculation extends java.lang.Object implements JmolEnvCalc
-
-
Field Summary
Fields Modifier and Type Field Description private intacprivate AtomDataatomDataprivate BSbsIgnoreprivate BSbsMySelectedprivate BSbsSurfaceprivate BSbsTempprivate javajs.util.P3centerIprivate javajs.util.P3centerTprivate javajs.util.P3[]currentPointsprivate floatdiameterPprivate booleandisregardNeighborsprivate BS[]dotsConvexMapsprivate intdotsConvexMaxprivate static BSEMPTY_SETprivate intgeodesicCountprivate BSgeodesicMapprivate intindexIprivate booleanisSurfaceprivate short[]madsprivate BSmapTprivate floatmaxRadiusprivate booleanmodelZeroBasedprivate booleanmultiModelprivate javajs.util.P3[]neighborCentersprivate intneighborCountprivate int[]neighborIndicesprivate float[]neighborPlusProbeRadii2private float[]neighborRadii2private booleanonlySelectedDotsprivate javajs.util.P3pointTprivate static int[]power4private floatradiiIP2private floatradiusIprivate floatradiusPprivate javajs.util.P3[]vertexTestprivate AtomDataServervwr
-
Constructor Summary
Constructors Constructor Description EnvelopeCalculation()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private voidaddIncompleteFaces(BS points)voidallocDotsConvexMaps(int max)private voidcalcConvexBits()private voidcalcConvexMap(boolean isSurface)voidcalculate(RadiusData rd, float maxRadius, BS bsSelected, BS bsIgnore, boolean disregardNeighbors, boolean onlySelectedDots, boolean isSurface, boolean multiModel)private voidcheckNewDotsArray()voiddeleteAtoms(int firstAtomDeleted, int nAtomsDeleted)floatgetAppropriateRadius(int atomIndex)BSgetBsSurfaceClone()BS[]getDotsConvexMaps()intgetDotsConvexMax()private AtomIndexIteratorgetNeighbors(AtomIndexIterator iter)javajs.util.P3[]getPoints()floatgetRadius(int atomIndex)voidnewSet()voidreCalculate(BS bs, javajs.util.M3 m)problem prior to 12.3.18 was that dots once on the deodesic were not being moved.EnvelopeCalculationset(AtomDataServer vwr, int ac, short[] mads)private voidsetAtomI(int indexI)private voidsetDotsConvexMax()voidsetFromBits(int index, BS bs)voidsetMads(short[] mads)
-
-
-
Field Detail
-
geodesicMap
private BS geodesicMap
-
mapT
private BS mapT
-
mads
private short[] mads
-
atomData
private AtomData atomData
-
vwr
private AtomDataServer vwr
-
ac
private int ac
-
EMPTY_SET
private static BS EMPTY_SET
-
maxRadius
private float maxRadius
-
modelZeroBased
private boolean modelZeroBased
-
disregardNeighbors
private boolean disregardNeighbors
-
bsMySelected
private BS bsMySelected
-
dotsConvexMaps
private BS[] dotsConvexMaps
-
dotsConvexMax
private int dotsConvexMax
-
geodesicCount
private int geodesicCount
-
bsSurface
private BS bsSurface
-
radiusP
private float radiusP
-
diameterP
private float diameterP
-
bsTemp
private BS bsTemp
-
bsIgnore
private BS bsIgnore
-
onlySelectedDots
private boolean onlySelectedDots
-
isSurface
private boolean isSurface
-
multiModel
private boolean multiModel
-
currentPoints
private javajs.util.P3[] currentPoints
-
indexI
private int indexI
-
centerI
private javajs.util.P3 centerI
-
radiusI
private float radiusI
-
radiiIP2
private float radiiIP2
-
pointT
private final javajs.util.P3 pointT
-
centerT
private javajs.util.P3 centerT
-
vertexTest
private final javajs.util.P3[] vertexTest
-
power4
private static int[] power4
-
neighborCount
private int neighborCount
-
neighborIndices
private int[] neighborIndices
-
neighborCenters
private javajs.util.P3[] neighborCenters
-
neighborPlusProbeRadii2
private float[] neighborPlusProbeRadii2
-
neighborRadii2
private float[] neighborRadii2
-
-
Method Detail
-
set
public EnvelopeCalculation set(AtomDataServer vwr, int ac, short[] mads)
- Specified by:
setin interfaceJmolEnvCalc- Parameters:
vwr-ac-mads-- Returns:
- this
-
getDotsConvexMaps
public BS[] getDotsConvexMaps()
-
getDotsConvexMax
public int getDotsConvexMax()
-
allocDotsConvexMaps
public void allocDotsConvexMaps(int max)
-
getBsSurfaceClone
public BS getBsSurfaceClone()
- Specified by:
getBsSurfaceClonein interfaceJmolEnvCalc
-
setMads
public void setMads(short[] mads)
-
setFromBits
public void setFromBits(int index, BS bs)
-
newSet
public void newSet()
-
reCalculate
public void reCalculate(BS bs, javajs.util.M3 m)
problem prior to 12.3.18 was that dots once on the deodesic were not being moved. this isn't perfect, but it's reasonably good. Mostly, you should recreate dots after rotateSelected. This isn't a problem until after a state is saved and reloaded, since only then with atomData.radiusData be null.- Parameters:
bs-m-
-
calculate
public void calculate(RadiusData rd, float maxRadius, BS bsSelected, BS bsIgnore, boolean disregardNeighbors, boolean onlySelectedDots, boolean isSurface, boolean multiModel)
- Specified by:
calculatein interfaceJmolEnvCalc- Parameters:
rd-maxRadius-bsSelected-bsIgnore-disregardNeighbors-onlySelectedDots-isSurface-multiModel-
-
getRadius
public float getRadius(int atomIndex)
-
getPoints
public javajs.util.P3[] getPoints()
- Specified by:
getPointsin interfaceJmolEnvCalc
-
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(BS points)
-
calcConvexBits
private void calcConvexBits()
-
checkNewDotsArray
private void checkNewDotsArray()
-
getNeighbors
private AtomIndexIterator getNeighbors(AtomIndexIterator iter)
-
deleteAtoms
public void deleteAtoms(int firstAtomDeleted, int nAtomsDeleted)- Parameters:
firstAtomDeleted-nAtomsDeleted-
-
-