public void write(int tagID, CGMWriter cgm) throws IOException {
   cgm.setEdgeWidthSpecificationMode(mode);
   cgm.print("EDGEWIDTHMODE ");
   switch (mode) {
     default:
     case ABSOLUTE:
       cgm.print("ABS");
       break;
     case SCALED:
       cgm.print("SCALED");
       break;
     case FRACTIONAL:
       cgm.print("FRACTIONAL");
       break;
     case MM:
       cgm.print("METRIC");
       break;
   }
 }
 public void write(int tagID, CGMWriter cgm) throws IOException {
   cgm.print("RECT ");
   cgm.writePoint(new Point2D.Double(rectangle.getMinX(), rectangle.getMinY()));
   cgm.print(", ");
   cgm.writePoint(new Point2D.Double(rectangle.getMaxX(), rectangle.getMaxY()));
 }
 public void write(int tagID, CGMWriter cgm) throws IOException {
   cgm.println("POLYGON");
   writePointList(cgm);
 }
 public void write(int tagID, CGMWriter cgm) throws IOException {
   cgm.outdent();
   cgm.print("ENDFIGURE");
 }
 public void write(int tagID, CGMWriter cgm) throws IOException {
   cgm.print("CONNEDGE");
 }
 public void write(int tagID, CGMWriter cgm) throws IOException {
   cgm.print("ALTCHARSETINDEX ");
   cgm.writeInteger(index);
 }