Compile Time Changes

Removed

public class AisleManager
public class PHNode
final public bool ShelvingGraphicVessel::isDoublePalletRackBody()
public void PHBodyDragAnimationG2::moveMultiSelect(bool refreshMouseInfo=false)

Modified

Due to the removal of the AisleManager class all methods of the AisleManager has been moved to the NoAislePHBody class. During this move some methods also got renamed to clarify the purpose of the methods.

Old: extend public PHBody ShelvingGraphicVessel::palletRactBody()
New: extend public PHBody ShelvingGraphicVessel::phBody()

Old: public double getPotentialAisleWidth(PHBody main, PHBody otherPHBody)
New: public double edgeToEdgeDistance(PHBody main, PHBody other)

Old: public point getMainPositionGivenAisleWidth(NoAislePHBody other, NoAislePHBody main, double aisleWidth)
New: public point adjustPositionToAisleWidth(PHBody main, PHBody other, double aisleWidth)

Old: public ShelvingBody{} getAllGroupShelving(ShelvingBody body)
New: public ShelvingBody{} getSystemShelving(ShelvingBody body)

Old: public ShelvingBody{} getAllGroupShelving(NoAislePHBody phBody)
New: public ShelvingBody{} getSystemShelving(NoAislePHBody phBody)

Old: public bool isAboveOtherBody(NoAislePHBody main, NoAislePHBody other)
New: public bool isAboveOtherBody(PHBody main, PHBody other)

Old: public NoAislePHBody getClosestPHBodyInSpace(Space space, point onFloorPos)
New: public PHBody getClosestPHBodyInSpace(Space space, point onFloorPos, double searchR=3m, SnapperFilter filter=PHBodyFilter())

Old: final public bool LOPositionEnv::isConflicts(box b1, box b2)
New: extend public bool LOPositionEnv::conflicts(box b1, box b2)

Old: extend public void PHBodyInsertAnimationG2::tryUpdateAisle(NoAislePHBody oldClosest)
New: extend public void PHBodyInsertAnimationG2::updateAisleWidth(NoAislePHBody oldClosest)

Old: extend public void PHBodyInsertAnimationG2::tryUpdateMainBody()
New: extend public void PHBodyInsertAnimationG2::updateMainBody()

Old: extend public double PHBodyInsertAnimationG2::getClosestAisle()
New: extend public double PHBodyInsertAnimationG2::getClosestAisleWidth()

Old: public double AisleManager::bottomAisle
New: extend public double NoAislePHBody::getAisleWidth()
New: extend public void NoAislePHBody::setAisleWidth(double newAisleWidth)

Old: extend public double AisleManager::initialAisleWidth()
New: extend public double NoAislePHBody::initialAisleWidth()

Old: extend public NoAislePHBody AisleManager::getTopMost()
New: extend public NoAislePHBody NoAislePHBody::getTopMost()

Old: extend public NoAislePHBody AisleManager::isTopMost()
New: extend public NoAislePHBody NoAislePHBody::isTopMost()

Old: extend public NoAislePHBody AisleManager::getBotMost()
New: extend public NoAislePHBody NoAislePHBody::getBottomMost()

Old: extend public NoAislePHBody AisleManager::isBotMost()
New: extend public NoAislePHBody NoAislePHBody::isBottomMost()

Old: extend public NoAislePHBody AisleManager::getClosestPHBody(bool top=true)
New: extend public NoAislePHBody NoAislePHBody::getClosestPHBody(bool top=true)

Old: extend public NoAislePHBody[] AisleManager::getAllPHBody()
New: extend public NoAislePHBody[] NoAislePHBody::phSystemGroup()

Old: extend public NoAislePHBody[] AisleManager::getAllPHBodyAccordingToDirection(bool top)
New: extend public NoAislePHBody[] NoAislePHBody::phDirectionGroup(bool top)

Old: extend public Snapper{} AisleManager::getAllRelatedSnappers()
New: extend public Snapper{} NoAislePHBody::allConnectedSnappers()

Old: extend public void NoAislePHBody::resetNodeAndRebuild2D()
New: extend public void NoAislePHBody::unlinkAndRebuild2D()

Old: extend public box ShelvingSystemOutlineVessel::getSystemBound(PHNode node)
New: extend public box ShelvingSystemOutlineVessel::getSystemBound(NoAislePHBody ph)

Old: extend public ShelvingSystemOutlineVessel::PHNode getClosestSystemRootNode()
New: extend public ShelvingSystemOutlineVessel::NoAislePHBody getClosestPHBody()

Runtime/Behavior Changes

Animation changes

  • Added animation properties 'Number of racks' and 'Number of rows'.
    • PHBodyInsertAnimationG2
    • PHBodyWidthAdjustingAnimationG2
    • PlacingMultiplePHBodyAnimationG2
  • Added animation properties 'Total length' and 'Total rack count'.
    • ShelvingPropertyStretchAnimation (superStretch)

Shelving insert changes

  • ShelvingSystemInfo.positionShelving() wrongfully offset the first upright by its own width.
  • PHBody.afterShelvingInsert() is called for every PHBody after the shelving has been inserted. This allows for any adjustments needed to be done after the insert. The calls to PHBody.afterShelvingInsert() is done in the same Undo step as the insertion.

Automatic soul key changes

  • Fields marked ignore modify notice and/or stream=null are automatically discarded to prevent them from being part of the soul key.
  • Props with the attribute #stream_null are automatically discarded to prevent them from being part of the soul key.

Compare functions for LOPosition and Layouts

  • Improved the compare functions to take the LOPosition flags front, inner and back into account.
  • Replaced all str->tuple maps with sorted maps that sort on LOPosition according to compareLOPosition() function. The str->tuple maps only sorted on point.toS.