TINMAN 3D / REALTIME TERRAIN
Software Development Kit - User Manual

class DatumTransform in Tinman.Terrain.Georef

abstract class DatumTransform implements IDatumTransform
  extends SerializableBase

Configuration

Config

The configurator object for this type.

public static property Config { get }
type IConfigurator<IDatumTransform>
value [not-null] The configurator object.

Public / Attributes

IsFlip

Does this coordinate system transform flip the handedness?

public virtual property IsFlip { get }
type bool
value true if the coordinate system handedness if flipped, false if not.
implements ICoordinateFlip.IsFlip

SerialType

Returns the serial type of this object.

public property SerialType { get }
type ISerialTypeInfo
value [not-null] The serial type.
inherited SerializableBase.SerialType

SerialVersion

Returns the serial data version.

public virtual property SerialVersion { get }
type int32
value [>=1] The serial data version tag.
inherited SerializableBase.SerialVersion

Remarks:

An ISerializable implementation is required to support all versions up to the one returned by SerialVersion.

See also:

ISerializable.Serialize
ISerializable.Deserialize

Public / Constructors

GeocentricTransform

Applies the given transformation in the geocentric domain.

public static method GeocentricTransform (Ellipsoid source, Ellipsoid target, Mat4D transform)
type IDatumTransform
params source [not-null] The source coordinate system (ellipsoid specification).
  target [not-null] The target coordinate system (ellipsoid specification).
  transform The geocentric transformation matrix.
returns [not-null] The resulting datum transform.

Remarks:

First, geographic coordinates are converted to geocentric coordinates using the source coordinate system. Then the matrix transformation is applied to the X-, Y- and Z-coordinates. Finally, the geocentric coordinates are converted back to geographic coordinates using the target coordinate system.

GeocentricTranslations

Geocentric translations (geog2D domain) EPSG dataset coordinate operation method code 9603

public static method GeocentricTranslations (Ellipsoid source, Ellipsoid target, Vec3D t)
type IDatumTransform
params source [not-null] The source coordinate system (ellipsoid specification).
  target [not-null] The target coordinate system (ellipsoid specification).
  t EPSG-8605: X-axis translation (tX)
EPSG-8606: Y-axis translation (tY)
EPSG-8607: Z-axis translation (tZ)
returns [not-null] The resulting datum transform.

GeographicOffset

Transforms 3D geographic coordinates by adding offset values to each component.

public static method GeographicOffset (float64 latitude, float64 longitude, float64 height = 0)
type IDatumTransform
params latitude The latitude offset, in radians.
  longitude The longitude offset, in radians.
  height The height offset, in vertical units.
returns [not-null] The resulting datum transform.

Remarks:

This method represents the following:

Helmert

Position Vector transformation (geog2D domain), EPSG dataset coordinate operation method code 9606

public static method Helmert (Ellipsoid source, Ellipsoid target, Vec3D t, Vec3D r, float64 dS)
type IDatumTransform
params source [not-null] The source coordinate system (ellipsoid specification).
  target [not-null] The target coordinate system (ellipsoid specification).
  t EPSG-8605: X-axis translation (tX)
EPSG-8606: Y-axis translation (tY)
EPSG-8607: Z-axis translation (tZ)
  r EPSG-8608: X-axis rotation (rX)
EPSG-8609: Y-axis rotation (rY)
EPSG-8610: Z-axis rotation (rZ)
  dS EPSG-8611: Scale difference (dS), specified in Unity.
returns [not-null] The resulting datum transform.

Remarks:

When the axis rotation parameter r is flipped (see Neg), the returned datum transform represents the Coordinate Frame Rotation (geog2D domain), EPSG dataset coordinate operation method code 9607.

Linear

Creates a custom linear datum transform.

public static method Linear (float64 latitude, float64 longitude, float64 scale = 1, float64 offset = 0)
type IDatumTransform
params latitude Latitude offset, in radians.
  longitude Longitude offset, in radians.
  scale Height scale factor.
  offset Height offset value.
returns [not-null] The resulting datum transform.

Remarks:

For the given input coordinates (lambda, phi, h), the transformation will give:
(lambda + longitude, phi + latitude, h * scale + offset).

Molodensky

Molodensky-Badekas (PV geog2D domain), EPSG dataset coordinate operation method code 1063

public static method Molodensky (Ellipsoid source, Ellipsoid target, Vec3D t, Vec3D r, Vec3D p, float64 dS)
type IDatumTransform
params source [not-null] The source coordinate system (ellipsoid specification).
  target [not-null] The target coordinate system (ellipsoid specification).
  t EPSG-8605: X-axis translation (tX)
EPSG-8606: Y-axis translation (tY)
EPSG-8607: Z-axis translation (tZ)
  r EPSG-8608: X-axis rotation (rX)
EPSG-8609: Y-axis rotation (rY)
EPSG-8610: Z-axis rotation (rZ)
  p EPSG-8617: Ordinate 1 of evaluation point (Xp)
EPSG-8618: Ordinate 2 of evaluation point (Xp)
EPSG-8667: Ordinate 3 of evaluation point (Xp)
  dS EPSG-8611: Scale difference (dS), specified in Unity.
returns [not-null] The resulting datum transform.

Remarks:

When the axis rotation parameter r is flipped (see Neg), the returned datum transform represents the Molodensky-Badekas (CF geog2D domain), EPSG dataset coordinate operation method code 9636.

VerticalOffset

Vertical Offset, EPSG dataset coordinate operation method code 9616.

public static method VerticalOffset (CoordinateSystem source, CoordinateSystem target, float64 verticalOffset, UnitOfMeasure unit = null)
type IDatumTransform
params source [not-null] The source coordinate system.
  target [not-null] The target coordinate system.
  verticalOffset The vertical offset parameter.
  unit Unit of measure for vertical offset. If null, Metre will be used. Defaults to null.
returns [not-null] The resulting datum transform.

Public / Methods

Append

Appends the given datum transforms to this one.

public virtual method Append (IDatumTransform other)
type IDatumTransform
params other [not-null] The datum transform to append.
returns [not-null] The resulting transform.
implements IDatumTransform.Append

Deserialize

Initializes the state of this object from the given data stream.

public virtual method Deserialize (int32 serialVersion, ISerializer data)
type ISerializable
params serialVersion [>=1] The serial data version.
  data [not-null] The serial data stream.
returns [not-null] The deserialized object. This will typically be this, but in some circumstances, another instance may be returned (e.g. singletons).
inherited SerializableBase.Deserialize

Remarks:

The Deserialize method will be called immediately after the object has been instantiated via its default constructor.

The provided serialVersion number is guaranteed to be equal to or less than the SerialVersion returned by this object (i.e. ISerializable object must provide backwards compatibility).

See also:

ISerializable.Serialize
ISerializable.SerialVersion

Equals

Compares this object with the given one.

[Pure]
public abstract method Equals (IDatumTransform other)
type bool
params other The object to compare to.
returns true if this object is equal to other, false if not.
implements IEquatable.Equals

Reverse

Returns the reverse datum transform.

public abstract method Reverse ()
type IDatumTransform
returns [not-null] The reverse transform.
implements IDatumTransform.Reverse

Serialize

Serializes the current state of this object to the given data stream.

public virtual method Serialize (ISerializer data)
params data [not-null] The serial data stream.
inherited SerializableBase.Serialize

See also:

ISerializable.Deserialize
ISerializable.SerialVersion

ToConfig

Returns the configuration value that describes this object.

public abstract method ToConfig ()
type ConfigValue
returns [not-null] The configuration value.
implements IConfigurable.ToConfig

Remarks:

All configurable objects need to implement this interface. For simple types, it is preferable to delegate to ToValue.

The returned value may be of type Invalid, which means that this object in its current state cannot be described with the configuration API.

Before returning the resulting configuration value, Cache must be called on it, passing this IConfigurable object as parameter.

Transform

Transforms the geographic coordinates from the source datum to the target datum.

public abstract method Transform (float64 latitude, float64 longitude, float64 height)
type Vec3D
params latitude Latitude in radians, in terms of source horizontal datum.
  longitude Longitude in radians, in terms of source horizontal datum.
  height Height value, in terms of source horizontal and vertical datums.
returns The resulting longitude (X), latitude (Y) and height (Z), in terms of target horizontal and vertical datums.
implements IDatumTransform.Transform

Protected / Constructors

DatumTransform

protected constructor DatumTransform (ISerialTypeInfo serialType)
params serialType