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
Email: [log in to unmask]; Phone: (205) 996-7483;  Fax: (205) 975-6610
Mail: HB 414A, 900 13th Street South, Birmingham, AL 35294-1260;  Office: HB 418