// Copyright 2001, FreeHEP. package org.freehep.graphicsio.cgm; import java.awt.geom.Point2D; import java.io.IOException; /** * PolygonSet TAG. * * @author Mark Donszelmann * @author Charles Loomis * @version $Id: PolygonSet.java 8584 2006-08-10 23:06:37Z duns $ */ public class PolygonSet extends CGMTag { public static final int INVISIBLE = 0; public static final int VISIBLE = 1; public static final int CLOSE_INVISIBLE = 2; public static final int CLOSE_VISIBLE = 3; private Point2D[] p; private int[] flags; public PolygonSet() { super(4, 8, 1); } public PolygonSet(Point2D[] p, int[] flags) { this(); this.p = p; this.flags = flags; } public void write(int tagID, CGMOutputStream cgm) throws IOException { for (int i = 0; i < p.length; i++) { cgm.writePoint(p[i]); cgm.writeEnumerate(flags[i]); } } public void write(int tagID, CGMWriter cgm) throws IOException { cgm.println("POLYGONSET"); for (int i = 0; i < p.length; i++) { cgm.writePoint(p[i]); cgm.print(", "); switch (flags[i]) { default: case INVISIBLE: cgm.print("INVIS"); break; case VISIBLE: cgm.print("VIS"); break; case CLOSE_INVISIBLE: cgm.print("CLOSEINVIS"); break; case CLOSE_VISIBLE: cgm.print("CLOSEVIS"); break; } cgm.println(); } } }