org.geotoolkit.referencing.cs
Class DefaultAffineCS

Object
  extended by FormattableObject
      extended by AbstractIdentifiedObject
          extended by AbstractCS
              extended by DefaultAffineCS
All Implemented Interfaces:
Serializable, Formattable, LenientComparable, AffineCS, CoordinateSystem, IdentifiedObject
Direct Known Subclasses:
DefaultCartesianCS

@Immutable
public class DefaultAffineCS
extends AbstractCS
implements AffineCS

A two- or three-dimensional coordinate system with straight axes that are not necessarily orthogonal. An AffineCS shall have two or three axis.

Used with CRS type(s)
Engineering, Image

Since:
2.0
Version:
3.18
Author:
Martin Desruisseaux (IRD, Geomatys)
See Also:
DefaultCartesianCS, Serialized Form
Module:
referencing/geotk-referencing (download)    View source code for this class

Field Summary
 
Fields inherited from class AbstractIdentifiedObject
EMPTY_ALIAS_ARRAY, EMPTY_IDENTIFIER_ARRAY, IDENTIFIER_COMPARATOR, NAME_COMPARATOR, REMARKS_COMPARATOR
 
Fields inherited from class FormattableObject
EPSG, GEOTIFF, INTERNAL, OGC, SINGLE_LINE
 
Fields inherited from interface IdentifiedObject
ALIAS_KEY, IDENTIFIERS_KEY, NAME_KEY, REMARKS_KEY
 
Constructor Summary
DefaultAffineCS(AffineCS cs)
          Constructs a new coordinate system with the same values than the specified one.
DefaultAffineCS(Map<String,?> properties, CoordinateSystemAxis axis0, CoordinateSystemAxis axis1)
          Constructs a two-dimensional coordinate system from a set of properties.
DefaultAffineCS(Map<String,?> properties, CoordinateSystemAxis axis0, CoordinateSystemAxis axis1, CoordinateSystemAxis axis2)
          Constructs a three-dimensional coordinate system from a set of properties.
DefaultAffineCS(String name, CoordinateSystemAxis axis0, CoordinateSystemAxis axis1)
          Constructs a two-dimensional coordinate system from a name.
DefaultAffineCS(String name, CoordinateSystemAxis axis0, CoordinateSystemAxis axis1, CoordinateSystemAxis axis2)
          Constructs a three-dimensional coordinate system from a name.
 
Method Summary
protected  boolean isCompatibleDirection(AxisDirection direction)
          Returns true if the specified axis direction is allowed for this coordinate system.
protected  boolean isCompatibleUnit(AxisDirection direction, Unit<?> unit)
          Returns true if the specified unit is compatible with metres.
 DefaultAffineCS usingUnit(Unit<?> unit)
          Returns a new coordinate system with the same properties than the current one except for axis units.
static DefaultAffineCS wrap(AffineCS object)
          Returns a Geotk coordinate system implementation with the same values than the given arbitrary implementation.
 
Methods inherited from class AbstractCS
computeHashCode, distance, equals, formatWKT, getAxis, getDimension, standard, swapAndScaleAxis
 
Methods inherited from class AbstractIdentifiedObject
equals, equals, equals, equals, getAlias, getIdentifier, getIdentifier, getIdentifiers, getName, getName, getName, getProperties, getProperties, getRemarks, hashCode, nameMatches, nameMatches, nameMatches
 
Methods inherited from class FormattableObject
getDefaultIndentation, print, setDefaultIndentation, toString, toWKT, toWKT, toWKT
 
Methods inherited from class Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface CoordinateSystem
getAxis, getDimension
 
Methods inherited from interface IdentifiedObject
getAlias, getIdentifiers, getName, getRemarks, toWKT
 

Constructor Detail

DefaultAffineCS

public DefaultAffineCS(AffineCS cs)
Constructs a new coordinate system with the same values than the specified one. This copy constructor provides a way to wrap an arbitrary implementation into a Geotk one or a user-defined one (as a subclass), usually in order to leverage some implementation-specific API. This constructor performs a shallow copy, i.e. the properties are not cloned.

Parameters:
cs - The coordinate system to copy.
Since:
2.2

DefaultAffineCS

public DefaultAffineCS(String name,
                       CoordinateSystemAxis axis0,
                       CoordinateSystemAxis axis1)
Constructs a two-dimensional coordinate system from a name.

Parameters:
name - The coordinate system name.
axis0 - The first axis.
axis1 - The second axis.

DefaultAffineCS

public DefaultAffineCS(String name,
                       CoordinateSystemAxis axis0,
                       CoordinateSystemAxis axis1,
                       CoordinateSystemAxis axis2)
Constructs a three-dimensional coordinate system from a name.

Parameters:
name - The coordinate system name.
axis0 - The first axis.
axis1 - The second axis.
axis2 - The third axis.

DefaultAffineCS

public DefaultAffineCS(Map<String,?> properties,
                       CoordinateSystemAxis axis0,
                       CoordinateSystemAxis axis1)
Constructs a two-dimensional coordinate system from a set of properties. The properties map is given unchanged to the super-class constructor.

Parameters:
properties - Set of properties. Should contains at least "name".
axis0 - The first axis.
axis1 - The second axis.

DefaultAffineCS

public DefaultAffineCS(Map<String,?> properties,
                       CoordinateSystemAxis axis0,
                       CoordinateSystemAxis axis1,
                       CoordinateSystemAxis axis2)
Constructs a three-dimensional coordinate system from a set of properties. The properties map is given unchanged to the superclass constructor.

Parameters:
properties - Set of properties. Should contains at least "name".
axis0 - The first axis.
axis1 - The second axis.
axis2 - The third axis.
Method Detail

wrap

public static DefaultAffineCS wrap(AffineCS object)
Returns a Geotk coordinate system implementation with the same values than the given arbitrary implementation. If the given object is null, then this method returns null. Otherwise if the given object is already a Geotk implementation, then the given object is returned unchanged. Otherwise a new Geotk implementation is created and initialized to the attribute values of the given object.

This method checks for the CartesianCS sub-interface. If that interface is found, then this method delegates to the corresponding wrap static method.

Parameters:
object - The object to wrap in a Geotk implementation, or null if none.
Returns:
A Geotk implementation containing the values of the given object (may be the given object itself), or null if the argument was null.
Since:
3.18

isCompatibleDirection

protected boolean isCompatibleDirection(AxisDirection direction)
Returns true if the specified axis direction is allowed for this coordinate system. The default implementation accepts all directions except temporal ones (i.e. FUTURE and PAST).

Overrides:
isCompatibleDirection in class AbstractCS
Parameters:
direction - The direction to test for compatibility.
Returns:
true if the given direction is compatible with this coordinate system.

isCompatibleUnit

protected boolean isCompatibleUnit(AxisDirection direction,
                                   Unit<?> unit)
Returns true if the specified unit is compatible with metres. In addition, this method also accepts Unit.ONE, which is used for coordinates in a grid. This method is invoked at construction time for checking units compatibility.

Overrides:
isCompatibleUnit in class AbstractCS
Parameters:
direction - The direction of the axis having the given unit.
unit - The unit to test for compatibility.
Returns:
true if the given unit is compatible with this coordinate system.
Since:
2.2

usingUnit

public DefaultAffineCS usingUnit(Unit<?> unit)
                          throws IllegalArgumentException
Returns a new coordinate system with the same properties than the current one except for axis units.

Parameters:
unit - The unit for the new axis.
Returns:
A coordinate system with axis using the specified units.
Throws:
IllegalArgumentException - If the specified unit is incompatible with the expected one.
Since:
3.00


Copyright © 2009-2011 Geotoolkit.org. All Rights Reserved.