Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## sim.portrayal.simple
Class AdjustablePortrayal2D

    java.lang.Object
      sim.portrayal.SimplePortrayal2D
          sim.portrayal.simple.AdjustablePortrayal2D

All Implemented Interfaces:
  java.io.Serializable, Portrayal, Portrayal2D

    public class AdjustablePortrayal2D

extends SimplePortrayal2D

A wrapper for other Portrayal2Ds which makes it possible to do any or all of the following with the mouse:

- View the orientation of an object

- Rotate the object to a new orientation

- Change the "scale" (size perhaps) of the object

This portrayal is used simply by wrapping around another portrayal or around null (if the object portrays itself). When the object is selected, an "adjustment ring" will appear overlaid on the object. The ring shows the current orientation of the object. If you drag the ring, you can change the orientation and scale of the object with your mouse.

To simply view orientation with the ring, the object must implement the Oriented2D interface.

To rotate the object, the object must implement the Orientable2D interface (which extends the Oriented2D interface).

To change the scale of the object, the object must implement the Scalable2D interface.

IMPORTANT NOTE: If using AdjustablePortrayal2D in conjunction with MovablePortrayal2D, always wrap the MovablePortrayal2D inside the AdjustablePortrayal2D, not the other way around.

See Also:
  Serialized Form

Field Summary
`SimplePortrayal2D` | `child`
`static java.awt.geom.Ellipse2D` | `circle`
`static double` | `CIRCLE_RADIUS`
`static java.awt.geom.Ellipse2D` | `knob`
`static double` | `KNOB_RADIUS`
`static java.awt.Paint` | `LOWER_PAINT`
`static java.awt.Stroke` | `LOWER_STROKE`
`static double` | `SLOP`
`static java.awt.Paint` | `UPPER_PAINT`
`static java.awt.Stroke` | `UPPER_STROKE`

Fields inherited from class sim.portrayal.SimplePortrayal2D
`TYPE_HIT_OBJECT, TYPE_SELECTED_OBJECT`

Constructor Summary
`AdjustablePortrayal2D(SimplePortrayal2D child)`

Method Summary
`void` | `draw(java.lang.Object object, java.awt.Graphics2D graphics, DrawInfo2D info)` Draw a the given object with an origin at (info.draw.x, info.draw.y), and with the coordinate system scaled by so that 1 unit is in the x and y directions are equal to info.draw.width and info.draw.height respectively in pixels.
`SimplePortrayal2D` | `getChild(java.lang.Object object)`
`Inspector` | `getInspector(LocationWrapper wrapper, GUIState state)` Provide an inspector for an object.
`java.lang.String` | `getName(LocationWrapper wrapper)` Returns a static, one-line name for the given object that is useful for a human to distinguish it from other objects.
`boolean` | `handleMouseEvent(GUIState guistate, Manipulating2D manipulating, LocationWrapper wrapper, java.awt.event.MouseEvent event, DrawInfo2D range, int type)` Optionally handles a mouse event.
`boolean` | `hitObject(java.lang.Object object, DrawInfo2D range)` Return true if the given object, when drawn, intersects with a provided rectangle, for hit testing purposes.
`boolean` | `setSelected(LocationWrapper wrapper, boolean selected)` Change the portrayal state to reflect the fact that you've been selected or not selected.

Methods inherited from class sim.portrayal.SimplePortrayal2D
`getStatus`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### CIRCLE_RADIUS

    public static final double CIRCLE_RADIUS

See Also:
  Constant Field Values

### KNOB_RADIUS

    public static final double KNOB_RADIUS

See Also:
  Constant Field Values

### SLOP

    public static final double SLOP

See Also:
  Constant Field Values

### LOWER_PAINT

    public static final java.awt.Paint LOWER_PAINT

### LOWER_STROKE

    public static final java.awt.Stroke LOWER_STROKE

### UPPER_PAINT

    public static final java.awt.Paint UPPER_PAINT

### UPPER_STROKE

    public static final java.awt.Stroke UPPER_STROKE

### circle

    public static final java.awt.geom.Ellipse2D circle

### knob

    public static final java.awt.geom.Ellipse2D knob

### child

    public SimplePortrayal2D child

Constructor Detail

### AdjustablePortrayal2D

    public AdjustablePortrayal2D(SimplePortrayal2D child)

Method Detail

### getChild

    public SimplePortrayal2D getChild(java.lang.Object object)

### draw

    public void draw(java.lang.Object object,
                     java.awt.Graphics2D graphics,
                     DrawInfo2D info)

  Description copied from interface: `Portrayal2D`
  Draw a the given object with an origin at (info.draw.x, info.draw.y), and with the coordinate system scaled by so that 1 unit is in the x and y directions are equal to info.draw.width and info.draw.height respectively in pixels. The rectangle given by info.clip specifies the only region in which it is necessary to draw. If info.precise is true, try to draw using real-valued high-resolution drawing rather than faster integer drawing. It is possible that object is null. The location of the object in the field may (and may not) be stored in info.location. The form of that location varies depending on the kind of field used.

  Specified by:
    `draw` in interface `Portrayal2D`
  Overrides:
    `draw` in class `SimplePortrayal2D`

### handleMouseEvent

    public boolean handleMouseEvent(GUIState guistate,
                                    Manipulating2D manipulating,
                                    LocationWrapper wrapper,
                                    java.awt.event.MouseEvent event,
                                    DrawInfo2D range,
                                    int type)

  Description copied from class: `SimplePortrayal2D`
  Optionally handles a mouse event. At present, events are sent to SimplePortrayal2Ds representing objects which have been either selected or are presently hit by the event coordinates. The wrapper provides the field portrayal, object location, and object. Also provided are the display, event, the DrawInfo2D for the field portrayal, and the type of mouse event situation (either because the object was SELECTED or because it was HIT).

  To indicate that the event was handled, return true. The default blank implementation of this method simply returns false. Events are first sent to portrayals selected objects, until one of them handles the event. If none handled the event, then events are sent to portrayals of objects hit by the event, until one of *them* handles the event. If still no one has handled the event, then the Display2D will route the event to built-in mechanisms such selecting the object or inspecting it.

  If you're modifying or querying the model as a result of this event, be sure to lock on guistate.state.schedule before you do so.

  Overrides:
    `handleMouseEvent` in class `SimplePortrayal2D`

### hitObject

    public boolean hitObject(java.lang.Object object,
                             DrawInfo2D range)

  Description copied from class: `SimplePortrayal2D`
  Return true if the given object, when drawn, intersects with a provided rectangle, for hit testing purposes. The object is drawn with an origin at (info.draw.x, info.draw.y), and with the coordinate system scaled by so that 1 unit is in the x and y directions are equal to info.draw.width and info.draw.height respectively in pixels. The rectangle given by info.clip specifies the region to do hit testing in; often this region is actually of 0 width or height, which might represent a single point. It is possible that object is null. The location of the object in the field may (and may not) be stored in info.location. The form of that location varies depending on the kind of field used.

  Overrides:
    `hitObject` in class `SimplePortrayal2D`

### setSelected

    public boolean setSelected(LocationWrapper wrapper,
                               boolean selected)

  Description copied from interface: `Portrayal`
  Change the portrayal state to reflect the fact that you've been selected or not selected. Always return true, except if you've received a setSelected(true) and in fact do not wish to be selectable, in which case return false in that sole situation.

  Specified by:
    `setSelected` in interface `Portrayal`
  Overrides:
    `setSelected` in class `SimplePortrayal2D`

### getInspector

    public Inspector getInspector(LocationWrapper wrapper,
                                  GUIState state)

  Description copied from interface: `Portrayal`
  Provide an inspector for an object.

  Specified by:
    `getInspector` in interface `Portrayal`
  Overrides:
    `getInspector` in class `SimplePortrayal2D`

### getName

    public java.lang.String getName(LocationWrapper wrapper)

  Description copied from interface: `Portrayal`
  Returns a static, one-line name for the given object that is useful for a human to distinguish it from other objects. A simple default would be just to return "" + object.

  Specified by:
    `getName` in interface `Portrayal`
  Overrides:
    `getName` in class `SimplePortrayal2D`

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD