|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectsim.portrayal.FieldPortrayal
sim.portrayal.FieldPortrayal2D
Superclass of all Field Portrayals in 2D. Implements default versions of the necessary methods, which you should feel free to override (especially portray, hit, and draw!).
The default versions of hitObjects and draw call a protected but empty method called hitOrDraw. It's very common that a field's hitObjects and draw methods will be identical save for a single line which calls hitObjects or draw on an underlying SimplePortrayal. So most fields unify both methods into this single method and unify the line as something like this:
if (graphics == null) { if (portrayal.hitObject(portrayedObject, newinfo)) putInHere.add(getWrapper(portrayedObject, portrayedObjectLocation)); } else portrayal.draw(portrayedObject, graphics, newinfo);
...where getWrapper(...) returns a LocationWrapper appropriate to the Field.
Nested Class Summary |
Nested classes inherited from class sim.portrayal.FieldPortrayal |
FieldPortrayal.CustomInspector |
Field Summary |
Fields inherited from class sim.portrayal.FieldPortrayal |
classPortrayals, portrayalForAll, portrayalForNull, portrayalForRemainder, portrayals |
Constructor Summary | |
FieldPortrayal2D()
|
Method Summary | |
void |
draw(java.lang.Object object,
java.awt.Graphics2D graphics,
DrawInfo2D info)
Draws the field with its origin at [info.draw.x,info.draw.y], relative to the scaled coordinate system defined by [info.draw.width,info.draw.height]. |
void |
getSelectedObjects(Bag putInHere)
Adds to the Bag LocationWrappers of all selected objects. |
void |
hitObjects(DrawInfo2D range,
Bag putInHere)
Adds to the provided Bag LocationWrappers for any objects which overlap the provided hit range. |
protected void |
hitOrDraw(java.awt.Graphics2D graphics,
DrawInfo2D info,
Bag putInHere)
Instead of overriding the draw and hitObjects methods, you can optionally override this method to provide both the draw(...) and hitObjects(...) functionality in a single method, as it's common that these two methods have nearly identical code. |
void |
move(Bag locationWrappers,
java.awt.geom.Dimension2D distance)
Moves the Bag of LocationWrappers by the provided amount. |
void |
setSelected(Bag locationWrappers,
boolean selected)
Selects or deselects all of the provided objects. |
Methods inherited from class sim.portrayal.FieldPortrayal |
getDefaultNullPortrayal, getDefaultPortrayal, getField, getInspector, getName, getPortrayalForAll, getPortrayalForNull, getPortrayalForObject, getPortrayalForRemainder, setField, setPortrayalForAll, setPortrayalForClass, setPortrayalForNull, setPortrayalForObject, setPortrayalForRemainder, setSelected |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface sim.portrayal.Portrayal |
getInspector, getName, setSelected |
Constructor Detail |
public FieldPortrayal2D()
Method Detail |
public void draw(java.lang.Object object, java.awt.Graphics2D graphics, DrawInfo2D info)
draw
in interface Portrayal2D
public void hitObjects(DrawInfo2D range, Bag putInHere)
protected void hitOrDraw(java.awt.Graphics2D graphics, DrawInfo2D info, Bag putInHere)
public void getSelectedObjects(Bag putInHere)
public void setSelected(Bag locationWrappers, boolean selected)
public void move(Bag locationWrappers, java.awt.geom.Dimension2D distance)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |