private void paintRule( boolean isPoint, double maxSize, LegendOptions opts, Geometry geom ) {
LinkedList<Symbolizer<?>> syms = new LinkedList<Symbolizer<?>>();
rule.evaluate( syms, null, null );
Iterator<Styling> bases = stylings.iterator();
for ( Symbolizer<?> s : syms ) {
Styling styling = bases.next();
Pair<?, LinkedList<Geometry>> evald = s.evaluate( null, null );
if ( evald.second.isEmpty() ) {
if ( styling instanceof PointStyling && isPoint ) {
PointStyling ps = ( (PointStyling) styling ).copy();
ps.uom = Metre;
ps.graphic.size = ps.graphic.size / maxSize * min( opts.baseWidth, opts.baseHeight );
styling = ps;
}
renderer.render( styling, geom );
} else {
for ( Geometry gm : evald.second ) {
if ( gm == null ) {
gm = geom;
}
renderer.render( (Styling) evald.first, gm );
}
}
}
}