org.opengis.geometry.coordinate.Placement Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of gt-opengis Show documentation
Show all versions of gt-opengis Show documentation
Standard interfaces implemented throughout the library.
The newest version!
/*
* GeoTools - The Open Source Java GIS Toolkit
* http://geotools.org
*
* (C) 2011, Open Source Geospatial Foundation (OSGeo)
* (C) 2003-2005, Open Geospatial Consortium Inc.
*
* All Rights Reserved. http://www.opengis.org/legal/
*/
package org.opengis.geometry.coordinate;
import static org.opengis.annotation.Obligation.*;
import static org.opengis.annotation.Specification.*;
import org.opengis.annotation.UML;
/**
* Takes a standard geometric construction and places it in geographic space. This interface defines
* a transformation from a constructive parameter space to the coordinate space of the coordinate
* reference system being used. Parameter spaces in formulae are given as (u,
* v) in 2D and (u, v, w) in 3D. Coordinate reference
* systems positions are given in formulae by either (x, y) in 2D, or
* (x, y, z) in 3D.
*
* @version ISO 19107
* @author Martin Desruisseaux (IRD)
* @since GeoAPI 2.0
*/
@UML(identifier = "GM_Placement", specification = ISO_19107)
public interface Placement {
/** Return the dimension of the input parameter space. */
@UML(identifier = "inDimension", obligation = MANDATORY, specification = ISO_19107)
int getInDimension();
/**
* Return the dimension of the output coordinate reference system. Normally, {@code
* outDimension} (the dimension of the coordinate reference system) is larger than {@code
* inDimension}. If this is not the case, the transformation is probably singular, and may be
* replaceable by a simpler one from a smaller dimension parameter space.
*/
@UML(identifier = "outDimension", obligation = MANDATORY, specification = ISO_19107)
int getOutDimension();
/**
* Maps the parameter coordinate points to the coordinate points in the output Cartesian space.
*
* @param in Input coordinate points. The length of this vector must be equals to {@link
* #getInDimension inDimension}.
* @return The output coordinate points. The length of this vector is equals to {@link
* #getOutDimension outDimension}.
*/
@UML(identifier = "transform", obligation = MANDATORY, specification = ISO_19107)
double[] transform(double[] in);
}