package org.geotools.data.dxf.entities; import org.geotools.data.dxf.parser.DXFLineNumberReader; import java.io.IOException; import org.geotools.data.GeometryType; import org.geotools.data.dxf.parser.DXFUnivers; import org.geotools.data.dxf.header.DXFLayer; import org.geotools.data.dxf.header.DXFLineType; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; public class DXFTrace extends DXFSolid { private static final Log log = LogFactory.getLog(DXFTrace.class); public DXFTrace(DXFTrace newTrace) { this(new DXFPoint(newTrace._p1._point.x, newTrace._p1._point.y, newTrace.getColor(), null, 0, newTrace.getThickness()), new DXFPoint(newTrace._p2._point.x, newTrace._p2._point.y, newTrace.getColor(), null, 0, newTrace.getThickness()), new DXFPoint(newTrace._p3._point.x, newTrace._p3._point.y, newTrace.getColor(), null, 0, newTrace.getThickness()), new DXFPoint(newTrace._p4._point.x, newTrace._p4._point.y, newTrace.getColor(), null, 0, newTrace.getThickness()), newTrace.getThickness(), newTrace.getColor(), newTrace.getRefLayer(), 0, newTrace.getLineType()); setType(newTrace.getType()); setStartingLineNumber(newTrace.getStartingLineNumber()); setUnivers(newTrace.getUnivers()); } public DXFTrace(DXFPoint p1, DXFPoint p2, DXFPoint p3, DXFPoint p4, double thickness, int c, DXFLayer l, int visibility, DXFLineType lineType) { super(p1, p2, p3, p4, thickness, c, l, visibility, lineType); setName("DXFTrace"); } public static DXFEntity read(DXFLineNumberReader br, DXFUnivers univers) throws IOException { int sln = br.getLineNumber(); log.debug(">>Enter at line: " + sln); int visibility = 0; DXFSolid s = (DXFSolid) DXFSolid.read(br, univers); if (!s.isVisible()) { visibility = 1; } DXFTrace e = new DXFTrace(s._p1, s._p2, s._p3, s._p4, s.getThickness(), s.getColor(), s.getRefLayer(), visibility, s.getLineType()); e.setType(GeometryType.UNSUPPORTED); e.setStartingLineNumber(sln); e.setUnivers(univers); log.debug(e.toString()); return e; } public String toString() { StringBuffer s = new StringBuffer(); s.append("DXFTrace ["); s.append(": "); s.append(", "); s.append(": "); s.append(", "); s.append(": "); s.append(", "); s.append(": "); s.append(", "); s.append(": "); s.append(", "); s.append(": "); s.append(", "); s.append(": "); s.append(", "); s.append(": "); s.append(", "); s.append(": "); s.append(", "); s.append("]"); return s.toString(); } @Override public DXFEntity translate(double x, double y) { _p1._point.x += x; _p1._point.y += y; _p2._point.x += x; _p2._point.y += y; _p3._point.x += x; _p3._point.y += y; _p4._point.x += x; _p4._point.y += y; return this; } }