All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.geolatte.geom.crs.CartesianCoordinateSystem2DM Maven / Gradle / Ivy

Go to download

This geoLatte-geom library offers a geometry model that conforms to the OGC Simple Features for SQL specification.

There is a newer version: 1.9.1
Show newest version
package org.geolatte.geom.crs;

import org.geolatte.geom.C2DM;
import org.geolatte.geom.C3DM;

import java.util.Arrays;
import java.util.List;

/**
 * A Two-dimensional Cartesian Coordinate system extended with a {@code LinearCoordinateSystemAxis}
 * 

* Created by Karel Maesen, Geovise BVBA on 28/11/14. */ public class CartesianCoordinateSystem2DM extends CoordinateSystem { private final static List REQUIRED_AXIS_NORMAL_ORDER = Arrays.asList(0, 1, 3); public CartesianCoordinateSystem2DM(StraightLineAxis firstAxis, StraightLineAxis secondAxis, MeasureStraightLineAxis thirdAxis) { super(firstAxis, secondAxis, thirdAxis); checkAxes(); } private void checkAxes() { List order = getAxisNormalOrder(); if (!order.containsAll(REQUIRED_AXIS_NORMAL_ORDER)) { throw new IllegalArgumentException("Require order 0, 1 and 3 axes"); } } @Override public Class getPositionClass() { return C2DM.class; } @Override public CoordinateSystem merge(OneDimensionCoordinateSystem coordinateSystem) { CoordinateSystemAxis axis = coordinateSystem.getAxis(); return extend(axis); } @Override public CoordinateSystem extend(CoordinateSystemAxis axis) { if (axis instanceof VerticalStraightLineAxis) { return new CartesianCoordinateSystem3DM((StraightLineAxis) getAxis(0), (StraightLineAxis) getAxis(1), (VerticalStraightLineAxis) axis, (MeasureStraightLineAxis) getAxis(1)); } throw new UnsupportedOperationException(); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy