Mark Coletti wrote:
> I have Valuable objects stored in a SparseGrid2D object. These
> objects' doubleValue() members return values in [0,1]. I would like
> to use a ColorMap similarly as one would with a
> FastObjectGridPortrayal2D to render these SparseGrid2D objects
> accordingly. After RTFM'ing I don't see a nice, clean way to do this.
> The best I can do is to implement a draw() function, which seems like
> overkill. Surely there is a quick an easy way to do this in MASON?
There SHOULD be a nice way to do rectangles cleanly -- ValuePortryal2D.
But that only works in limited circumstances and I need to make the
class much more useful.
In the meantime, here's how to do it:
Override the draw() method of your simple portrayal like this:
public void draw(Object object, Graphics2D graphics, DrawInfo2D info)
{
paint = myColorMap.getColor(((Valuable)object).getValue());
super.draw(object, graphics, info);
}
Your map would either be stored an instance variable in a custom
subclass of a simple portrayal, or you could do it as a closure, like this:
final SimpleColorMap myColorMap = new SimpleColorMap(....);
RectanglePortrayal2D myportrayal = new RectanglePortrayal2D()
{
public void draw(Object object,
Graphics2D graphics, DrawInfo2D info)
{
paint = myColorMap.getColor(
((Valuable)object).getValue());
super.draw(object, graphics, info);
}
};
Sean
|