Not sure if maybe I’m missing something, but thought I’d ask. OrientedPortrayal2D seems unusual in that it has no methods for controlling its intended variation, i.e. its orientation. Instead one makes
the agent implement Oriented2D. By contrast if you want the color of a portrayal to reflect the state of the agent, for example, you can override a method in the portrayal class and set the color based on the state of the agent. Then the agent doesn’t have
have any features that reflect what’s going on in the UI. Maybe there’s a way to control OrientedPortrayal2D that I’m not seeing, though. Requiring that the agent implement Oriented2D seems like a small violation of the MVC model, but I suppose it’s not
that different from defining bean methods and other tricks (e.g. implementing Propertied) that one can use to allow Mason to provide object inspectors with almost no work on the modeler’s part.
Marshall Abrams, Associate Professor
Department of Philosophy, University of Alabama at Birmingham
Mail: HB 414A, 900 13th Street South, Birmingham, AL 35294-1260; Office: HB 418