[mapguide-commits] r5404 - in trunk/MgDev: Common/CoordinateSystem Common/Geometry Common/Geometry/CoordinateSystem Web/src/DotNetUnmanagedApi/Geometry Web/src/JavaApi Web/src/PhpApi

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Wed Nov 24 09:36:36 EST 2010


Author: baertelchen
Date: 2010-11-24 06:36:36 -0800 (Wed, 24 Nov 2010)
New Revision: 5404

Added:
   trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticStandaloneTransformDefParams.cpp
   trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticStandaloneTransformDefParams.h
   trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticStandaloneTransformDefParams.h
   trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticStandaloneTransformationMethod.h
Modified:
   trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticTransformDef.cpp
   trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticTransformDef.h
   trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticTransformDefDictionary.h
   trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticTransformDefType.h
   trunk/MgDev/Common/Geometry/Geometry.vcproj
   trunk/MgDev/Common/Geometry/GeometryClassId.h
   trunk/MgDev/Common/Geometry/GeometryCommon.h
   trunk/MgDev/Common/Geometry/Makefile.am
   trunk/MgDev/Web/src/DotNetUnmanagedApi/Geometry/GeometryApiGen.xml
   trunk/MgDev/Web/src/DotNetUnmanagedApi/Geometry/GeometryConstants.xml
   trunk/MgDev/Web/src/JavaApi/Makefile.am
   trunk/MgDev/Web/src/PhpApi/Makefile.am
Log:
Ticket #1529 Coordinate System API does not allow creating a so called "Standalone" geodetic transformation as supported by CsMap

CsMap has a notion of so called "Standalone" transformations - these cannot be parameterized from outside but have their parameters (if there any at all) built into CsMap directly. Namely, those are the WGS72-to-WGS84 transformation as published by the DMA and the NULL transformation which does nothing. When converting between datums (incl. converting between coordinate systems), the datum shift can be treated a NOOP in some scenarios even though the actual datum (name) changes. This is what the NULL(x) transformation is for.

MapGuide's coordinate system API didn't allow for creating such a Standalone transformation. This submission adds support for that CsMap transformation type. The changes only affect the files/API that had been changed due to RFC94. Namely, I've changed the constants of supported geodetic transformation types in CoordinateSystemGeodeticTransformDefType.h.

Added: trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticStandaloneTransformDefParams.cpp
===================================================================
--- trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticStandaloneTransformDefParams.cpp	                        (rev 0)
+++ trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticStandaloneTransformDefParams.cpp	2010-11-24 14:36:36 UTC (rev 5404)
@@ -0,0 +1,84 @@
+//
+//  Copyright (C) 2004-2010 by Autodesk, Inc.
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of version 2.1 of the GNU Lesser
+//  General Public License as published by the Free Software Foundation.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+#include "CoordSysMacro.h"
+
+#include "GeometryCommon.h"
+#include "CoordSysCommon.h"
+
+#include "CoordSysGeodeticTransformDefParams.h"
+#include "CoordSysGeodeticStandaloneTransformDefParams.h"
+
+#include <cs_map.h>
+
+using namespace CSLibrary;
+
+CCoordinateSystemGeodeticStandaloneTransformDefParams::CCoordinateSystemGeodeticStandaloneTransformDefParams(
+    INT32 standaloneMethodCode, bool isProtected)
+    : CCoordinateSystemGeodeticTransformDefParams(isProtected)
+    , m_nStandaloneMethodCode(standaloneMethodCode)
+{
+}
+
+CCoordinateSystemGeodeticStandaloneTransformDefParams::~CCoordinateSystemGeodeticStandaloneTransformDefParams()
+{
+}
+
+void CCoordinateSystemGeodeticStandaloneTransformDefParams::Dispose()
+{
+    delete this;
+}
+
+bool CCoordinateSystemGeodeticStandaloneTransformDefParams::IsValid()
+{
+    return true;
+}
+
+bool CCoordinateSystemGeodeticStandaloneTransformDefParams::IsProtected()
+{
+    return CCoordinateSystemGeodeticTransformDefParams::IsProtected();
+}
+
+void CCoordinateSystemGeodeticStandaloneTransformDefParams::CopyTo(void* target) const
+{
+    ENSURE_NOT_NULL(target, L"CCoordinateSystemGeodeticStandaloneTransformDefParams.CopyTo");
+    
+    //wipe out the information - we don't have any parameters to set
+    memset(target, 0, sizeof(cs_GeodeticTransform_::csGeodeticXformParameters::csGeodeticXfromParmsSize_));
+}
+
+INT32 CCoordinateSystemGeodeticStandaloneTransformDefParams::GetTransformationMethod()
+{
+    return this->m_nStandaloneMethodCode;
+}
+
+void CCoordinateSystemGeodeticStandaloneTransformDefParams::SetTransformationMethod(INT32 standaloneMethodCode)
+{
+    VERIFY_NOT_PROTECTED(L"CCoordinateSystemGeodeticStandaloneTransformDefParamsSetTransformationMethod");
+
+    switch(standaloneMethodCode)
+    {
+    case MgCoordinateSystemGeodeticStandaloneTransformationMethod::NullX:
+    case MgCoordinateSystemGeodeticStandaloneTransformationMethod::Wgs72:
+        break;
+
+    default:
+        throw new MgInvalidArgumentException(L"CCoordinateSystemGeodeticStandaloneDefParams.SetTransformationMethod", __LINE__, __WFILE__, NULL, L"", NULL);
+    }
+
+    this->m_nStandaloneMethodCode = standaloneMethodCode;
+}


Property changes on: trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticStandaloneTransformDefParams.cpp
___________________________________________________________________
Added: svn:eol-style
   + native

Added: trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticStandaloneTransformDefParams.h
===================================================================
--- trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticStandaloneTransformDefParams.h	                        (rev 0)
+++ trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticStandaloneTransformDefParams.h	2010-11-24 14:36:36 UTC (rev 5404)
@@ -0,0 +1,46 @@
+//
+//  Copyright (C) 2004-2010 by Autodesk, Inc.
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of version 2.1 of the GNU Lesser
+//  General Public License as published by the Free Software Foundation.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+#ifndef _CCOORDSYSGEODETICSTANDALONETRANSFORMDEFPARAMS_H_
+#define _CCOORDSYSGEODETICSTANDALONETRANSFORMDEFPARAMS_H_
+
+namespace CSLibrary
+{
+    class CCoordinateSystemGeodeticStandaloneTransformDefParams :
+        public MgCoordinateSystemGeodeticStandaloneTransformDefParams,
+        public CCoordinateSystemGeodeticTransformDefParams
+    {
+    public:
+        CCoordinateSystemGeodeticStandaloneTransformDefParams(INT32 standaloneTransformMethod, bool isProtected);
+        virtual ~CCoordinateSystemGeodeticStandaloneTransformDefParams();
+
+        virtual void Dispose();
+        virtual bool IsValid();
+
+        virtual bool IsProtected();
+        virtual void CopyTo(void* target) const;
+
+        virtual INT32 GetTransformationMethod();
+        virtual void SetTransformationMethod(INT32 standaloneMethodCode);
+
+    private:
+        INT32 m_nStandaloneMethodCode;
+    };
+
+} //namespace CSLibrary
+
+#endif //_CCOORDSYSGEODETICSTANDALONETRANSFORMDEFPARAMS_H_


Property changes on: trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticStandaloneTransformDefParams.h
___________________________________________________________________
Added: svn:eol-style
   + native

Modified: trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticTransformDef.cpp
===================================================================
--- trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticTransformDef.cpp	2010-11-24 11:47:03 UTC (rev 5403)
+++ trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticTransformDef.cpp	2010-11-24 14:36:36 UTC (rev 5404)
@@ -21,6 +21,7 @@
 
 #include "CoordSysGeodeticTransformation.h"
 #include "CoordSysGeodeticTransformDefParams.h"
+#include "CoordSysGeodeticStandaloneTransformDefParams.h"
 #include "CoordSysGeodeticAnalyticalTransformDefParams.h"
 #include "CoordSysGeodeticInterpolationTransformDefParams.h"
 #include "CoordSysGeodeticMultipleRegressionTransformDefParams.h"
@@ -70,12 +71,13 @@
     INT32 transformationType;
     switch(transformationDefType)
     {
-    case MgCoordinateSystemGeodeticTransformDefType::None:
+    case MgCoordinateSystemGeodeticTransformDefType::Standalone:
     case MgCoordinateSystemGeodeticTransformDefType::Analytical:
     case MgCoordinateSystemGeodeticTransformDefType::Interpolation:
     case MgCoordinateSystemGeodeticTransformDefType::MultipleRegression:
         transformationType = transformationDefType;
         break;
+
     default:
         throw new MgInvalidArgumentException(L"CCoordinateSystemGeodeticTransformDef.Reset", __LINE__, __WFILE__, NULL, L"", NULL);
     }
@@ -112,10 +114,10 @@
     INT32 transformationType;
     switch(methodCode)
     {
-    //standalone methods; see information in cs_geodetic.h
+    //standalone/built-in methods; see information in cs_geodetic.h
     case cs_DTCMTH_NULLX:
     case cs_DTCMTH_WGS72:
-        transformationType = MgCoordinateSystemGeodeticTransformDefType::None;
+        transformationType = MgCoordinateSystemGeodeticTransformDefType::Standalone;
         break;
 
     //multiple Regression methods
@@ -223,8 +225,9 @@
 
     switch(this->transformationDefType)
     {
-    case MgCoordinateSystemGeodeticTransformDefType::None:
-        return NULL;
+    case MgCoordinateSystemGeodeticTransformDefType::Standalone:
+        return static_cast<MgCoordinateSystemGeodeticStandaloneTransformDefParams*>(new CCoordinateSystemGeodeticStandaloneTransformDefParams(
+            this->transformDefinition->methodCode, this->IsProtected()));
 
     case MgCoordinateSystemGeodeticTransformDefType::Analytical:
         return static_cast<MgCoordinateSystemGeodeticAnalyticalTransformDefParams*>(new CCoordinateSystemGeodeticAnalyticalTransformDefParams(
@@ -266,9 +269,19 @@
     CCoordinateSystemGeodeticTransformDefParams* transformDefParams = NULL;
     CCoordinateSystemGeodeticMultipleRegressionTransformDefParams* mulRegParams = NULL;
     CCoordinateSystemGeodeticAnalyticalTransformDefParams* analyticalParams = NULL;
+    CCoordinateSystemGeodeticStandaloneTransformDefParams* standaloneParams = NULL;
 
     switch(this->transformationDefType)
     {
+    case MgCoordinateSystemGeodeticTransformDefType::Standalone:
+        standaloneParams = dynamic_cast<CCoordinateSystemGeodeticStandaloneTransformDefParams*>(parameters);
+        if (NULL != standaloneParams)
+        {
+            paramsMethodCode = standaloneParams->GetTransformationMethod();
+            transformDefParams = standaloneParams;
+        }
+        break;
+
     case MgCoordinateSystemGeodeticTransformDefType::Analytical:
         analyticalParams = dynamic_cast<CCoordinateSystemGeodeticAnalyticalTransformDefParams*>(parameters);
         if (NULL != analyticalParams)

Added: trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticStandaloneTransformDefParams.h
===================================================================
--- trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticStandaloneTransformDefParams.h	                        (rev 0)
+++ trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticStandaloneTransformDefParams.h	2010-11-24 14:36:36 UTC (rev 5404)
@@ -0,0 +1,68 @@
+//  Copyright (C) 2004-2010 by Autodesk, Inc.
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of version 2.1 of the GNU Lesser
+//  General Public License as published by the Free Software Foundation.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+#ifndef _MGCOORDINATESYSTEMGEODETICSTANDALONETRANSFORMDEFPARAMS_H_
+#define _MGCOORDINATESYSTEMGEODETICSTANDALONETRANSFORMDEFPARAMS_H_
+
+/// \defgroup MgCoordinateSystemGeodeticStandaloneTransformDefParams MgCoordinateSystemGeodeticStandaloneTransformDefParams
+/// \ingroup Coordinate_System_classes
+/// \{
+
+////////////////////////////////////////////////////////////////
+/// \brief
+/// This class (indirectly) describes the parameters of a geodetic transformation method that's built into the
+/// transformation engine. Hence, it does not allow for setting any parameters. Only the well known code
+/// can be set/get via (Set/Get)TransformationMethod.
+///
+class MG_GEOMETRY_API MgCoordinateSystemGeodeticStandaloneTransformDefParams : public MgCoordinateSystemGeodeticTransformDefParams
+{
+    DECLARE_CLASSNAME(MgCoordinateSystemGeodeticStandaloneTransformDefParams)
+
+PUBLISHED_API:
+
+    ////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Returns the code of the well known geodetic transformation method. Can only
+    /// be one of the constants defined in MgCoordinateSystemGeodeticStandaloneTransformationMethod (except for None).
+    ///
+    /// \return
+    /// Returns the code of the well known geodetic transformation method.
+    virtual INT32 GetTransformationMethod() = 0; /// __get, __set
+    
+    ////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Sets the code of the well-known geodetic transformation method. Can only
+    /// be one of the constants defined in MgCoordinateSystemGeodeticStandaloneTransformationMethod (except for None).
+    virtual void SetTransformationMethod(INT32 builtInTransformationMethod) = 0;
+
+protected:
+    /////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Get the class Id
+    ///
+    /// \return
+    /// The integer value
+    ///
+    INT32 GetClassId() { return m_cls_id; };
+
+CLASS_ID:
+    static const INT32 m_cls_id = CoordinateSystem_CoordinateSystemGeodeticStandaloneTransformDefParams;
+
+};
+
+/// \}
+
+#endif //_MGCOORDINATESYSTEMGEODETICSTANDALONETRANSFORMDEFPARAMS_H_


Property changes on: trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticStandaloneTransformDefParams.h
___________________________________________________________________
Added: svn:eol-style
   + native

Added: trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticStandaloneTransformationMethod.h
===================================================================
--- trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticStandaloneTransformationMethod.h	                        (rev 0)
+++ trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticStandaloneTransformationMethod.h	2010-11-24 14:36:36 UTC (rev 5404)
@@ -0,0 +1,58 @@
+//
+//  Copyright (C) 2004-2010 by Autodesk, Inc.
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of version 2.1 of the GNU Lesser
+//  General Public License as published by the Free Software Foundation.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+#ifndef _MGCOORDINATESYSTEMGEODETICSTANDALONETRANSFORMATIONMETHOD_H_
+#define _MGCOORDINATESYSTEMGEODETICSTANDALONETRANSFORMATIONMETHOD_H_
+
+/// \defgroup MgCoordinateSystemGeodeticStandaloneTransformationMethod MgCoordinateSystemGeodeticStandaloneTransformationMethod
+/// \ingroup Coordinate_System_classes
+/// \{
+
+///////////////////////////////////////////////////////////////
+/// \brief
+/// This class defines all transformation methods that are built into
+/// the transformation engine. That is, when creating such a geodetic transformation
+/// the API client cannot specify any parameters because they are well known
+/// and are available to the engine already.
+/// The constants defined below are only valid for MgCoordinateSystemGeodeticTransformDef instances
+/// of type MgCoordinateSystemGeodeticTransformDefType.Standalone.
+///
+class MG_GEOMETRY_API MgCoordinateSystemGeodeticStandaloneTransformationMethod
+{
+PUBLISHED_API:
+
+    ////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Default constant available for programming convenience only. No specific
+    /// geodetic transformation can be created from this constant.
+    static const INT32 None = 0;
+
+    ////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Describes a geodetic transformation that is actually a NOOP, i.e.
+    /// the 2 datums to be transformed between are considered equal.
+    static const INT32 NullX = 4097; //cs_DTCMTH_NULLX
+
+    ////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Describes the WGS72 to WGS84 geodetic transformation as published by the DMA (DMA TR 8350.2-B).
+    /// All required parameters are known and built-in.
+    static const INT32 Wgs72 = 4098; //cs_DTCMTH_WGS72
+};
+/// \}
+
+#endif //_MGCOORDINATESYSTEMGEODETICSTANDALONETRANSFORMATIONMETHOD_H_


Property changes on: trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticStandaloneTransformationMethod.h
___________________________________________________________________
Added: svn:eol-style
   + native

Modified: trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticTransformDef.h
===================================================================
--- trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticTransformDef.h	2010-11-24 11:47:03 UTC (rev 5403)
+++ trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticTransformDef.h	2010-11-24 14:36:36 UTC (rev 5404)
@@ -107,6 +107,7 @@
     /// \li MgCoordinateSystemGeodeticAnalyticalTransformDefParams if this transformation uses an anylitical transformation method
     /// \li MgCoordinateSystemGeodeticInterpolationTransformDefParams if this transformation uses grid files
     /// \li MgCoordinateSystemGeodeticMultipleRegressionTransformDefParams if this transformation is a multiple regression transformation type
+    /// \li MgCoordinateSystemGeodeticStandaloneTransformDefParams if this transformation is a standalone (aka built-in) transformation type
     ///
     /// \return
     /// Returns the extended parameters (or NULL) object for this transformation object. The
@@ -126,7 +127,9 @@
     /// \param parameters
     /// The parameters to set for this transformation. The object passed in,
     /// has to be of the same type as it has been returned by GetParameters. Otherwise,
-    /// an exception will be thrown. This parameter can only be NULL, if this is a NONE transformation.
+    /// an exception will be thrown. This parameter must not be NULL. Creating a transformation that
+    /// is supposed to do nothing except for allowing to switch from one datum to another (that is considered to be equal),
+    /// requires to create standalone transformation of type NullX.
     ///
     /// \remarks
     /// The instance passed in has to be disposed by the caller, i.e. this transformation

Modified: trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticTransformDefDictionary.h
===================================================================
--- trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticTransformDefDictionary.h	2010-11-24 11:47:03 UTC (rev 5403)
+++ trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticTransformDefDictionary.h	2010-11-24 14:36:36 UTC (rev 5404)
@@ -39,6 +39,10 @@
     /// method does not create a new entry in the dictionary. The caller is responsible
     /// for disposing the object being returned.
     ///
+    /// \param transformationDefType
+    /// The type of the geodetic transformation to create. This must be a constant value as defined
+    /// in MgCoordinateSystemGeodeticTransformDefType (except for None)
+    ///
     /// \return
     /// Return a new, in-memory geodetic transformation definition object. No content is written to disk
     /// when this method executes.

Modified: trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticTransformDefType.h
===================================================================
--- trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticTransformDefType.h	2010-11-24 11:47:03 UTC (rev 5403)
+++ trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticTransformDefType.h	2010-11-24 14:36:36 UTC (rev 5404)
@@ -33,23 +33,30 @@
 
     ///////////////////////////////////////////////////////////////
     /// \brief
-    /// The transformation definition describes the NONE transformation. That is, that
-    /// transformation doesn't actually perform a datum shift but is basically a NOOP.
+    /// Default 0 constant available for programming convenience only. It does not
+    /// describe a specific geodetic transformation type.
     static const INT32 None = 0;
 
     ///////////////////////////////////////////////////////////////
     /// \brief
+    /// The transformation definition describes a built-in transformation. That is, that
+    /// transformation is well-known and cannot be parameterized because
+    /// the information is available to the transformation engine.
+    static const INT32 Standalone = 1;
+
+    ///////////////////////////////////////////////////////////////
+    /// \brief
     /// The transformation definition describes an analytical transformation where
     /// the transformation between the source and the target datum is defined
     /// through a formular that's fed with up to 10 parameters.
-    static const INT32 Analytical = 1;
+    static const INT32 Analytical = 2;
 
     ///////////////////////////////////////////////////////////////
     /// \brief
     /// The transformation definition describes a transformation that
     /// uses grid files to calculate the actual datum shift for a given
     /// coordinate by interpolating between given grid points.
-    static const INT32 Interpolation = 2;
+    static const INT32 Interpolation = 3;
 
     ///////////////////////////////////////////////////////////////
     /// \brief

Modified: trunk/MgDev/Common/Geometry/Geometry.vcproj
===================================================================
--- trunk/MgDev/Common/Geometry/Geometry.vcproj	2010-11-24 11:47:03 UTC (rev 5403)
+++ trunk/MgDev/Common/Geometry/Geometry.vcproj	2010-11-24 14:36:36 UTC (rev 5404)
@@ -2671,6 +2671,14 @@
 				>
 			</File>
 			<File
+				RelativePath=".\CoordinateSystem\CoordinateSystemGeodeticStandaloneTransformationMethod.h"
+				>
+			</File>
+			<File
+				RelativePath=".\CoordinateSystem\CoordinateSystemGeodeticStandaloneTransformDefParams.h"
+				>
+			</File>
+			<File
 				RelativePath=".\CoordinateSystem\CoordinateSystemGeodeticTransformation.h"
 				>
 			</File>
@@ -2995,6 +3003,14 @@
 				>
 			</File>
 			<File
+				RelativePath="..\CoordinateSystem\CoordSysGeodeticStandaloneTransformDefParams.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\CoordinateSystem\CoordSysGeodeticStandaloneTransformDefParams.h"
+				>
+			</File>
+			<File
 				RelativePath="..\CoordinateSystem\CoordSysGeodeticTransformation.cpp"
 				>
 			</File>

Modified: trunk/MgDev/Common/Geometry/GeometryClassId.h
===================================================================
--- trunk/MgDev/Common/Geometry/GeometryClassId.h	2010-11-24 11:47:03 UTC (rev 5403)
+++ trunk/MgDev/Common/Geometry/GeometryClassId.h	2010-11-24 14:36:36 UTC (rev 5404)
@@ -127,6 +127,7 @@
 #define CoordinateSystem_CoordinateSystemGeodeticInterpolationTransformDefParams        GEOMETRY_COORDINATE_SYSTEM_ID+43
 #define CoordinateSystem_CoordinateSystemGeodeticMultipleRegressionTransformDefParams   GEOMETRY_COORDINATE_SYSTEM_ID+44
 #define CoordinateSystem_CoordinateSystemGeodeticTransformGridFile                      GEOMETRY_COORDINATE_SYSTEM_ID+45
+#define CoordinateSystem_CoordinateSystemGeodeticStandaloneTransformDefParams           GEOMETRY_COORDINATE_SYSTEM_ID+46
 
 // Exceptions
 #define Geometry_Exception_MgCoordinateSystemComputationFailedException     GEOMETRY_EXCEPTION_ID+0

Modified: trunk/MgDev/Common/Geometry/GeometryCommon.h
===================================================================
--- trunk/MgDev/Common/Geometry/GeometryCommon.h	2010-11-24 11:47:03 UTC (rev 5403)
+++ trunk/MgDev/Common/Geometry/GeometryCommon.h	2010-11-24 14:36:36 UTC (rev 5404)
@@ -113,7 +113,9 @@
 #include "CoordinateSystem/CoordinateSystemGeodeticInterpolationTransformDefParams.h"
 #include "CoordinateSystem/CoordinateSystemGeodeticMultipleRegressionTransformDefParams.h"
 #include "CoordinateSystem/CoordinateSystemGeodeticAnalyticalTransformDefParams.h"
+#include "CoordinateSystem/CoordinateSystemGeodeticStandaloneTransformDefParams.h"
 #include "CoordinateSystem/CoordinateSystemGeodeticTransformDefType.h"
+#include "CoordinateSystem/CoordinateSystemGeodeticStandaloneTransformationMethod.h"
 #include "CoordinateSystem/CoordinateSystemGeodeticAnalyticalTransformationMethod.h"
 #include "CoordinateSystem/CoordinateSystemGeodeticMultipleRegressionTransformationMethod.h"
 #include "CoordinateSystem/CoordinateSystemGeodeticTransformDef.h"

Modified: trunk/MgDev/Common/Geometry/Makefile.am
===================================================================
--- trunk/MgDev/Common/Geometry/Makefile.am	2010-11-24 11:47:03 UTC (rev 5403)
+++ trunk/MgDev/Common/Geometry/Makefile.am	2010-11-24 14:36:36 UTC (rev 5404)
@@ -23,17 +23,18 @@
   ../CoordinateSystem/CoordSysEnumDatum.cpp \
   ../CoordinateSystem/CoordSysEnumEllipsoid.cpp \
   ../CoordinateSystem/CoordSysFormatConverter.cpp \
-  ../CoordinateSystem/CoordSysGeodeticAnalyticalTransformDefParams.cpp\
-  ../CoordinateSystem/CoordSysGeodeticInterpolationTransformDefParams.cpp\
-  ../CoordinateSystem/CoordSysGeodeticMultipleRegressionTransformDefParams.cpp\
-  ../CoordinateSystem/CoordSysGeodeticPath.cpp\
-  ../CoordinateSystem/CoordSysGeodeticPathDictionary.cpp\
-  ../CoordinateSystem/CoordSysGeodeticPathElement.cpp\
-  ../CoordinateSystem/CoordSysGeodeticTransformation.cpp\
-  ../CoordinateSystem/CoordSysGeodeticTransformDef.cpp\
-  ../CoordinateSystem/CoordSysGeodeticTransformDefDictionary.cpp\
-  ../CoordinateSystem/CoordSysGeodeticTransformDefParams.cpp\
-  ../CoordinateSystem/CoordSysGeodeticTransformGridFile.cpp\
+  ../CoordinateSystem/CoordSysGeodeticAnalyticalTransformDefParams.cpp \
+  ../CoordinateSystem/CoordSysGeodeticInterpolationTransformDefParams.cpp \
+  ../CoordinateSystem/CoordSysGeodeticMultipleRegressionTransformDefParams.cpp \
+  ../CoordinateSystem/CoordSysGeodeticStandaloneTransformDefParams.cpp \
+  ../CoordinateSystem/CoordSysGeodeticPath.cpp \
+  ../CoordinateSystem/CoordSysGeodeticPathDictionary.cpp \
+  ../CoordinateSystem/CoordSysGeodeticPathElement.cpp \
+  ../CoordinateSystem/CoordSysGeodeticTransformation.cpp \
+  ../CoordinateSystem/CoordSysGeodeticTransformDef.cpp \
+  ../CoordinateSystem/CoordSysGeodeticTransformDefDictionary.cpp \
+  ../CoordinateSystem/CoordSysGeodeticTransformDefParams.cpp \
+  ../CoordinateSystem/CoordSysGeodeticTransformGridFile.cpp \
   ../CoordinateSystem/CoordSysMeasure.cpp \
   ../CoordinateSystem/CoordSysTransform.cpp \
   ../CoordinateSystem/CoordSysDictionaryUtility.cpp \
@@ -175,6 +176,7 @@
   ../CoordinateSystem/CoordSysGeodeticAnalyticalTransformDefParams.cpp\
   ../CoordinateSystem/CoordSysGeodeticInterpolationTransformDefParams.cpp\
   ../CoordinateSystem/CoordSysGeodeticMultipleRegressionTransformDefParams.cpp\
+  ../CoordinateSystem/CoordSysGeodeticStandaloneTransformDefParams.cpp\
   ../CoordinateSystem/CoordSysGeodeticPath.cpp\
   ../CoordinateSystem/CoordSysGeodeticPathDictionary.cpp\
   ../CoordinateSystem/CoordSysGeodeticPathElement.cpp\
@@ -335,6 +337,10 @@
   CoordinateSystem/CoordinateSystemFormatConverter.h \
   CoordinateSystem/CoordinateSystemGeodeticTransformation.h \
   CoordinateSystem/CoordinateSystemGeodeticTransformationMethod.h \
+  CoordinateSystem/CoordinateSystemGeodeticAnalyticalTransformationMethod.h \
+  CoordinateSystem/CoordinateSystemGeodeticMultipleRegressionTransformationMethod.h \
+  CoordinateSystem/CoordinateSystemGeodeticStandaloneTransformationMethod.h \
+  CoordinateSystem/CoordinateSystemGeodeticTransformGridFileFormat.h \
   CoordinateSystem/CoordinateSystemMathComparator.h \
   CoordinateSystem/CoordinateSystemMeasure.h \
   CoordinateSystem/CoordinateSystemProjectionCode.h \
@@ -396,17 +402,18 @@
   ../CoordinateSystem/CoordSysEnumDatum.h \
   ../CoordinateSystem/CoordSysEnumEllipsoid.h \
   ../CoordinateSystem/CoordSysFormatConverter.h \
-  ../CoordinateSystem/CoordSysGeodeticAnalyticalTransformDefParams.h\
-  ../CoordinateSystem/CoordSysGeodeticInterpolationTransformDefParams.h\
-  ../CoordinateSystem/CoordSysGeodeticMultipleRegressionTransformDefParams.h\
-  ../CoordinateSystem/CoordSysGeodeticPath.h\
-  ../CoordinateSystem/CoordSysGeodeticPathDictionary.h\
-  ../CoordinateSystem/CoordSysGeodeticPathElement.h\
-  ../CoordinateSystem/CoordSysGeodeticTransformation.h\
-  ../CoordinateSystem/CoordSysGeodeticTransformDef.h\
-  ../CoordinateSystem/CoordSysGeodeticTransformDefDictionary.h\
-  ../CoordinateSystem/CoordSysGeodeticTransformDefParams.h\
-  ../CoordinateSystem/CoordSysGeodeticTransformGridFile.h\
+  ../CoordinateSystem/CoordSysGeodeticAnalyticalTransformDefParams.h \
+  ../CoordinateSystem/CoordSysGeodeticInterpolationTransformDefParams.h \
+  ../CoordinateSystem/CoordSysGeodeticMultipleRegressionTransformDefParams.h \
+  ../CoordinateSystem/CoordSysGeodeticStandaloneTransformDefParams.h \
+  ../CoordinateSystem/CoordSysGeodeticPath.h \
+  ../CoordinateSystem/CoordSysGeodeticPathDictionary.h \
+  ../CoordinateSystem/CoordSysGeodeticPathElement.h \
+  ../CoordinateSystem/CoordSysGeodeticTransformation.h \
+  ../CoordinateSystem/CoordSysGeodeticTransformDef.h \
+  ../CoordinateSystem/CoordSysGeodeticTransformDefDictionary.h \
+  ../CoordinateSystem/CoordSysGeodeticTransformDefParams.h \
+  ../CoordinateSystem/CoordSysGeodeticTransformGridFile.h \
   ../CoordinateSystem/CoordSysMeasure.h \
   ../CoordinateSystem/CoordSysTransform.h \
   ../CoordinateSystem/CoordSysType.h \

Modified: trunk/MgDev/Web/src/DotNetUnmanagedApi/Geometry/GeometryApiGen.xml
===================================================================
--- trunk/MgDev/Web/src/DotNetUnmanagedApi/Geometry/GeometryApiGen.xml	2010-11-24 11:47:03 UTC (rev 5403)
+++ trunk/MgDev/Web/src/DotNetUnmanagedApi/Geometry/GeometryApiGen.xml	2010-11-24 14:36:36 UTC (rev 5404)
@@ -147,6 +147,7 @@
     <Header path="../../../../Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticAnalyticalTransformDefParams.h" />
     <Header path="../../../../Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticInterpolationTransformDefParams.h" />
     <Header path="../../../../Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticMultipleRegressionTransformDefParams.h" />
+    <Header path="../../../../Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticStandaloneTransformDefParams.h" />
     <Header path="../../../../Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticTransformDefDictionary.h" />
     <Header path="../../../../Common/Geometry/CoordinateSystem/CoordinateSystemDictionary.h" />
     <Header path="../../../../Common/Geometry/CoordinateSystem/CoordinateSystemDictionaryUtility.h" />

Modified: trunk/MgDev/Web/src/DotNetUnmanagedApi/Geometry/GeometryConstants.xml
===================================================================
--- trunk/MgDev/Web/src/DotNetUnmanagedApi/Geometry/GeometryConstants.xml	2010-11-24 11:47:03 UTC (rev 5403)
+++ trunk/MgDev/Web/src/DotNetUnmanagedApi/Geometry/GeometryConstants.xml	2010-11-24 14:36:36 UTC (rev 5404)
@@ -90,6 +90,7 @@
   <Class name="MgCoordinateSystemGeodeticAnalyticalTransformationMethod" />
   <Class name="MgCoordinateSystemGeodeticMultipleRegressionTransformationMethod" />
   <Class name="MgCoordinateSystemGeodeticTransformGridFileFormat" />
+  <Class name="MgCoordinateSystemGeodeticStandaloneTransformationMethod" />
 </Classes>
 
 <!--
@@ -123,6 +124,7 @@
     <Header path="../../../../Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticTransformDefType.h" />
     <Header path="../../../../Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticAnalyticalTransformationMethod.h" />
     <Header path="../../../../Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticMultipleRegressionTransformationMethod.h" />
+    <Header path="../../../../Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticStandaloneTransformationMethod.h" />
     <Header path="../../../../Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticTransformGridFileFormat.h" />
 
 </Headers>

Modified: trunk/MgDev/Web/src/JavaApi/Makefile.am
===================================================================
--- trunk/MgDev/Web/src/JavaApi/Makefile.am	2010-11-24 11:47:03 UTC (rev 5403)
+++ trunk/MgDev/Web/src/JavaApi/Makefile.am	2010-11-24 14:36:36 UTC (rev 5404)
@@ -192,6 +192,7 @@
     ../../../Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticAnalyticalTransformDefParams.h \
     ../../../Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticInterpolationTransformDefParams.h \
     ../../../Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticMultipleRegressionTransformDefParams.h \
+    ../../../Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticStandaloneTransformDefParams.h \
     ../../../Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticTransformDefDictionary.h \
     ../../../Common/Geometry/CoordinateSystem/CoordinateSystemDictionary.h \
     ../../../Common/Geometry/CoordinateSystem/CoordinateSystemDictionaryUtility.h \
@@ -245,6 +246,7 @@
     ../../../Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticTransformDefType.h \
     ../../../Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticAnalyticalTransformationMethod.h \
     ../../../Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticMultipleRegressionTransformationMethod.h \
+	../../../Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticStandaloneTransformationMethod.h \
     ../../../Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticTransformGridFileFormat.h \
     ../../../Common/PlatformBase/Data/BlobProperty.h \
     ../../../Common/PlatformBase/Data/BooleanProperty.h \

Modified: trunk/MgDev/Web/src/PhpApi/Makefile.am
===================================================================
--- trunk/MgDev/Web/src/PhpApi/Makefile.am	2010-11-24 11:47:03 UTC (rev 5403)
+++ trunk/MgDev/Web/src/PhpApi/Makefile.am	2010-11-24 14:36:36 UTC (rev 5404)
@@ -190,6 +190,7 @@
     ../../../Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticAnalyticalTransformDefParams.h \
     ../../../Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticInterpolationTransformDefParams.h \
     ../../../Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticMultipleRegressionTransformDefParams.h \
+    ../../../Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticStandaloneTransformDefParams.h \
     ../../../Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticTransformDefDictionary.h \
     ../../../Common/Geometry/CoordinateSystem/CoordinateSystemDictionary.h \
     ../../../Common/Geometry/CoordinateSystem/CoordinateSystemDictionaryUtility.h \
@@ -243,6 +244,7 @@
     ../../../Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticTransformDefType.h \
     ../../../Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticAnalyticalTransformationMethod.h \
     ../../../Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticMultipleRegressionTransformationMethod.h \
+	../../../Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticStandaloneTransformationMethod.h \
     ../../../Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticTransformGridFileFormat.h \
     ../../../Common/PlatformBase/Data/BlobProperty.h \
     ../../../Common/PlatformBase/Data/BooleanProperty.h \



More information about the mapguide-commits mailing list