package iso.primitive; import java.util.ArrayList; import org.geotools.geometry.iso.FeatGeomFactoryImpl; import org.geotools.geometry.iso.coordinate.CoordinateFactoryImpl; import org.geotools.geometry.iso.coordinate.PositionImpl; import org.geotools.geometry.iso.primitive.CurveImpl; import org.geotools.geometry.iso.primitive.PrimitiveFactoryImpl; import org.geotools.geometry.iso.primitive.RingImpl; import org.opengis.spatialschema.geometry.geometry.Position; import org.opengis.spatialschema.geometry.primitive.CurveSegment; import org.opengis.spatialschema.geometry.primitive.OrientableCurve; import GeometryVisualization.PaintGMObject; public class DisplayCurve { /** * @param args */ public static void main(String[] args) { FeatGeomFactoryImpl tGeomFactory = FeatGeomFactoryImpl.getDefault2D(); //this._testTriangle1(tGeomFactory); _testRing1(tGeomFactory); } private static void _testRing1(FeatGeomFactoryImpl aGeomFactory) { CoordinateFactoryImpl tCoordFactory = aGeomFactory.getCoordinateFactory(); PrimitiveFactoryImpl tPrimFactory = aGeomFactory.getPrimitiveFactory(); /* Defining Positions for LineStrings */ ArrayList line1 = new ArrayList(); line1.add(new PositionImpl(tCoordFactory.createDirectPosition(new double[]{50, 20}))); line1.add(new PositionImpl(tCoordFactory.createDirectPosition(new double[]{30, 30}))); line1.add(new PositionImpl(tCoordFactory.createDirectPosition(new double[]{20, 50}))); line1.add(new PositionImpl(tCoordFactory.createDirectPosition(new double[]{20, 70}))); ArrayList line2 = new ArrayList(); line2.add(new PositionImpl(tCoordFactory.createDirectPosition(new double[]{20, 70}))); line2.add(new PositionImpl(tCoordFactory.createDirectPosition(new double[]{40, 80}))); line2.add(new PositionImpl(tCoordFactory.createDirectPosition(new double[]{70, 80}))); ArrayList line3 = new ArrayList(); line3.add(new PositionImpl(tCoordFactory.createDirectPosition(new double[]{70, 80}))); line3.add(new PositionImpl(tCoordFactory.createDirectPosition(new double[]{90, 70}))); line3.add(new PositionImpl(tCoordFactory.createDirectPosition(new double[]{100, 60}))); line3.add(new PositionImpl(tCoordFactory.createDirectPosition(new double[]{100, 40}))); ArrayList line4 = new ArrayList(); line4.add(new PositionImpl(tCoordFactory.createDirectPosition(new double[]{100, 40}))); line4.add(new PositionImpl(tCoordFactory.createDirectPosition(new double[]{80, 30}))); line4.add(new PositionImpl(tCoordFactory.createDirectPosition(new double[]{50, 20}))); /* Setting up Array of these LineStrings */ ArrayList tLineList1 = new ArrayList(); tLineList1.add(tCoordFactory.createLineString(line1)); tLineList1.add(tCoordFactory.createLineString(line2)); ArrayList tLineList2 = new ArrayList(); tLineList2.add(tCoordFactory.createLineString(line3)); tLineList2.add(tCoordFactory.createLineString(line4)); /* Build Curve */ CurveImpl curve1 = tPrimFactory.createCurve(tLineList1); CurveImpl curve2 = tPrimFactory.createCurve(tLineList2); /* Build Ring */ ArrayList curveList = new ArrayList(); curveList.add(curve1); curveList.add(curve2); RingImpl ring1 = tPrimFactory.createRing(curveList); System.out.println(ring1); System.out.println(ring1.getEnvelope()); PaintGMObject.paint(curve1); } }