public class TheWandererRookie extends MembranePackingAlgorithm implements java.awt.event.ItemListener, javax.swing.event.ChangeListener
Modifier and Type | Field and Description |
---|---|
boolean |
wanderDancing |
boolean |
wanderForFellow |
boolean |
wantsToStop |
basicOperations, BORDER_EAST, BORDER_MAX_Y, BORDER_MIN_Y, BORDER_NORTH, BORDER_SOUTH, BORDER_WEST, calculationManager, CurrentMicroDomain, databaseOperations, EXTRA, INTRA, lipidsEC, lipidsIC, LIPIDTYPE, membraneViewListener, microDomains, PROTEINTYPE, random
Constructor and Description |
---|
TheWandererRookie() |
Modifier and Type | Method and Description |
---|---|
void |
addNewLipid(Lipid newLipidToAdd,
int numberOfRuns)
Add the given lipid to the membrane.
|
boolean |
buildAndShowGui()
Generates the GUI with different options.
|
Lipid |
createNewLipid(Lipid newLipidToAdd,
int newLipidDomainID,
int numberOfRuns)
Create a new lipid.
|
void |
fillWithLipids()
The runtime of this algorithm is:
n*([F+]D[+C]), where
n = number of attempts to place new lipids F = place first lipid in row,
with: FreeEast, FreeSouth, [FellowWest, FellowNorth, [RotateNorthWest]] D
= place a follow-up lipid directly, with: FreeEast, FreeSouth,
[FellowWest, FellowNorth, [RotateNorthWest]] C = place a correcting
follow-up lipid if the first attempt did not succed, with:
([FellowNorth,] FreedomSouth, FreedomEast, [FellowNorth, FellowWest]) ||
(FreedomEast, FreedomSouth, [FellowWest, FellowNorth, [RotateNorthWest]])
|
java.lang.String |
getFullInformation()
returns full information about this algorithm
|
int |
getMicroDomainAtXZ(float xPosition,
float zPosition)
Returns the microdomain at the given x/z coordinates.
|
java.lang.String |
getName() |
int |
getRandomRotationInMode(int mode)
Returns a random integer for the roation in the given mode.
|
java.awt.Component |
getRuntimeControlPanel() |
java.lang.String |
getShortInformation()
returns short information about this algorithm
|
java.lang.String |
getStringRepresentationOfSetupParameters()
returns a string representation of users GUI settings
|
boolean |
intersectsWithLipids(Lipid givenLipid)
Returns true is the given Lipid intersects with a Lipid on both sides of
the membrane.
|
void |
itemStateChanged(java.awt.event.ItemEvent arg0)
handles users GUI settings
|
boolean |
overrideExistingLipids() |
void |
removeIntersectingEarthOrSkyLipids(java.util.HashSet<Lipid> lipidsOfActualRuns)
Remove all lost wanderers from the intra- and extracellular side.
|
void |
stateChanged(javax.swing.event.ChangeEvent arg0)
Handles User's GUI settings
|
void |
stopAlgorithm() |
boolean |
supportsAbsoluteValues() |
boolean |
supportsMicrodomains() |
javax.vecmath.Point3f |
wanderForFellowEast(Lipid givenLipid,
int microDomainID,
float plusForExtraMinusForIntra)
Move the placed and free lipid to the east until it meeting a fellow or
the border.
|
javax.vecmath.Point3f |
wanderForFellowNorth(Lipid givenLipid,
int microDomainID,
float plusForExtraMinusForIntra)
Move the placed and free lipid to the north until it meeting a fellow or
the border.
|
javax.vecmath.Point3f |
wanderForFellowSouth(Lipid givenLipid,
int microDomainID,
float plusForExtraMinusForIntra)
Move the placed and free lipid to the south until it meeting a fellow or
the border.
|
javax.vecmath.Point3f |
wanderForFellowVertical(Lipid givenLipid,
int microDomainID,
float plusForExtraMinusForIntra,
float[] directXZ)
Move the placed and free lipid to the east until it meeting a fellow or
the border.
|
javax.vecmath.Point3f |
wanderForFellowWest(Lipid givenLipid,
int microDomainID,
float plusForExtraMinusForIntra)
Move the placed and free lipid to the west until it meeting a fellow or
the border.
|
javax.vecmath.Point3f |
wanderForFreedomEast(Lipid givenLipid,
int microDomainID,
float plusForExtraMinusForIntra)
Move the placed and trapped lipid to the east until it is free.
|
javax.vecmath.Point3f |
wanderForFreedomNorth(Lipid givenLipid,
int microDomainID,
float plusForExtraMinusForIntra)
Move the placed and trapped lipid to the north until it is free.
|
javax.vecmath.Point3f |
wanderForFreedomSouth(Lipid givenLipid,
int microDomainID,
float plusForExtraMinusForIntra)
Move the placed and trapped lipid to the south until it is free.
|
javax.vecmath.Point3f |
wanderForFreedomSouthEast(Lipid givenLipid,
int microDomainID,
float plusForExtraMinusForIntra)
Move the placed and trapped lipid to the south-east until it is free.
|
javax.vecmath.Point3f |
wanderForFreedomWest(Lipid givenLipid,
int microDomainID,
float plusForExtraMinusForIntra)
Move the placed and trapped lipid to the west until it is free.
|
javax.vecmath.Point3f |
wanderForOptimalRotationNorthWest(Lipid givenLipid,
int microDomainID,
float plusForExtraMinusForIntra,
int mode)
Wanders to the North and to the West for a Fellow and tries to find the
optimal y-Rotation, following the mode.
|
addEntryToDB, addExtracellularLipid, addIntracellularLipid, clearAllLipids, copyMatrix, countSampleLipids_Extracellular, countSampleLipids_Intracellular, countTotalLipidsThatAreAdded, createAUnitMatrix, createNextExtracellularLipid, createNextExtracellularLipid, createNextIntracellularLipid, createNextIntracellularLipid, createRandomLayerID, createRandomXZPosition, displayInformation, distance, distance, dock, getAlgorithm_Directory_In_Workspace, getAllLipids, getAllLipidsInDomain, getAllMoleculesInCurrentModel, getAllProteins, getAllProteinsInDomain, getAllSampleLipids_ExtraCellular, getAllSampleLipids_ExtraCellular, getAllSampleLipids_IntraCellular, getAllSampleLipids_IntraCellular, getAllSampleLipidsInModel, getCurrentLayerID, getCurrentRenderMode, getDecimalPlaces, getDesiredAtomDistance, getExtracellularLipidByPDBCode, getIntersectedBorders, getIntersectedMolecules, getIntracellularLipidByPDBCode, getJ3DBranchGroup, getLayerAtIndex, getLayerByLayerID, getLayerCount, getLipidInMembraneHeight, getLipidsInRadiusExcept, getMembraneArea, getMembraneBounds2D, getMembraneSize, getMicroDomain, getMicroDomainAt, getMicroDomainAtPoint, getMicroDomainAtPoint, getMicroDomainCount, getMinAtomDistance, getMoleculesInRadius, getMoleculesInRadiusExcept, getMoleculesInRadiusOnMySide, getMoleculesInRadiusOnMySide, getMoleculesInRadiusOnMySideExcept, getNearestLipidOnMySide, getNearestMolecule, getNearestMoleculeExcept, getNearestMoleculeExceptDetailed, getNearestMoleculeExceptOnMySide, getNearestMoleculeExceptOnMySideDetailed, getNearestMoleculeOnMySide, getNearestMoleculeOnMySideDetailed, getNearestProtein, getNearestProteinDetailed, getNearestProteinExcept, getNearestProteinExceptDetailed, getOriginalConstraintLenghts, getOriginalConstraintLengths, getPercentages_ExtraCellular, getPercentages_IntraCellular, getSampleLipid_Extracellular, getSampleLipid_Intracellular, getSelectedArea, getStartingTime, getSystemCovalentRadius, getSystemVanDerWaalsRadius, getTerminationTime, getTotalHeight, getTotalHeight, hasMembraneAnyExtracellularLipids, hasMembraneAnyIntracellularLipids, hasMembraneAnyProteins, hasMultipleLayers, intersects, intersectsAnyMicroDomain, intersectsBorderEast, intersectsBorderNorth, intersectsBorders, intersectsBorderSouth, intersectsBorderWest, intersectsEarth, intersectsEarthOrSky, intersectsMoleculeWithMolecule, intersectsMoleculeWithMolecules, intersectsSky, intersectsWithLipid, intersectsWithProteins, isAtomCollisionOn, isAtomDistanceAbsolute, isComputeAbsoluteValuesSelected, isInSystemTray, isOnAir, isStartInBackgroundAllowed, isStartInBackgroundSelected, manuallyUpdateStatistics, MembraneHasAnyExtracellularLipids, MembraneHasAnyIntracellularLipids, nearestAtomPoints, nearestTrianglePoints, refreshViews, removeExtracellularLipid, removeIntracellularLipid, removeLipidsFromMembrane, requestChangeOfRenderMode, restoreMembraneFromPDB, returnFromSystemTray, sendToSystemTray, setComputeAbsoluteValues, setDisplayedProgress, setListenerAndPrepare, setListenerAndPrepare, setListenerAndPrepare, setPercentages, setSimpleRandom, setStartInBackgroundAllowed, setStartInBackgroundSelected, setStartingTime, setTerminationTime, setUniqueRandom
public boolean wantsToStop
public boolean wanderForFellow
public boolean wanderDancing
public void itemStateChanged(java.awt.event.ItemEvent arg0)
itemStateChanged
in interface java.awt.event.ItemListener
public void stateChanged(javax.swing.event.ChangeEvent arg0)
stateChanged
in interface javax.swing.event.ChangeListener
public boolean buildAndShowGui()
buildAndShowGui
in interface MembranePackingAlgorithmInterface
public void fillWithLipids() throws java.lang.Exception
fillWithLipids
in interface MembranePackingAlgorithmInterface
java.lang.Exception
public Lipid createNewLipid(Lipid newLipidToAdd, int newLipidDomainID, int numberOfRuns)
newLipidToAdd
- newLipidDomainID
- numberOfRuns
- public void addNewLipid(Lipid newLipidToAdd, int numberOfRuns) throws java.lang.Exception
newLipidToAdd
- numberOfRuns
- java.lang.Exception
public javax.vecmath.Point3f wanderForFreedomEast(Lipid givenLipid, int microDomainID, float plusForExtraMinusForIntra)
givenLipid
- microDomainID
- plusForExtraMinusForIntra
- public javax.vecmath.Point3f wanderForFellowEast(Lipid givenLipid, int microDomainID, float plusForExtraMinusForIntra)
givenLipid
- microDomainID
- plusForExtraMinusForIntra
- public javax.vecmath.Point3f wanderForFreedomWest(Lipid givenLipid, int microDomainID, float plusForExtraMinusForIntra)
givenLipid
- microDomainID
- plusForExtraMinusForIntra
- public javax.vecmath.Point3f wanderForFellowWest(Lipid givenLipid, int microDomainID, float plusForExtraMinusForIntra)
givenLipid
- microDomainID
- plusForExtraMinusForIntra
- public javax.vecmath.Point3f wanderForFreedomNorth(Lipid givenLipid, int microDomainID, float plusForExtraMinusForIntra)
givenLipid
- microDomainID
- plusForExtraMinusForIntra
- public javax.vecmath.Point3f wanderForFellowNorth(Lipid givenLipid, int microDomainID, float plusForExtraMinusForIntra)
givenLipid
- microDomainID
- plusForExtraMinusForIntra
- public javax.vecmath.Point3f wanderForFreedomSouth(Lipid givenLipid, int microDomainID, float plusForExtraMinusForIntra)
givenLipid
- microDomainID
- plusForExtraMinusForIntra
- public javax.vecmath.Point3f wanderForFellowSouth(Lipid givenLipid, int microDomainID, float plusForExtraMinusForIntra)
givenLipid
- microDomainID
- plusForExtraMinusForIntra
- public javax.vecmath.Point3f wanderForFreedomSouthEast(Lipid givenLipid, int microDomainID, float plusForExtraMinusForIntra)
givenLipid
- microDomainID
- plusForExtraMinusForIntra
- public javax.vecmath.Point3f wanderForOptimalRotationNorthWest(Lipid givenLipid, int microDomainID, float plusForExtraMinusForIntra, int mode)
givenLipid
- microDomainID
- plusForExtraMinusForIntra
- yRotation
- mode
- public javax.vecmath.Point3f wanderForFellowVertical(Lipid givenLipid, int microDomainID, float plusForExtraMinusForIntra, float[] directXZ)
givenLipid
- microDomainID
- plusForExtraMinusForIntra
- public int getRandomRotationInMode(int mode)
mode
- public int getMicroDomainAtXZ(float xPosition, float zPosition)
xPosition
- zPosition
- public void removeIntersectingEarthOrSkyLipids(java.util.HashSet<Lipid> lipidsOfActualRuns)
lipidVectorEC
- public boolean intersectsWithLipids(Lipid givenLipid)
givenLipid
- public java.lang.String getFullInformation()
getFullInformation
in interface MembranePackingAlgorithmInterface
public java.lang.String getName()
getName
in interface MembranePackingAlgorithmInterface
public java.awt.Component getRuntimeControlPanel()
getRuntimeControlPanel
in interface MembranePackingAlgorithmInterface
public java.lang.String getShortInformation()
getShortInformation
in interface MembranePackingAlgorithmInterface
public java.lang.String getStringRepresentationOfSetupParameters()
getStringRepresentationOfSetupParameters
in interface MembranePackingAlgorithmInterface
public boolean overrideExistingLipids()
overrideExistingLipids
in interface MembranePackingAlgorithmInterface
public void stopAlgorithm()
stopAlgorithm
in interface MembranePackingAlgorithmInterface
public boolean supportsAbsoluteValues()
supportsAbsoluteValues
in interface MembranePackingAlgorithmInterface
public boolean supportsMicrodomains()
supportsMicrodomains
in interface MembranePackingAlgorithmInterface