Prototype and description of the function gettransmolodensky()

(Function of the unlock requiring group "Transformation Parameter")

 

gettransmolodensky()
Calculation of three Molodensky parameters from identical points in
different Reference Systems.

Prototype of the DLL function in C++ syntax (attend lower case!):
extern "C" __declspec(dllimport) unsigned long __stdcall gettransmolodensky(
     double aCartQ[][3],
     double aCartZ[][3],
     unsigned long nCount,
     double aMolodensky[3]);

Prototype of the DLL function in Visual Objects syntax:
_DLL FUNCTION gettransmolodensky(;
     aCartQ AS REAL8 PTR,;                   // 4 Byte
     aCartZ AS REAL8 PTR,;                   // 4 Byte
     nCount AS DWORD,;                       // 4 Byte
     aMolodensky AS REAL8 PTR);              // 4 Byte
AS LOGIC PASCAL:geodll32.gettransmolodensky  // 4 Byte


The function calculates three Molodensky transformation parameters from
identical points in different source and target Coordiate Reference Systems.
The identical points are stored in arrays as cartesian coordinates.

The Molodensky transformation is a transformation for three-dimensional
Cartesian coordinates. It contains as parameters three translation vectors.

Since the function due to the extensive calculations is time-consuming,
the event handling during the calculation by interrupting the processing loop
can be are allowed bei calling the function seteventloop().


The parameters are passed and/or returned as follows:
aCartQ[][3] Cartesian coordinates X, Y, Z of the source Coordinate Reference
(ref)       System in a two dimensional array of type double. The first
            dimension counts the available cartesian source coordinates of
            the identical points given in nCount. The second dimension is
            3 for the X, Y and Z component of a cartesian source coordinate.
            The length of the arrays aCartQ and aCartZ must be identical. The
            structure of the array is described further below.

aCartZ[][3] Cartesian coordinates X, Y, Z of the target Coordinate Reference
(ref)       System in a two dimensional array of type double. The first
            dimension counts the available cartesian target coordinates of
            the identical points given in nCount. The second dimension is
            3 for the X, Y and Z component of a cartesian target coordinate.
            The length of the arrays aCartQ and aCartZ must be identical. The
            structure of the array is described further below.

nCount      Count of the available identical points stored as cartesian
            coordinates in the arrays aCartQ and aCartZ.

aMolodensky[3]  Three Molodensky parameters in an array of 3 doubles.
(ref out)   1. array element: Translation vector for X-axis [meter]
            2. array element: Translation vector for Y-axis [meter]
            3. array element: Translation vector for Z-axis [meter]
            ----------------
            | T1 | T2 | T3 |
            ----------------
            For the array the calling function must allocate memory of the
            size 3*sizeof(double) bytes.

returnVal   In case of an error the function returns FALSE, otherwise TRUE.


The two dimensional arrays aCartQ[][3] und aCartZ[][3] are filled with values
of type double and are structured as follows:
----------------------------------------------------------------------
| C1-X | C1-Y | C1-Z | C2-X | C2-Y | C2-Z | ... | Cn-X | Cn-Y | Cn-Z |
----------------------------------------------------------------------
with C1 -› Cn: Coordinates 1 to n
X:             Kartesian X component
Y:             Kartesian Y component
Z:             Kartesian Z component


Unlocking
This function is a component of the unlock requiring function group
"Transformation parameter". It is unlocked for unrestricted use together
with other functions of the group by passing the unlock parameters, acquired
from the software distribution company, trough the function setunlockcode().
Without unlocking at most 25 identical points can be processed.