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

org.opengis.geometry.coordinate.AffinePlacement Maven / Gradle / Ivy

There is a newer version: 24.2-oss84-1
Show 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;

/**
 * A placement defined by linear transformation from the parameter space to the target coordinate
 * space. In 2-dimensional Cartesian parameter space, (u, v), transforms into
 * a 3-dimensional coordinate reference system, (x, y, z), by using
 * an affine transformation, (u, v) → (x, y,
 * z), which is defined:
 *
 * 

(TODO: paste the matrix here)
* *

Then, given this equation, the {@link #getLocation} method returns the direct position * (x0, y0, z0), which is the * target position of the origin in (u, v). The two {@linkplain * #getReferenceDirection reference directions} (ux, uy, * uz) and (vx, vy, * vz) are the target directions of the unit basis vectors at the origin in * (u, v). * * @version ISO 19107 * @author Martin Desruisseaux (IRD) * @since GeoAPI 2.0 */ @UML(identifier = "GM_AffinePlacement", specification = ISO_19107) public interface AffinePlacement extends Placement { /** * Gives the target of the parameter space origin. This is the vector (x0, * y0, z0) in the formulae in the class description. */ @UML(identifier = "location", obligation = MANDATORY, specification = ISO_19107) Position getLocation(); /** * Gives the target directions for the coordinate basis vectors of the parameter space. These * are the columns of the matrix in the formulae given in the class description. The number of * directions given shall be {@link #getInDimension inDimension}. The dimension of the * directions shall be {@link #getOutDimension outDimension}. * * @param dimension The in dimension, as an index from 0 inclusive to {@link #getInDimension * inDimension} exclusive. * @return The direction as an array of length {@link #getOutDimension outDimension}. */ @UML(identifier = "refDirection", obligation = MANDATORY, specification = ISO_19107) double[] getReferenceDirection(int dimension); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy