sventon subversion web client - http://www.sventon.org
[show recent changes]
 
  Help
HEAD
Rev: 10305 - svn://svn.freehep.org/svn / freehep / branches / vectorgraphics-emfplus / freehep-graphicsio-emf / src / main / java / org / freehep / graphicsio / emf / gdiplus / FillEllipse.java
Show File - FillEllipse.java  [show properties]
Search for Help
spinner
// Copyright 2006, FreeHEP.
package org.freehep.graphicsio.emf.gdiplus;
import java.awt.Color;
import java.io.IOException;
import org.freehep.graphicsio.emf.EMFInputStream;
import org.freehep.graphicsio.emf.EMFOutputStream;
10  /**
11   * The FillEllipse metafile record represents a call to Graphics.FillEllipse, 
12   * which fills the interior of an ellipse.
13   * 
14   * @author Mark Donszelmann
15   * @version $Id$
16   */
17  public class FillEllipse extends EMFPlusTag {
18      
19      private int brushIndex;
20      private Color brushColor;
21      private float x, y, w, h;
22      
23      public FillEllipse() {
24          super(14, 1);
25      }
26 
27      public FillEllipse(int penIndex, int brushIndex, float x, float y, float w, float h) {
28          this();
29          flags = penIndex;
30          this.brushIndex = brushIndex;
31          this.= x;
32          this.= y;
33          this.= w;
34          this.= h;
35      }
36          
37      public EMFPlusTag read(int tagID, int flags, EMFInputStream emf, int len)
38              throws IOException {
39          FillEllipse tag = new FillEllipse();
40          tag.flags = flags;
41          if ((flags & 0x8000) > 0) {
42              tag.brushColor = emf.readCOLOR();
43          } else {
44              tag.brushIndex = emf.readUINT();
45          }
46          if ((flags & 0x4000) > 0) {
47              tag.= emf.readWORD();
48              tag.= emf.readWORD();
49              tag.= emf.readWORD();
50              tag.= emf.readWORD();
51          } else {
52              tag.= emf.readFLOAT();
53              tag.= emf.readFLOAT();
54              tag.= emf.readFLOAT();
55              tag.= emf.readFLOAT();
56          }
57          return tag;
58      }
59 
60      public void write(int tagID, int flags, EMFOutputStream emf) throws IOException {
61          // FIXME No Provision for 16 bit integer values.
62          emf.writeUINT(brushIndex);
63          emf.writeFLOAT(x);
64          emf.writeFLOAT(y);
65          emf.writeFLOAT(w);
66          emf.writeFLOAT(h);
67      }
68      
69      public String toString() {
70          StringBuffer sb = new StringBuffer(super.toString());
71          sb.append("\n  rect: ("+x+", "+y+", "+w+", "+h+")");
72          sb.append("\n  ");
73          sb.append(brushColor != null ? "brushColor: "+brushColor : "brushIndex: "+brushIndex);
74          return sb.toString();
75      }
76  }


feed icon

sventon 2.5.1