public void fill_area(PlaPointFloat[][] p_point_lists,Graphics p_g,Color p_color,double p_translucency_factor){
  if (p_color == null)   return;
  GeneralPath draw_path=new GeneralPath(GeneralPath.WIND_EVEN_ODD);
  for (int jndex=0; jndex < p_point_lists.length; ++jndex) {
    Polygon draw_polygon=new Polygon();
    PlaPointFloat[] curr_point_list=p_point_lists[jndex];
    for (int index=0; index < curr_point_list.length; index++) {
      Point2D curr_corner=coordinate_transform.board_to_screen(curr_point_list[index]);
      draw_polygon.addPoint((int)Math.round(curr_corner.getX()),(int)Math.round(curr_corner.getY()));
    }
    draw_path.append(draw_polygon,false);
  }
  Graphics2D g2=(Graphics2D)p_g;
  g2.setColor(p_color);
  set_translucency(g2,p_translucency_factor);
  g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
  g2.fill(draw_path);
}

public void fill_area ( PlaPointFloat [ ] [ ] p_point_lists , Graphics p_g , Color p_color , double p_translucency_factor ) { if ( p_color == null ) return ; GeneralPath draw_path = new GeneralPath ( GeneralPath . WIND_EVEN_ODD ) ; for ( int jndex = 0 ; jndex < p_point_lists . length ; ++ jndex ) { Polygon draw_polygon = new Polygon ( ) ; PlaPointFloat [ ] curr_point_list = p_point_lists [ jndex ] ; for ( int index = 0 ; index < curr_point_list . length ; index ++ ) { Point2D curr_corner = coordinate_transform . board_to_screen ( curr_point_list [ index ] ) ; draw_polygon . addPoint ( ( int ) Math . round ( curr_corner . getX ( ) ) , ( int ) Math . round ( curr_corner . getY ( ) ) ) ; } draw_path . append ( draw_polygon , false ) ; } Graphics2D g2 = ( Graphics2D ) p_g ; g2 . setColor ( p_color ) ; set_translucency ( g2 , p_translucency_factor ) ; g2 . setRenderingHint ( RenderingHints . KEY_ANTIALIASING , RenderingHints . VALUE_ANTIALIAS_ON ) ; g2 . fill ( draw_path ) ; }
fill the interiour of a list of polygons . used for example with an area consisting of a border polygon and some holes .
