On Oct 1, 2015, at 3:37 AM, Christian Meyer <[log in to unmask]> wrote:
> Good addition. It would be nice if Double2D / Int2D are supported as
> well, representing vectors.
Oh, duh, of course I should have included that. Well, Double2D anyway for sure. Probably could have done Point2D.Double etc. too.
> Those classes could just implement Oriented
> and Scaled interfaces to make it work. This would be great for
> visualizing flow fields.
The problem here is that Oriented2D and Scaled2D are actually interfaces in the *portrayal* package, and Double2D and Int2D are in sim.util (intended to be separable from the rest of MASON). I'll just special-case them in VectorPortrayal2D.
> Drawing them directly without calculating angle and length first is way
> faster though, but this does not work together with OrientedPortrayal2D
> which needs the orientation. I guess I need to stick to my custom
> portrayal for the flow fields.
Well, there's always atan. :-) But yes, speed will be an issue. I could special-case a vector shape that's all horizontal and vertical lines to bypass all the affine transformations, but you'd need to give me an idea of what shape I should use. What are you using?