AnyLogic
Expand
Font size

Class PalletRack

All Implemented Interfaces:
AggregatableAnimationElement, HasLevel, INetworkMarkupElement, LevelElement, LevelMarkup, PalletRackAccess<Agent>, SVGElement, Serializable

public class PalletRack
extends NetworkMarkupElement
implements PalletRackAccess<Agent>, LevelMarkup
See Also:
Serialized Form

Field Summary

Modifier and TypeFieldDescription
static final PalletRackDirectionPALLET_RACK_LEFT_TO_RIGHT 
static final PalletRackDirectionPALLET_RACK_NO_DIRECTION 
static final PalletRackDirectionPALLET_RACK_RIGHT_TO_LEFT 
static final PalletRackTypePALLET_RACK_SINGLE_AISLE_LEFT 
static final PalletRackTypePALLET_RACK_SINGLE_AISLE_RIGHT 
static final PalletRackTypePALLET_RACK_TWO_AISLES 
static final PalletRackTypePALLET_RACK_TWO_PALLET_RACKS 

Constructor Summary

ConstructorDescription
PalletRack() 
PalletRack(Agent owner) 
PalletRack(Agent owner, ShapeDrawMode drawMode, boolean isPublic, boolean isObstacle, double x, double y, double z, double length, double depth, double depthR, double levelHeight, double rotation, PalletRackType type, PalletRackDirection direction, double aisleDepth, double aisleRDepth, double cellWidth, int nPositions, int nLevels, int nDeep, Paint fillColor, Color lineColor, int cellsBetweenLegs)
/** This method is internal and shouldn't be called by user.
it may be removed/renamed in future. It is public due to technical reasons.

Method Summary

Modifier and TypeMethodDescription
intcapacity()
Returns the total number of cell positions (all the levels and all racks, if there are two racks), which is (1 or 2) * number of positions along row * number of deep positions * number of levels
booleancontains(double px, double py)
Test if the shape contains the point with the given coordinates (relative to this shape's container, i.e.
booleancontains(Agent entity)
Returns true if the given agent is contained within this object
SVGElementfindSVGElement(long svgId)
This method is internal and shouldn't be called by user.
it may be removed/renamed in future.
Agentget(int row, int position, int level, int deepPosition)
Returns the agent stored at the specified cell [row,position,level,deepPosition], or null if the cell is reserved or free.
doublegetAisleDepth() 
doublegetAisleRightDepth() 
PalletRackApproachDirectiongetApproachDirection(Agent entity, int rowToSearch)
Return the approach direction to the given agent or null if agent is unreachable (lies deep in the cell, behind other entities)
BoundingRectanglegetBoundingRectangle() 
AgentgetByIndex(int index)
Returns the stored agent with a given index.
PalletRackLocationgetCellOf(Agent entity)
Returns the coordinates of a cell with a given agent [row,position,level], or null if the agent is not stored here.
doublegetCellWidth()
Returns the width of cell
doublegetDepth() 
doublegetDepthRight() 
ColorgetFillColor()
Returns the fill color of the markup element, or null if markup element has no fill color or has textured fill (in this case #getFillTexture() should be used instead)
PalletRackLocationgetFreeCell(boolean infront)
Returns the array [row,position,level] with the coordinates of a free cell that is closest to either front of back of the rack system, depending on the parameter infront.
doublegetLength() 
doublegetLevelHeight() 
ColorgetLineColor()
Returns the line color of the markup element, or null if markup element has no line color
doublegetNearestPoint(double x, double y, double z, Point out)
Calculates (using the output object) the point in this space markup element nearest to the given (x, y, z) point.
doublegetNearestPoint(double x, double y, Point out)
Calculates (using the output object) the point in this space markup element nearest to the given (x, y) point.
PositiongetPositionAtCell(int row, int position, int level, int deepPosition, double offset, double depth, boolean leftAisle, Position out)
Returns the position at the given cell
PositiongetPositionAtCellEntry(int row, int position, int level, boolean leftAisle, Position out)
Returns the position at the given cell
PositiongetPositionInAisle(int row, int position, boolean leftAisle, Position out)
Returns the position in the given aisle at the given cell
doublegetRotation() 
PalletRackTypegetType()
Returns the type of this pallet rack
doublegetX() 
doublegetY() 
doublegetZ() 
booleanhasSpace()
Returns true if there is enough space for at least one more agents
booleanisFree(int row, int position, int level)
Tests if a given cell [row,position,level] is free, i.e.
booleanisObstacle() 
intnFree(int row, int position, int level)
Tests if a given cell [row,position,level] is free, i.e.
intnReserved(int row, int position, int level)
Tests if a given cell [row,position,level] is reserved.
intnumberOfDeepPositions()
Returns the number of positions in the depth of each cell
intnumberOfLevels()
Returns the number of levels in this pallet rack
intnumberOfPositions()
Returns the number of positions (cells) in one shelf.
intnumberOfRows()
Returns the number of rows (pallet racks).
To set this number, please use setType(PalletRackType)
voidpostInitialize()
This method is internal and shouldn't be called by user.
it may be removed/renamed in future.
voidput(int row, int position, int level, boolean leftAisle, Agent entity)
Puts the agent into the cell with the specified coordinates [row,position,level].
AgentrandomAgent()
Returns a random agent in the rack system, or null if the rack system is empty.
AgentrandomEntity()
Deprecated.
please use randomAgent()
PointrandomPointInside(Random rng, Point out)
Returns the randomly chosen point inside/along the given space markup element.
voidrelease(int row, int position, int level, boolean leftAisle)
Discards a reservation of a given cell [row,position,level].
Agentremove(Agent entity)
Removes a given agent from the rack system and returns it.
AgentremoveFromCell(int row, int position, int level, boolean leftAisle)
Removes the agent stored in a given cell [row,position,level] from the rack system and returns it.
AgentremoveFromCell(PalletRackLocation location, boolean leftAisle)
Removes the agent stored in a given cell [row,position,level] from the rack system and returns it.
voidreserve(int row, int position, int level, boolean leftAisle)
Marks a given cell [row,position,level] as reserved.
intreserved()
Returns the number of reserved cells in the pallet rack(s).
voidresetStats()
Resets the statistics collected for this object.
voidresetSVGState()
This method is internal and shouldn't be called by user.
it may be removed/renamed in future.
voidsetAisleDepth(double aisleDepth) 
voidsetAisleRightDepth(double aisleRDepth) 
voidsetCellWidth(double cellWidth)
Sets the width of cell
voidsetConnectedSystem_xjal(PalletRackAccess<?> connectedSystem) 
voidsetDepth(double depth) 
voidsetDepthRight(double depthR) 
voidsetFillColor(Color fillColor)
Sets the fill color of the markup element.
voidsetFillColor(Paint fillColor)
Sets the fill color (or Texture) of the markup element.
voidsetLength(double length) 
voidsetLevelHeight(double levelHeight) 
voidsetLineColor(Color lineColor)
Sets the line color of the markup element.
voidsetNumberOfDeepPositions(int nDeep) 
voidsetNumberOfLevels(int nLevels)
Sets the number of levels in this pallet rack
voidsetNumberOfPositions(int nPositions)
Sets the number of positions (cells) in one shelf.
voidsetObstacle(boolean isObstacle) 
voidsetRotation(double rotation) 
voidsetType(PalletRackType type)
Sets the type of this pallet rack
voidsetX(double x) 
voidsetY(double y) 
voidsetZ(double z) 
intsize()
Returns the number of entities inside
voidupdateColorMap(int row, int position, int level, int deepPosition, boolean put)
This method is internal and shouldn't be called by user.
it may be removed/renamed in future.
SVGElementupdateSVGProperties(List<SVGCommand> output, ShapeDrawMode drawMode, boolean publicOnly, SVGElement owner, SVGElement elbehind)
This method is internal and shouldn't be called by user.
it may be removed/renamed in future.
Updates SVG properties of the element that are then sent to the rendering client.

Methods inherited from class com.anylogic.engine.markup.NetworkMarkupElement

getDrawMode, getLevel, getNearestPoint, getNearestPoint, getNearestPoint, getNetwork, setLevel

Methods inherited from class com.anylogic.engine.markup.MarkupShape

error, getFullName, getOutsideLevelZ, getPresentable, getSpace, initialize, isClickHandled, isPublic, onClick, remove, setDrawMode, setOwner

Methods inherited from class java.lang.Object

equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Methods inherited from interface com.anylogic.engine.markup.AggregatableAnimationElement

initializeInternal, onAggregatorVisibilityChanged

Methods inherited from interface com.anylogic.engine.markup.HasLevel

getLevel

Methods inherited from interface com.anylogic.engine.markup.INetworkMarkupElement

getSpace, randomPointInside, randomPointInside, randomPointInside

Methods inherited from interface com.anylogic.engine.markup.LevelElement

setLevel

Field Details

PALLET_RACK_SINGLE_AISLE_LEFT

public static final PalletRackType PALLET_RACK_SINGLE_AISLE_LEFT

PALLET_RACK_SINGLE_AISLE_RIGHT

public static final PalletRackType PALLET_RACK_SINGLE_AISLE_RIGHT

PALLET_RACK_TWO_AISLES

public static final PalletRackType PALLET_RACK_TWO_AISLES

PALLET_RACK_TWO_PALLET_RACKS

public static final PalletRackType PALLET_RACK_TWO_PALLET_RACKS

PALLET_RACK_NO_DIRECTION

public static final PalletRackDirection PALLET_RACK_NO_DIRECTION

PALLET_RACK_LEFT_TO_RIGHT

public static final PalletRackDirection PALLET_RACK_LEFT_TO_RIGHT

PALLET_RACK_RIGHT_TO_LEFT

public static final PalletRackDirection PALLET_RACK_RIGHT_TO_LEFT

Constructor Details

PalletRack

public PalletRack()

PalletRack

public PalletRack(Agent owner)

PalletRack

@AnyLogicInternalCodegenAPI
public PalletRack(Agent owner,
 ShapeDrawMode drawMode,
 boolean isPublic,
 boolean isObstacle,
 double x,
 double y,
 double z,
 double length,
 double depth,
 double depthR,
 double levelHeight,
 double rotation,
 PalletRackType type,
 PalletRackDirection direction,
 double aisleDepth,
 double aisleRDepth,
 double cellWidth,
 int nPositions,
 int nLevels,
 int nDeep,
 Paint fillColor,
 Color lineColor,
 int cellsBetweenLegs)
/** This method is internal and shouldn't be called by user.
it may be removed/renamed in future. It is public due to technical reasons.
Parameters:
owner -
drawMode -
isPublic -
x -
y -
z -
length -
depth -
depthR -
levelHeight -
rotation -
type -
direction - (for two-aisle racks only) the direction of contents flow
aisleDepth -
aisleRDepth -
cellWidth -
nPositions -
nLevels -
nDeep - the number of positions in the depth of each cell
fillColor -
lineColor -
cellsBetweenLegs - the number of cells between legs (drawn in 3D), or 0, for not to draw legs

Method Details

isObstacle

public boolean isObstacle()

setObstacle

public void setObstacle(boolean isObstacle)

postInitialize

public void postInitialize()
Description copied from interface: AggregatableAnimationElement
This method is internal and shouldn't be called by user.
it may be removed/renamed in future.
Specified by:
postInitialize in interface AggregatableAnimationElement

setType

public void setType(PalletRackType type)
Sets the type of this pallet rack
Parameters:
type - the type of this pallet rack

getType

public PalletRackType getType()
Returns the type of this pallet rack
Returns:
the type of this pallet rack

numberOfRows

public int numberOfRows()
Returns the number of rows (pallet racks).
To set this number, please use setType(PalletRackType)
Returns:
the number of rows (1 or 2)

setNumberOfPositions

public void setNumberOfPositions(int nPositions)
Sets the number of positions (cells) in one shelf. The total number of positions may be calculated by multiplying this number by number of deep positions and by number of levels and number of rows.
Parameters:
nPositions - the number of cells in one shelf

numberOfPositions

public int numberOfPositions()
Returns the number of positions (cells) in one shelf. The total number of positions may be calculated by multiplying this number by number of deep positions and by number of levels and by two, if this object contains two pallet racks.
Returns:
the number of cells in one shelf

setNumberOfLevels

public void setNumberOfLevels(int nLevels)
Sets the number of levels in this pallet rack
Parameters:
nLevels - the number of levels in this pallet rack

numberOfLevels

public int numberOfLevels()
Returns the number of levels in this pallet rack
Returns:
the number of levels in this pallet rack

numberOfDeepPositions

public int numberOfDeepPositions()
Returns the number of positions in the depth of each cell
Returns:
the number of positions in the depth of each cell

setNumberOfDeepPositions

public void setNumberOfDeepPositions(int nDeep)

setCellWidth

public void setCellWidth(double cellWidth)
Sets the width of cell
Parameters:
cellWidth - the width of cell

getCellWidth

public double getCellWidth()
Returns the width of cell
Returns:
the width of cell

getX

public double getX()

setX

public void setX(double x)

getY

public double getY()

setY

public void setY(double y)

getZ

public double getZ()

setZ

public void setZ(double z)

getLength

public double getLength()

setLength

public void setLength(double length)

getDepth

public double getDepth()

setDepth

public void setDepth(double depth)

getDepthRight

public double getDepthRight()

setDepthRight

public void setDepthRight(double depthR)

getAisleDepth

public double getAisleDepth()

setAisleDepth

public void setAisleDepth(double aisleDepth)

getAisleRightDepth

public double getAisleRightDepth()

setAisleRightDepth

public void setAisleRightDepth(double aisleRDepth)

getRotation

public double getRotation()

setRotation

public void setRotation(double rotation)

getLevelHeight

public double getLevelHeight()

setLevelHeight

public void setLevelHeight(double levelHeight)

capacity

public int capacity()
Returns the total number of cell positions (all the levels and all racks, if there are two racks), which is (1 or 2) * number of positions along row * number of deep positions * number of levels
Specified by:
capacity in interface PalletRackAccess<Agent>
Returns:
the total number of cells

randomPointInside

public Point randomPointInside(Random rng,
 Point out)
Description copied from interface: INetworkMarkupElement
Returns the randomly chosen point inside/along the given space markup element. This method utilises the given Random Number Generator.
Specified by:
randomPointInside in interface INetworkMarkupElement
Parameters:
rng - the random number generator.
out - output object to write to, may be null
Returns:
the randomly chosen point

getNearestPoint

public double getNearestPoint(double x,
 double y,
 Point out)
Description copied from class: NetworkMarkupElement
Calculates (using the output object) the point in this space markup element nearest to the given (x, y) point. Returns the square of distance to the point (in the XY-projection). All the calculations are performed in the horizontal projection (z-coordinates aren't used, as if all of the z coordinates were zero).
Specified by:
getNearestPoint in class NetworkMarkupElement
Parameters:
x - x coordinate of the point
y - y coordinate of the point
out - the output point to write result to. Note that output.z is left unchanged.
Returns:
the square of distance to the nearest point in the horizontal (XY) projection

getNearestPoint

public double getNearestPoint(double x,
 double y,
 double z,
 Point out)
Description copied from class: NetworkMarkupElement
Calculates (using the output object) the point in this space markup element nearest to the given (x, y, z) point. Returns the square of distance to the point.
Specified by:
getNearestPoint in class NetworkMarkupElement
Parameters:
x - x coordinate of the point
y - y coordinate of the point
z - z coordinate of the point
out - the output point to write result to.
Returns:
the square of distance to the nearest point

getPositionAtCell

public Position getPositionAtCell(int row,
 int position,
 int level,
 int deepPosition,
 double offset,
 double depth,
 boolean leftAisle,
 Position out)
Returns the position at the given cell
Specified by:
getPositionAtCell in interface PalletRackAccess<Agent>
Parameters:
row - the number of pallet rack (0 or 1). Used in two-row pallet racks (0 = left row, 1 = right row).
If there is only one pallet rack, this should be 0.
position - position in row (0, 1, ...)
level - level (0, 1, ...)
offset - offset along row edge
depth - in-cell depth (perpendicular to row edge)
out - the Position object to write to (may be null)
deepPosition - [if cells have depth] the index (0, 1, ..), counted from the aisle (or from the left aisle, if there are several aisles near this row)
leftAisle - [for 2-aisle pallet racks, needed for orientation calculation]: where the face of agent should be oriented: as it was put from the left aisle or from the right one
Returns:
the position at the given cell. Returned is the given output object (if was not null) or new Position with coordinates and rotations set.

getPositionAtCellEntry

public Position getPositionAtCellEntry(int row,
 int position,
 int level,
 boolean leftAisle,
 Position out)
Returns the position at the given cell
Specified by:
getPositionAtCellEntry in interface PalletRackAccess<Agent>
Parameters:
row - the number of pallet rack (0 or 1). Used in two-row pallet racks (0 = left row, 1 = right row).
If there is only one pallet rack, this should be 0.
position - position in row (0, 1, ...)
level - level (0, 1, ...)
offset - offset along row edge
depth - in-cell depth (perpendicular to row edge)
out - the Position object to write to (may be null)
Returns:
the position at the given cell. Returned is the given output object (if was not null) or new Position with coordinates and rotations set.

getPositionInAisle

public Position getPositionInAisle(int row,
 int position,
 boolean leftAisle,
 Position out)
Returns the position in the given aisle at the given cell
Specified by:
getPositionInAisle in interface PalletRackAccess<Agent>
Parameters:
row - the number of pallet rack (0 or 1). Used in two-row pallet racks (0 = left row, 1 = right row).
If there is only one pallet rack, this should be 0.
position - position in row (0, 1, ...)
out - the Position object to write to (may be null)
leftAisle - [for 2-aisle pallet racks, needed for orientation calculation]: where the face of agent should be oriented: as it was put from the left aisle or from the right one
Returns:
the position in the aisle at the given cell. Returned is the given output object (if was not null) or new Position with coordinates and rotations set.

setLineColor

public void setLineColor(Color lineColor)
Sets the line color of the markup element.
Parameters:
lineColor - the new line color, null = do not draw the markup element line

getLineColor

public Color getLineColor()
Returns the line color of the markup element, or null if markup element has no line color
Returns:
the line color of the markup element

setFillColor

public void setFillColor(Color fillColor)
Sets the fill color of the markup element.
Parameters:
fillColor - the new fill color, null = do not fill the markup element

setFillColor

public void setFillColor(Paint fillColor)
Sets the fill color (or Texture) of the markup element.
Parameters:
fillColor - the new fill color, null = do not fill the markup element

getFillColor

public Color getFillColor()
Returns the fill color of the markup element, or null if markup element has no fill color or has textured fill (in this case #getFillTexture() should be used instead)
Returns:
the fill color of the markup element

contains

public boolean contains(double px,
 double py)
Description copied from class: MarkupShape
Test if the shape contains the point with the given coordinates (relative to this shape's container, i.e. in the same system with the coordinates of this shape, x and y)
Specified by:
contains in interface INetworkMarkupElement
Specified by:
contains in class MarkupShape
Parameters:
px - the x coordinate relative to this shape's container
py - the y coordinate relative to this shape's container
Returns:
true if the shape contains the point with the given coordinates

setConnectedSystem_xjal

@AnyLogicInternalAPI
public void setConnectedSystem_xjal(PalletRackAccess<?> connectedSystem)

size

public int size()
Description copied from interface: PalletRackAccess
Returns the number of entities inside
Specified by:
size in interface PalletRackAccess<Agent>
Returns:
the number of entities inside

hasSpace

public boolean hasSpace()
Description copied from interface: PalletRackAccess
Returns true if there is enough space for at least one more agents
Specified by:
hasSpace in interface PalletRackAccess<Agent>
Returns:
true if there is enough space for at least one more agents

contains

public boolean contains(Agent entity)
Description copied from interface: PalletRackAccess
Returns true if the given agent is contained within this object
Specified by:
contains in interface PalletRackAccess<Agent>
Parameters:
entity - the agent
Returns:
true if the given agent is contained within this object

reserved

@AnyLogicInternalAPI
public int reserved()
Description copied from interface: PalletRackAccess
Returns the number of reserved cells in the pallet rack(s).
Specified by:
reserved in interface PalletRackAccess<Agent>
Returns:
the number of reserved cells in the pallet rack(s).

get

public Agent get(int row,
 int position,
 int level,
 int deepPosition)
Description copied from interface: PalletRackAccess
Returns the agent stored at the specified cell [row,position,level,deepPosition], or null if the cell is reserved or free.
Specified by:
get in interface PalletRackAccess<Agent>
Parameters:
row - the row (0, 1, ..)
position - the position in row (0, 1, ..)
level - the level (0 is the lowest)
deepPosition - [if cells have depth] the index (0, 1, ..), counted from the aisle (or from the left aisle, if there are several aisles near this row)
Returns:
the agent stored at the specified cell

getByIndex

public Agent getByIndex(int index)
Description copied from interface: PalletRackAccess
Returns the stored agent with a given index. The order of entities is internal and may change when entities are added or removed. If the index is greater than the number of entities-1, returns null.
Specified by:
getByIndex in interface PalletRackAccess<Agent>
Parameters:
index - the index
Returns:
agent by index or null

randomEntity

@Deprecated
public Agent randomEntity()
Deprecated.
please use randomAgent()

randomAgent

public Agent randomAgent()
Description copied from interface: PalletRackAccess
Returns a random agent in the rack system, or null if the rack system is empty.
Specified by:
randomAgent in interface PalletRackAccess<Agent>
Returns:
random agent

isFree

public boolean isFree(int row,
 int position,
 int level)
Description copied from interface: PalletRackAccess
Tests if a given cell [row,position,level] is free, i.e. neither occupied nor reserved.
Specified by:
isFree in interface PalletRackAccess<Agent>
Parameters:
row - the row (0, 1, ..)
position - the position in row (0, 1, ..)
level - the level (0 is the lowest)
Returns:
true if free

nFree

public int nFree(int row,
 int position,
 int level)
Description copied from interface: PalletRackAccess
Tests if a given cell [row,position,level] is free, i.e. neither occupied nor reserved and returns the number of free slots in the depth of the cell
Specified by:
nFree in interface PalletRackAccess<Agent>
Parameters:
row - the row (0, 1, ..)
position - the position in row (0, 1, ..)
level - the level (0 is the lowest)
Returns:
the number of free slots in the depth of the cell

getCellOf

public PalletRackLocation getCellOf(Agent entity)
Description copied from interface: PalletRackAccess
Returns the coordinates of a cell with a given agent [row,position,level], or null if the agent is not stored here.
Specified by:
getCellOf in interface PalletRackAccess<Agent>
Parameters:
entity - the agent
Returns:
[row,position,level], or null

getApproachDirection

public PalletRackApproachDirection getApproachDirection(Agent entity,
 int rowToSearch)
Description copied from interface: PalletRackAccess
Return the approach direction to the given agent or null if agent is unreachable (lies deep in the cell, behind other entities)
Specified by:
getApproachDirection in interface PalletRackAccess<Agent>
Parameters:
entity - the agent
rowToSearch - optional parameter - the row previously found by PalletRackAccess.getCellOf(Agent) (set to -1 if unknown)
Returns:
the approach direction

getFreeCell

public PalletRackLocation getFreeCell(boolean infront)
Description copied from interface: PalletRackAccess
Returns the array [row,position,level] with the coordinates of a free cell that is closest to either front of back of the rack system, depending on the parameter infront. If the rack system is full, returns null.
Specified by:
getFreeCell in interface PalletRackAccess<Agent>
Parameters:
infront - if true, the returned object will have the smallest available position
Returns:
the [row,position,level]

put

public void put(int row,
 int position,
 int level,
 boolean leftAisle,
 Agent entity)
Description copied from interface: PalletRackAccess
Puts the agent into the cell with the specified coordinates [row,position,level]. If the cell is occupied, signals error. Does not check if the cell is reserved.
Specified by:
put in interface PalletRackAccess<Agent>
Parameters:
row - the row (0, 1, ..)
position - the position in row (0, 1, ..)
level - the level (0 is the lowest)
leftAisle - [for 2-aisle pallet racks]: from which aisle the agent should be put to the cell: from the left or from the right one
entity - the agent

removeFromCell

public Agent removeFromCell(int row,
 int position,
 int level,
 boolean leftAisle)
Description copied from interface: PalletRackAccess
Removes the agent stored in a given cell [row,position,level] from the rack system and returns it.
Specified by:
removeFromCell in interface PalletRackAccess<Agent>
Parameters:
row - the row (0, 1, ..)
position - the position in row (0, 1, ..)
level - the level (0 is the lowest)
leftAisle - [for 2-aisle pallet racks]: from which aisle the agent should be removed: from the left or from the right one
Returns:
the removed agent

removeFromCell

public Agent removeFromCell(PalletRackLocation location,
 boolean leftAisle)
Description copied from interface: PalletRackAccess
Removes the agent stored in a given cell [row,position,level] from the rack system and returns it.
Specified by:
removeFromCell in interface PalletRackAccess<Agent>
Parameters:
location - the [row,position,level]
leftAisle - [for 2-aisle pallet racks]: from which aisle the agent should be removed: from the left or from the right one
Returns:
the removed agent

remove

public Agent remove(Agent entity)
Description copied from interface: PalletRackAccess
Removes a given agent from the rack system and returns it. If the agent is not stored here, returns null.
Specified by:
remove in interface PalletRackAccess<Agent>
Parameters:
entity - the agent to remove
Returns:
the agent if was removed, otherwise null

reserve

public void reserve(int row,
 int position,
 int level,
 boolean leftAisle)
Description copied from interface: PalletRackAccess
Marks a given cell [row,position,level] as reserved. The cell must be free.
Specified by:
reserve in interface PalletRackAccess<Agent>
Parameters:
row - the row (0, 1, ..)
position - the position in row (0, 1, ..)
level - the level (0 is the lowest)
leftAisle - [for 2-aisle pallet racks]: from which aisle the cell reserve should be placed

release

public void release(int row,
 int position,
 int level,
 boolean leftAisle)
Description copied from interface: PalletRackAccess
Discards a reservation of a given cell [row,position,level]. The cell must be reserved.
Specified by:
release in interface PalletRackAccess<Agent>
Parameters:
row - the row (0, 1, ..)
position - the position in row (0, 1, ..)
level - the level (0 is the lowest)
leftAisle - [for 2-aisle pallet racks]: from which aisle the cell reserve should be released

nReserved

public int nReserved(int row,
 int position,
 int level)
Description copied from interface: PalletRackAccess
Tests if a given cell [row,position,level] is reserved.
Specified by:
nReserved in interface PalletRackAccess<Agent>
Parameters:
row - the row (0, 1, ..)
position - the position in row (0, 1, ..)
level - the level (0 is the lowest)
Returns:
the number of reserved locations (may be > 1 for pallet racks with depth)

resetStats

public void resetStats()
Description copied from interface: PalletRackAccess
Resets the statistics collected for this object.
Specified by:
resetStats in interface PalletRackAccess<Agent>

updateSVGProperties

@AnyLogicInternalAPI
public SVGElement updateSVGProperties(List<SVGCommand> output,
 ShapeDrawMode drawMode,
 boolean publicOnly,
 SVGElement owner,
 SVGElement elbehind)
Description copied from interface: SVGElement
This method is internal and shouldn't be called by user.
it may be removed/renamed in future.
Updates SVG properties of the element that are then sent to the rendering client. If the element is not yet in the SVG scene, generates "C" command, if it is there, but some properties are out of date, generates "U" command. If SVG drawing of this element is not needed because of public only settings, or permanently not needed, or not supported yet, returns false and does nothing.
Specified by:
updateSVGProperties in interface SVGElement
Overrides:
updateSVGProperties in class AbstractMarkup
Parameters:
output - the list of commands to add to
drawMode - TODO
publicOnly - drawing context: if true, only shapes that are marked as public only are updated
owner - the SVG element that serves as a container for this element
elbehind - the SVG element behind this one, or null if none or if order is irrelevant
Returns:
the actual owner this element has been added to or null if element is not drawn (e.g. drawing of this element is not needed because of public only settings, permanently not needed or not supported - hence SVG id is not set). The actual owner may differ from the given owner when the svg element is added to a different place (e.g. GIS map).

resetSVGState

@AnyLogicInternalAPI
public void resetSVGState()
Description copied from interface: SVGElement
This method is internal and shouldn't be called by user.
it may be removed/renamed in future.
Specified by:
resetSVGState in interface SVGElement
Overrides:
resetSVGState in class AbstractMarkup

findSVGElement

@AnyLogicInternalAPI
public SVGElement findSVGElement(long svgId)
Description copied from interface: SVGElement
This method is internal and shouldn't be called by user.
it may be removed/renamed in future.
Specified by:
findSVGElement in interface SVGElement
Overrides:
findSVGElement in class AbstractMarkup

getBoundingRectangle

@AnyLogicInternalAPI
public BoundingRectangle getBoundingRectangle()

updateColorMap

@AnyLogicInternalAPI
public void updateColorMap(int row,
 int position,
 int level,
 int deepPosition,
 boolean put)
This method is internal and shouldn't be called by user.
it may be removed/renamed in future.