[mapguide-commits] r5170 - in trunk/MgDev/Common: CoordinateSystem Geometry/CoordinateSystem

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Tue Sep 21 10:52:39 EDT 2010


Author: waltweltonlair
Date: 2010-09-21 14:52:39 +0000 (Tue, 21 Sep 2010)
New Revision: 5170

Modified:
   trunk/MgDev/Common/CoordinateSystem/CoordSysDictionaryBase.cpp
   trunk/MgDev/Common/CoordinateSystem/CoordSysDictionaryBase.h
   trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticAnalyticalTransformDefParams.cpp
   trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticAnalyticalTransformDefParams.h
   trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticInterpolationTransformDefParams.cpp
   trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticInterpolationTransformDefParams.h
   trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticMultipleRegressionTransformDefParams.cpp
   trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticMultipleRegressionTransformDefParams.h
   trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticPath.cpp
   trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticPath.h
   trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticPathDictionary.cpp
   trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticPathDictionary.h
   trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticPathElement.cpp
   trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticPathElement.h
   trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticTransformDef.cpp
   trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticTransformDef.h
   trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticTransformDefDictionary.cpp
   trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticTransformDefDictionary.h
   trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticTransformDefParams.cpp
   trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticTransformDefParams.h
   trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticTransformGridFile.cpp
   trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticTransformGridFile.h
   trunk/MgDev/Common/CoordinateSystem/CoordSysMacro.h
   trunk/MgDev/Common/CoordinateSystem/namestruct.cpp
   trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticAnalyticalTransformDefParams.h
   trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticAnalyticalTransformationMethod.h
   trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticInterpolationTransformDefParams.h
   trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticMultipleRegressionTransformDefParams.h
   trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticMultipleRegressionTransformationMethod.h
   trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticPath.h
   trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticPathDictionary.h
   trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticPathElement.h
   trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticTransformDef.h
   trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticTransformDefDictionary.h
   trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticTransformDefParams.h
   trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticTransformDefType.h
   trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticTransformGridFile.h
   trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticTransformGridFileFormat.h
Log:
Add svn:eol-style attribute to newly added file Geometry / CoordinateSystem files.

Modified: trunk/MgDev/Common/CoordinateSystem/CoordSysDictionaryBase.cpp
===================================================================
--- trunk/MgDev/Common/CoordinateSystem/CoordSysDictionaryBase.cpp	2010-09-21 08:36:03 UTC (rev 5169)
+++ trunk/MgDev/Common/CoordinateSystem/CoordSysDictionaryBase.cpp	2010-09-21 14:52:39 UTC (rev 5170)
@@ -1,375 +1,375 @@
-//
-//  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
-//
-
-#ifdef BUILD_DICTIONARY_BASE //set this define before including CoordSysDictionaryBase.cpp; otherwise nothing will be built
-
-//////////////////////////////////////////////////////////////////////////////////////////////////
-DICTIONARY_BASE_TEMPLATE
-DICTIONARY_BASE_TEMPLATE_METHOD::CCoordinateSystemDictionaryBase(MgCoordinateSystemCatalog *pCatalog)
-    : dictMagicNumber(0) /* no yet initialized - will be read in [SetFileName] */, dictionaryItems(NULL)
-{
-    if (NULL == pCatalog)
-        throw new MgNullArgumentException(L"CCoordinateSystemDictionaryBase.ctor()", __LINE__, __WFILE__, NULL, L"", NULL);
-
-    this->catalog = SAFE_ADDREF(pCatalog); // 'Ptr = ' does not increment the ref counter
-    this->fileName = defaultFileName; //template default parameter
-}
-
-DICTIONARY_BASE_TEMPLATE
-DICTIONARY_BASE_TEMPLATE_METHOD::~CCoordinateSystemDictionaryBase()
-{
-    this->catalog = NULL;
-    
-    delete this->dictionaryItems;
-    this->dictionaryItems = NULL;
-}
-
-//////////////////////////////////////////////////////////////////////////////////////////////////
-DICTIONARY_BASE_TEMPLATE
-void DICTIONARY_BASE_TEMPLATE_METHOD::Dispose()
-{
-    delete this;
-}
-
-//////////////////////////////////////////////////////////////////////////////////////////////////
-DICTIONARY_BASE_TEMPLATE
-MgCoordinateSystemCatalog* DICTIONARY_BASE_TEMPLATE_METHOD::GetCatalog()
-{
-    return SAFE_ADDREF(this->catalog.p);
-}
-
-//////////////////////////////////////////////////////////////////////////////////////////////////
-DICTIONARY_BASE_TEMPLATE
-STRING DICTIONARY_BASE_TEMPLATE_METHOD::GetDefaultFileName()
-{
-    return defaultFileName; /* from template definition; *NOT* this->fileName ! */
-}
-
-//////////////////////////////////////////////////////////////////////////////////////////////////
-DICTIONARY_BASE_TEMPLATE
-STRING DICTIONARY_BASE_TEMPLATE_METHOD::GetFileName()
-{
-    return this->fileName; /* changeable via SetFileName*/
-}
-
-//////////////////////////////////////////////////////////////////////////////////////////////////
-DICTIONARY_BASE_TEMPLATE
-void DICTIONARY_BASE_TEMPLATE_METHOD::SetFileName(CREFSTRING sFileName)
-{
-    ::SetDictionaryFileName(
-        sFileName,
-        this->catalog->GetDictionaryDir(),
-        this->dictMagicNumber, //will be set
-        definitionAccess->magicNumberCallback, //open mode
-        definitionAccess->csMapTargetFileName, //CS Map file target
-        L"CoordSysDictionaryBase.SetFileName"); //context
-
-    //the filename has been set for CS library; now set it for this object...
-    this->fileName = sFileName;
-
-    //...and clean up the list of entries we might have already read from the old dictionary file
-    delete this->dictionaryItems;
-    this->dictionaryItems = NULL;
-}
-
-//////////////////////////////////////////////////////////////////////////////////////////////////
-DICTIONARY_BASE_TEMPLATE
-STRING DICTIONARY_BASE_TEMPLATE_METHOD::GetPath() /* the full path to the file we're currently using */
-{
-    MG_TRY()
-    
-    return (this->catalog->GetDictionaryDir() + this->fileName);
-    
-    MG_CATCH_AND_THROW(L"CCoordinateSystemDictionaryBase.GetPath")
-
-    _ASSERT(false); //OOM - unable to create the exception object?
-    return NULL;
-}
-
-//////////////////////////////////////////////////////////////////////////////////////////////////
-DICTIONARY_BASE_TEMPLATE
-UINT32 DICTIONARY_BASE_TEMPLATE_METHOD::GetSize()
-{
-    //If we have a summary available, we can just return its size.
-    if (NULL != this->dictionaryItems)
-    {
-        return static_cast<UINT32>(this->dictionaryItems->size());
-    }
-
-    SmartCriticalClass critical(true);
-    
-    STRING strPath = this->GetPath();
-    csFILE *pFile = MentorDictionary::Open(this->dictMagicNumber, definitionAccess->magicNumberCallback, strPath.c_str(), Read);
-
-    _ASSERT(NULL != pFile);
-    UINT32 nSize;
-
-    MG_TRY()
-
-    //We're open, but no summary is available.  We need to examine
-    //the file itself to find out how big it is.
-    INT32 pos = CS_ftell(pFile);
-    CS_fseek(pFile, 0, SEEK_END);
-    UINT32 ulFileBytes = 1 + CS_ftell(pFile);
-    CS_fseek(pFile, pos, SEEK_SET);
-    UINT32 nRecSize = sizeof(U);
-
-    //take the complete file size; subtract the "header" and divide by the size of the structs contained
-    nSize = (ulFileBytes - sizeof(this->dictMagicNumber)) / nRecSize;
-
-    MG_CATCH(L"CCoordinateSystemDictionaryBase.GetSize")
-
-    if(NULL != pFile && (0 != CS_fclose(pFile)))
-    {
-        throw new MgFileIoException(L"CCoordinateSystemDictionaryBase.GetSize", __LINE__, __WFILE__, NULL, NULL, NULL);
-    }
-
-    MG_THROW()
-
-    return nSize;
-}
-
-//////////////////////////////////////////////////////////////////////////////////////////////////
-DICTIONARY_BASE_TEMPLATE
-void DICTIONARY_BASE_TEMPLATE_METHOD::Add(MgGuardDisposable* pDefinition)
-{
-    //we won't take ownership of [pDefinition]; i.e. it can be deleted by the caller after we're done here
-    if (NULL == pDefinition)
-        throw new MgNullArgumentException(L"CCoordinateSystemDictionaryBase.Add", __LINE__, __WFILE__, NULL, L"", NULL);
-
-    T* pDictionaryDef = dynamic_cast<T*>(pDefinition);
-    if (!pDictionaryDef)
-        throw new MgInvalidArgumentException(L"CCoordinateSystemDictionaryBase.Add", __LINE__, __WFILE__, NULL, L"CCoordinateSystemDictionaryBase", NULL);
-
-    MG_TRY()
-
-    //::UpdateDef will lock the (file) resource via [SmartCriticalClass critical(true);]
-    MentorDictionary::UpdateDef<U, T>(
-       this->dictionaryItems, /* can be null in case no enumerator has been created yet or this dictionary isn't set up for caching */
-        definitionAccess->readDefinitionName,
-        definitionAccess->readDefinitionDescription,
-        definitionAccess->validateDefinition,
-        definitionAccess->readDefinition,
-        definitionAccess->updateDefinition,
-        definitionAccess->setupCsStructFromMgInstance,
-        pDictionaryDef,
-        false); /* bAlreadyExists - we want to create a new one, i.e. the definition must not exist yet */
-
-    MG_CATCH_AND_THROW(L"CCoordinateSystemDictionaryBase.Add")
-}
-
-//////////////////////////////////////////////////////////////////////////////////////////////////
-DICTIONARY_BASE_TEMPLATE
-void DICTIONARY_BASE_TEMPLATE_METHOD::Remove(CREFSTRING sName)
-{
-    MG_TRY()
-
-    MentorDictionary::RemoveDef<U>(
-        this->dictionaryItems, /* can be null in case no enumerator has been created yet or this dictionary isn't set up for caching */
-        definitionAccess->readDefinition,
-        definitionAccess->deleteDefinition,
-        sName.c_str());
-
-    MG_CATCH_AND_THROW(L"CCoordinateSystemDictionaryBase.Remove")    
-}
-
-//////////////////////////////////////////////////////////////////////////////////////////////////
-DICTIONARY_BASE_TEMPLATE
-void DICTIONARY_BASE_TEMPLATE_METHOD::Modify(MgGuardDisposable *pDefinition)
-{
-    if (NULL == pDefinition)
-        throw new MgNullArgumentException(L"CCoordinateSystemDictionaryBase.Modify", __LINE__, __WFILE__, NULL, L"", NULL);
-
-    T* pDictionaryDef = dynamic_cast<T*>(pDefinition);
-    if (!pDictionaryDef)
-        throw new MgInvalidArgumentException(L"CCoordinateSystemDictionaryBase.Modify", __LINE__, __WFILE__, NULL, L"CCoordinateSystemDictionaryBase", NULL);
-
-    MG_TRY()
-
-    //::UpdateDef will lock the (file) resource via [SmartCriticalClass critical(true);]
-
-    //we don't pass our [this->items] here, as the dictionary is accessed anyway;
-    //if the caller passes us an unknown definition, we'll fail anyway
-    //with an exception what is per se slower than having success here
-    MentorDictionary::UpdateDef<U, T>(
-        this->dictionaryItems, /* can be null in case no enumerator has been created yet or this dictionary isn't set up for caching */
-        definitionAccess->readDefinitionName,
-        definitionAccess->readDefinitionDescription,
-        definitionAccess->validateDefinition,
-        definitionAccess->readDefinition,
-        definitionAccess->updateDefinition,
-        definitionAccess->setupCsStructFromMgInstance,
-        pDictionaryDef,
-        true); //the definition has to exist
-
-    MG_CATCH_AND_THROW(L"CCoordinateSystemDictionaryBase.Modify")
-}
-
-//////////////////////////////////////////////////////////////////////////////////////////////////
-DICTIONARY_BASE_TEMPLATE
-MgGuardDisposable* DICTIONARY_BASE_TEMPLATE_METHOD::Get(CREFSTRING sName)
-{
-    U *pDef = NULL;
-    char *pName = NULL;
-
-    //Get the name to search for
-    pName = Convert_Wide_To_Ascii(sName.c_str()); //need to delete [] pName
-    Ptr<T> pDefinition;
-
-    MG_TRY()
-
-    //make sure, we've exclusive access here
-    SmartCriticalClass critical(true);
-    
-    //Look in the dictionary
-    pDef = definitionAccess->readDefinition(pName);
-    if (NULL == pDef)
-    {
-        MgStringCollection whatArguments;
-        whatArguments.Add(sName);
-        throw new MgCoordinateSystemLoadFailedException(L"CCoordinateSystemDictionaryBase.Get", __LINE__, __WFILE__, &whatArguments, L"", NULL);
-    }
-
-    pDefinition = this->NewItem(); //no AddRef; release if needed
-    if (NULL == pDefinition.p) //ABA ???
-        throw new MgOutOfMemoryException(L"CCoordinateSystemDictionaryBase.Get", __LINE__, __WFILE__, NULL, L"", NULL);
-
-    //we've created the Mg instance, we got the CS_Map definition; now let the Mg instance initialize itself from the
-    //struct;
-    //NOTE: [fullInitialize] doesn't take ownership of [pDef] - we've to release it when done
-    definitionAccess->fullInitialize(pDefinition, pDef, this->catalog);
-
-    MG_CATCH(L"CCoordinateSystemDictionaryBase.Get")
-
-    /* cleanup - MG_CATCH() catches every exception; i.e. we'll go through here regardless of whether an exception occurred or not */
-    
-    CS_free(pDef);
-    delete [] pName;
-
-    MG_THROW()
-
-    return pDefinition.Detach(); //done - detach the pointer so the caller can take ownership
-}
-
-//////////////////////////////////////////////////////////////////////////////////////////////////
-DICTIONARY_BASE_TEMPLATE
-bool DICTIONARY_BASE_TEMPLATE_METHOD::Has(CREFSTRING sName)
-{
-    MG_TRY()
-    
-    try
-    {
-        Ptr<MgGuardDisposable> definition = this->Get(sName);
-        _ASSERT(NULL != definition);
-
-        return NULL != definition;
-    }
-    catch(MgCoordinateSystemLoadFailedException* loadFailedException)
-    {
-        loadFailedException->Release();
-        return false;
-    }
-
-    MG_CATCH_AND_THROW(L"CCoordinateSystemDictionaryBase.Has")
-
-    _ASSERT(false);
-    return false;
-}
-
-//////////////////////////////////////////////////////////////////////////////////////////////////
-DICTIONARY_BASE_TEMPLATE
-MgCoordinateSystemEnum* DICTIONARY_BASE_TEMPLATE_METHOD::GetEnum()
-{
-    //we don't take ownership; the caller has to free it
-    return this->GetEnumImp();
-}
-
-//////////////////////////////////////////////////////////////////////////////////////////////////
-DICTIONARY_BASE_TEMPLATE
-CCoordinateSystemEnum* DICTIONARY_BASE_TEMPLATE_METHOD::GetEnumImp()
-{
-    Ptr<CCoordinateSystemEnum> pNew;
-    
-    csFILE *dictionaryFile = NULL;
-    SmartCriticalClass critical(true);
-
-    CSystemNameDescriptionMap* allDictionaryEntries = NULL;
-
-    MG_TRY()
-
-    //do we have to cache the entries read from the dictionary file and have we already read them before?
-    if (!cacheDictionaryEntries || NULL == this->dictionaryItems)
-    {
-        //Not read yet - try to build the map from the entries found in the dictionary file
-        //
-        STRING strPath = this->GetPath();
-    
-        //[Open] throws an exception, if the dictionary file couldn't be opened
-        dictionaryFile = MentorDictionary::Open(this->dictMagicNumber, definitionAccess->magicNumberCallback, strPath.c_str(), Read);
-
-        allDictionaryEntries = MentorDictionary::GenerateSystemNameDescriptionMap<U>(
-            dictionaryFile,
-            definitionAccess->readDefinitionName,
-            definitionAccess->readDefinitionDescription,
-            definitionAccess->readAllDefinitions);
-        
-        if (NULL == allDictionaryEntries) //whatever happend here - the dictionay file seems to be invalid
-            throw new MgCoordinateSystemLoadFailedException(L"CCoordinateSystemDictionaryBase.GetEnumImp", __LINE__, __WFILE__, NULL, L"", NULL);
-    }
-    else
-    {
-        allDictionaryEntries = this->dictionaryItems;
-    }
-
-    //create our enumerator we're returning to the caller
-    pNew = new CCoordinateSystemEnum;
-    pNew->Initialize(this, allDictionaryEntries /* might point to [this->dictionaryItems] */);
-
-    MG_CATCH(L"CCoordinateSystemDictionaryBase.GetEnumImp")
-
-    //in either case, try to close the dictionary file
-    if (NULL != dictionaryFile && 0 != CS_fclose(dictionaryFile) //closing went through?
-        && NULL == mgException.p)
-        //if there hasn't yet an exception occurred we now have one
-        //if there was one already we (unfortunately) do now swallow the MgFileIoException
-        mgException = new MgFileIoException(L"CCoordinateSystemDictionaryBase.GetEnumImp", __LINE__, __WFILE__, NULL, L"MgCoordinateSystemDictionaryCloseFailedException", NULL);
-
-    MG_THROW()
-
-    //cache the map of entries if we did succeed
-    if (cacheDictionaryEntries)
-    {
-        //this will be false, if this dictionary object is shared between multiple threads; however, the dictionary must not be shared between threads
-        //without proper precautions being taken
-        _ASSERT(NULL != allDictionaryEntries);
-        _ASSERT(NULL == this->dictionaryItems || (void*)this->dictionaryItems == (void*)allDictionaryEntries);
-        
-        this->dictionaryItems = allDictionaryEntries; //cache the map now
-    }
-
-    return pNew.Detach();
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-DICTIONARY_BASE_TEMPLATE
-T* DICTIONARY_BASE_TEMPLATE_METHOD::NewItem()
-{
-    //new() throws an exception in case allocation fails; we don't take ownership
-    return new T(this->catalog); //the callee has to incr. the ref counter, if it needs the catalog object
-}
-
+//
+//  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
+//
+
+#ifdef BUILD_DICTIONARY_BASE //set this define before including CoordSysDictionaryBase.cpp; otherwise nothing will be built
+
+//////////////////////////////////////////////////////////////////////////////////////////////////
+DICTIONARY_BASE_TEMPLATE
+DICTIONARY_BASE_TEMPLATE_METHOD::CCoordinateSystemDictionaryBase(MgCoordinateSystemCatalog *pCatalog)
+    : dictMagicNumber(0) /* no yet initialized - will be read in [SetFileName] */, dictionaryItems(NULL)
+{
+    if (NULL == pCatalog)
+        throw new MgNullArgumentException(L"CCoordinateSystemDictionaryBase.ctor()", __LINE__, __WFILE__, NULL, L"", NULL);
+
+    this->catalog = SAFE_ADDREF(pCatalog); // 'Ptr = ' does not increment the ref counter
+    this->fileName = defaultFileName; //template default parameter
+}
+
+DICTIONARY_BASE_TEMPLATE
+DICTIONARY_BASE_TEMPLATE_METHOD::~CCoordinateSystemDictionaryBase()
+{
+    this->catalog = NULL;
+    
+    delete this->dictionaryItems;
+    this->dictionaryItems = NULL;
+}
+
+//////////////////////////////////////////////////////////////////////////////////////////////////
+DICTIONARY_BASE_TEMPLATE
+void DICTIONARY_BASE_TEMPLATE_METHOD::Dispose()
+{
+    delete this;
+}
+
+//////////////////////////////////////////////////////////////////////////////////////////////////
+DICTIONARY_BASE_TEMPLATE
+MgCoordinateSystemCatalog* DICTIONARY_BASE_TEMPLATE_METHOD::GetCatalog()
+{
+    return SAFE_ADDREF(this->catalog.p);
+}
+
+//////////////////////////////////////////////////////////////////////////////////////////////////
+DICTIONARY_BASE_TEMPLATE
+STRING DICTIONARY_BASE_TEMPLATE_METHOD::GetDefaultFileName()
+{
+    return defaultFileName; /* from template definition; *NOT* this->fileName ! */
+}
+
+//////////////////////////////////////////////////////////////////////////////////////////////////
+DICTIONARY_BASE_TEMPLATE
+STRING DICTIONARY_BASE_TEMPLATE_METHOD::GetFileName()
+{
+    return this->fileName; /* changeable via SetFileName*/
+}
+
+//////////////////////////////////////////////////////////////////////////////////////////////////
+DICTIONARY_BASE_TEMPLATE
+void DICTIONARY_BASE_TEMPLATE_METHOD::SetFileName(CREFSTRING sFileName)
+{
+    ::SetDictionaryFileName(
+        sFileName,
+        this->catalog->GetDictionaryDir(),
+        this->dictMagicNumber, //will be set
+        definitionAccess->magicNumberCallback, //open mode
+        definitionAccess->csMapTargetFileName, //CS Map file target
+        L"CoordSysDictionaryBase.SetFileName"); //context
+
+    //the filename has been set for CS library; now set it for this object...
+    this->fileName = sFileName;
+
+    //...and clean up the list of entries we might have already read from the old dictionary file
+    delete this->dictionaryItems;
+    this->dictionaryItems = NULL;
+}
+
+//////////////////////////////////////////////////////////////////////////////////////////////////
+DICTIONARY_BASE_TEMPLATE
+STRING DICTIONARY_BASE_TEMPLATE_METHOD::GetPath() /* the full path to the file we're currently using */
+{
+    MG_TRY()
+    
+    return (this->catalog->GetDictionaryDir() + this->fileName);
+    
+    MG_CATCH_AND_THROW(L"CCoordinateSystemDictionaryBase.GetPath")
+
+    _ASSERT(false); //OOM - unable to create the exception object?
+    return NULL;
+}
+
+//////////////////////////////////////////////////////////////////////////////////////////////////
+DICTIONARY_BASE_TEMPLATE
+UINT32 DICTIONARY_BASE_TEMPLATE_METHOD::GetSize()
+{
+    //If we have a summary available, we can just return its size.
+    if (NULL != this->dictionaryItems)
+    {
+        return static_cast<UINT32>(this->dictionaryItems->size());
+    }
+
+    SmartCriticalClass critical(true);
+    
+    STRING strPath = this->GetPath();
+    csFILE *pFile = MentorDictionary::Open(this->dictMagicNumber, definitionAccess->magicNumberCallback, strPath.c_str(), Read);
+
+    _ASSERT(NULL != pFile);
+    UINT32 nSize;
+
+    MG_TRY()
+
+    //We're open, but no summary is available.  We need to examine
+    //the file itself to find out how big it is.
+    INT32 pos = CS_ftell(pFile);
+    CS_fseek(pFile, 0, SEEK_END);
+    UINT32 ulFileBytes = 1 + CS_ftell(pFile);
+    CS_fseek(pFile, pos, SEEK_SET);
+    UINT32 nRecSize = sizeof(U);
+
+    //take the complete file size; subtract the "header" and divide by the size of the structs contained
+    nSize = (ulFileBytes - sizeof(this->dictMagicNumber)) / nRecSize;
+
+    MG_CATCH(L"CCoordinateSystemDictionaryBase.GetSize")
+
+    if(NULL != pFile && (0 != CS_fclose(pFile)))
+    {
+        throw new MgFileIoException(L"CCoordinateSystemDictionaryBase.GetSize", __LINE__, __WFILE__, NULL, NULL, NULL);
+    }
+
+    MG_THROW()
+
+    return nSize;
+}
+
+//////////////////////////////////////////////////////////////////////////////////////////////////
+DICTIONARY_BASE_TEMPLATE
+void DICTIONARY_BASE_TEMPLATE_METHOD::Add(MgGuardDisposable* pDefinition)
+{
+    //we won't take ownership of [pDefinition]; i.e. it can be deleted by the caller after we're done here
+    if (NULL == pDefinition)
+        throw new MgNullArgumentException(L"CCoordinateSystemDictionaryBase.Add", __LINE__, __WFILE__, NULL, L"", NULL);
+
+    T* pDictionaryDef = dynamic_cast<T*>(pDefinition);
+    if (!pDictionaryDef)
+        throw new MgInvalidArgumentException(L"CCoordinateSystemDictionaryBase.Add", __LINE__, __WFILE__, NULL, L"CCoordinateSystemDictionaryBase", NULL);
+
+    MG_TRY()
+
+    //::UpdateDef will lock the (file) resource via [SmartCriticalClass critical(true);]
+    MentorDictionary::UpdateDef<U, T>(
+       this->dictionaryItems, /* can be null in case no enumerator has been created yet or this dictionary isn't set up for caching */
+        definitionAccess->readDefinitionName,
+        definitionAccess->readDefinitionDescription,
+        definitionAccess->validateDefinition,
+        definitionAccess->readDefinition,
+        definitionAccess->updateDefinition,
+        definitionAccess->setupCsStructFromMgInstance,
+        pDictionaryDef,
+        false); /* bAlreadyExists - we want to create a new one, i.e. the definition must not exist yet */
+
+    MG_CATCH_AND_THROW(L"CCoordinateSystemDictionaryBase.Add")
+}
+
+//////////////////////////////////////////////////////////////////////////////////////////////////
+DICTIONARY_BASE_TEMPLATE
+void DICTIONARY_BASE_TEMPLATE_METHOD::Remove(CREFSTRING sName)
+{
+    MG_TRY()
+
+    MentorDictionary::RemoveDef<U>(
+        this->dictionaryItems, /* can be null in case no enumerator has been created yet or this dictionary isn't set up for caching */
+        definitionAccess->readDefinition,
+        definitionAccess->deleteDefinition,
+        sName.c_str());
+
+    MG_CATCH_AND_THROW(L"CCoordinateSystemDictionaryBase.Remove")    
+}
+
+//////////////////////////////////////////////////////////////////////////////////////////////////
+DICTIONARY_BASE_TEMPLATE
+void DICTIONARY_BASE_TEMPLATE_METHOD::Modify(MgGuardDisposable *pDefinition)
+{
+    if (NULL == pDefinition)
+        throw new MgNullArgumentException(L"CCoordinateSystemDictionaryBase.Modify", __LINE__, __WFILE__, NULL, L"", NULL);
+
+    T* pDictionaryDef = dynamic_cast<T*>(pDefinition);
+    if (!pDictionaryDef)
+        throw new MgInvalidArgumentException(L"CCoordinateSystemDictionaryBase.Modify", __LINE__, __WFILE__, NULL, L"CCoordinateSystemDictionaryBase", NULL);
+
+    MG_TRY()
+
+    //::UpdateDef will lock the (file) resource via [SmartCriticalClass critical(true);]
+
+    //we don't pass our [this->items] here, as the dictionary is accessed anyway;
+    //if the caller passes us an unknown definition, we'll fail anyway
+    //with an exception what is per se slower than having success here
+    MentorDictionary::UpdateDef<U, T>(
+        this->dictionaryItems, /* can be null in case no enumerator has been created yet or this dictionary isn't set up for caching */
+        definitionAccess->readDefinitionName,
+        definitionAccess->readDefinitionDescription,
+        definitionAccess->validateDefinition,
+        definitionAccess->readDefinition,
+        definitionAccess->updateDefinition,
+        definitionAccess->setupCsStructFromMgInstance,
+        pDictionaryDef,
+        true); //the definition has to exist
+
+    MG_CATCH_AND_THROW(L"CCoordinateSystemDictionaryBase.Modify")
+}
+
+//////////////////////////////////////////////////////////////////////////////////////////////////
+DICTIONARY_BASE_TEMPLATE
+MgGuardDisposable* DICTIONARY_BASE_TEMPLATE_METHOD::Get(CREFSTRING sName)
+{
+    U *pDef = NULL;
+    char *pName = NULL;
+
+    //Get the name to search for
+    pName = Convert_Wide_To_Ascii(sName.c_str()); //need to delete [] pName
+    Ptr<T> pDefinition;
+
+    MG_TRY()
+
+    //make sure, we've exclusive access here
+    SmartCriticalClass critical(true);
+    
+    //Look in the dictionary
+    pDef = definitionAccess->readDefinition(pName);
+    if (NULL == pDef)
+    {
+        MgStringCollection whatArguments;
+        whatArguments.Add(sName);
+        throw new MgCoordinateSystemLoadFailedException(L"CCoordinateSystemDictionaryBase.Get", __LINE__, __WFILE__, &whatArguments, L"", NULL);
+    }
+
+    pDefinition = this->NewItem(); //no AddRef; release if needed
+    if (NULL == pDefinition.p) //ABA ???
+        throw new MgOutOfMemoryException(L"CCoordinateSystemDictionaryBase.Get", __LINE__, __WFILE__, NULL, L"", NULL);
+
+    //we've created the Mg instance, we got the CS_Map definition; now let the Mg instance initialize itself from the
+    //struct;
+    //NOTE: [fullInitialize] doesn't take ownership of [pDef] - we've to release it when done
+    definitionAccess->fullInitialize(pDefinition, pDef, this->catalog);
+
+    MG_CATCH(L"CCoordinateSystemDictionaryBase.Get")
+
+    /* cleanup - MG_CATCH() catches every exception; i.e. we'll go through here regardless of whether an exception occurred or not */
+    
+    CS_free(pDef);
+    delete [] pName;
+
+    MG_THROW()
+
+    return pDefinition.Detach(); //done - detach the pointer so the caller can take ownership
+}
+
+//////////////////////////////////////////////////////////////////////////////////////////////////
+DICTIONARY_BASE_TEMPLATE
+bool DICTIONARY_BASE_TEMPLATE_METHOD::Has(CREFSTRING sName)
+{
+    MG_TRY()
+    
+    try
+    {
+        Ptr<MgGuardDisposable> definition = this->Get(sName);
+        _ASSERT(NULL != definition);
+
+        return NULL != definition;
+    }
+    catch(MgCoordinateSystemLoadFailedException* loadFailedException)
+    {
+        loadFailedException->Release();
+        return false;
+    }
+
+    MG_CATCH_AND_THROW(L"CCoordinateSystemDictionaryBase.Has")
+
+    _ASSERT(false);
+    return false;
+}
+
+//////////////////////////////////////////////////////////////////////////////////////////////////
+DICTIONARY_BASE_TEMPLATE
+MgCoordinateSystemEnum* DICTIONARY_BASE_TEMPLATE_METHOD::GetEnum()
+{
+    //we don't take ownership; the caller has to free it
+    return this->GetEnumImp();
+}
+
+//////////////////////////////////////////////////////////////////////////////////////////////////
+DICTIONARY_BASE_TEMPLATE
+CCoordinateSystemEnum* DICTIONARY_BASE_TEMPLATE_METHOD::GetEnumImp()
+{
+    Ptr<CCoordinateSystemEnum> pNew;
+    
+    csFILE *dictionaryFile = NULL;
+    SmartCriticalClass critical(true);
+
+    CSystemNameDescriptionMap* allDictionaryEntries = NULL;
+
+    MG_TRY()
+
+    //do we have to cache the entries read from the dictionary file and have we already read them before?
+    if (!cacheDictionaryEntries || NULL == this->dictionaryItems)
+    {
+        //Not read yet - try to build the map from the entries found in the dictionary file
+        //
+        STRING strPath = this->GetPath();
+    
+        //[Open] throws an exception, if the dictionary file couldn't be opened
+        dictionaryFile = MentorDictionary::Open(this->dictMagicNumber, definitionAccess->magicNumberCallback, strPath.c_str(), Read);
+
+        allDictionaryEntries = MentorDictionary::GenerateSystemNameDescriptionMap<U>(
+            dictionaryFile,
+            definitionAccess->readDefinitionName,
+            definitionAccess->readDefinitionDescription,
+            definitionAccess->readAllDefinitions);
+        
+        if (NULL == allDictionaryEntries) //whatever happend here - the dictionay file seems to be invalid
+            throw new MgCoordinateSystemLoadFailedException(L"CCoordinateSystemDictionaryBase.GetEnumImp", __LINE__, __WFILE__, NULL, L"", NULL);
+    }
+    else
+    {
+        allDictionaryEntries = this->dictionaryItems;
+    }
+
+    //create our enumerator we're returning to the caller
+    pNew = new CCoordinateSystemEnum;
+    pNew->Initialize(this, allDictionaryEntries /* might point to [this->dictionaryItems] */);
+
+    MG_CATCH(L"CCoordinateSystemDictionaryBase.GetEnumImp")
+
+    //in either case, try to close the dictionary file
+    if (NULL != dictionaryFile && 0 != CS_fclose(dictionaryFile) //closing went through?
+        && NULL == mgException.p)
+        //if there hasn't yet an exception occurred we now have one
+        //if there was one already we (unfortunately) do now swallow the MgFileIoException
+        mgException = new MgFileIoException(L"CCoordinateSystemDictionaryBase.GetEnumImp", __LINE__, __WFILE__, NULL, L"MgCoordinateSystemDictionaryCloseFailedException", NULL);
+
+    MG_THROW()
+
+    //cache the map of entries if we did succeed
+    if (cacheDictionaryEntries)
+    {
+        //this will be false, if this dictionary object is shared between multiple threads; however, the dictionary must not be shared between threads
+        //without proper precautions being taken
+        _ASSERT(NULL != allDictionaryEntries);
+        _ASSERT(NULL == this->dictionaryItems || (void*)this->dictionaryItems == (void*)allDictionaryEntries);
+        
+        this->dictionaryItems = allDictionaryEntries; //cache the map now
+    }
+
+    return pNew.Detach();
+}
+
+////////////////////////////////////////////////////////////////////////////////////////////////////
+DICTIONARY_BASE_TEMPLATE
+T* DICTIONARY_BASE_TEMPLATE_METHOD::NewItem()
+{
+    //new() throws an exception in case allocation fails; we don't take ownership
+    return new T(this->catalog); //the callee has to incr. the ref counter, if it needs the catalog object
+}
+
 #endif //BUILD_DICTIONARY_BASE
\ No newline at end of file


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

Modified: trunk/MgDev/Common/CoordinateSystem/CoordSysDictionaryBase.h
===================================================================
--- trunk/MgDev/Common/CoordinateSystem/CoordSysDictionaryBase.h	2010-09-21 08:36:03 UTC (rev 5169)
+++ trunk/MgDev/Common/CoordinateSystem/CoordSysDictionaryBase.h	2010-09-21 14:52:39 UTC (rev 5170)
@@ -1,133 +1,133 @@
-//
-//  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 _COORDSYSDICTIONARYBASE_H_
-#define _COORDSYSDICTIONARYBASE_H_
-
-#define BUILD_DICTIONARY_BASE //this is needed to build the content in CoordSysDictionaryBase.cpp
-
-#define MAP_CS_DEFAULT_FILE_NAME(x) L## x //builds the wchar_t default filename from the #define found in cs_map.h, e.g. from [cs_GP_NAME]
-#define DICTIONARY_FILE_NAME(x) DefaultDictName##x //defines the name of the extern variable we need to initialize each template class with
-#define DECLARE_DICTIONARY_FILE_NAME(x) extern const ACE_TCHAR DefaultDictName##x[] //declares(!) the extern variable we need for the template class
-#define DEFINE_DICTIONARY_FILE_NAME(x,y) extern const ACE_TCHAR DefaultDictName##x[] = MAP_CS_DEFAULT_FILE_NAME(y) //defines(!) the extern variable we need for the template class
-
-//typedef of the callback that's being invoked, when a dictionary file is being opened; the invoked method 
-//has to specify the open mode the target dictionary file has to be opened with; the [long] parameter is the magic header number
-typedef CsDictionaryOpenMode (*MagicNumberCallback)(long);
-
-template<class T/* Mg API class */, class U /* CS map struct */> 
-struct DefinitionAccess //carries all method pointers needed by this dictionary base implementation so it can interact with the Mg API and the CS Map API
-{
-public:
-    DefinitionAccess(
-        U* (*ReadDefinition)(const char* definitionKey), //reads a definition from a dictionary file; the caller is responsible for freeing the returned object
-        int (*UpdateDefinition)(U* definition, int), //updates the definition in the dictionary file
-        int (*DeleteDefinition)(U* definition), //deletes the definition in the dictionary file
-        bool (T::*ValidateDefinition)(), //validates a definition; this method is called on the Mg interface
-        bool (*SetupCsStructFromMgInstance)(T*, U&), //initializes the CS Map API struct (type U) from the Mg API objects (type T)
-        void (*FullInitialize)(T*, U*, MgCoordinateSystemCatalog* catalog), //fully initializes the Mg API objects from the CS Map API struct
-        const char* (*ReadDefinitionName)(const U& definition), //reads the definition's name; the caller has to copy the string's content
-        const char* (*ReadDefinitionDescription)(const U& definition), //reads the definition's description; the caller must copy the string's content (if not NULL)
-        int (*ReadAllDefinitions) (csFILE *strm, U* definition, int*), // reads the entire content of a dictionary file; depends on the current file pointer position
-        void (*CsMapTargetFileName)(const char *newFileName), //set the target dictionary file name in the CS Map library
-        CsDictionaryOpenMode (*MagicNumberCallback)(long)) //returns the correct open mode for a dictionary file taking into account the magic number read from the file; passed in as long
-        :
-            readDefinition(ReadDefinition),
-            updateDefinition(UpdateDefinition),
-            deleteDefinition(DeleteDefinition),
-            
-            validateDefinition(ValidateDefinition),
-
-            setupCsStructFromMgInstance(SetupCsStructFromMgInstance),
-            fullInitialize(FullInitialize),
-
-            readDefinitionName(ReadDefinitionName),
-            readDefinitionDescription(ReadDefinitionDescription),
-
-            readAllDefinitions(ReadAllDefinitions),
-            
-            csMapTargetFileName(CsMapTargetFileName),
-            magicNumberCallback(MagicNumberCallback)
-    {
-    }
-
-    U* (*readDefinition)(const char* definitionKey);
-    int (*updateDefinition)(U* definition, int);
-    int (*deleteDefinition)(U* definition);
-    bool (T::*validateDefinition)();
-    bool (*setupCsStructFromMgInstance)(T*, U&);
-    void (*fullInitialize)(T*, U*, MgCoordinateSystemCatalog* catalog);
-    const char* (*readDefinitionName)(const U& definition);
-    const char* (*readDefinitionDescription)(const U& definition);
-    int (*readAllDefinitions) (csFILE *strm, U* definition, int*);
-    void (*csMapTargetFileName) (const char *newFileName);
-    CsDictionaryOpenMode (*magicNumberCallback)(long);
-};
-
-#define DICTIONARY_BASE_TEMPLATE template <class T /* dictionary entries */, class U /* CS_MAP C type*/, \
-    DefinitionAccess<T, U>* definitionAccess, \
-    bool cacheDictionaryEntries, INT32 defaultMagicNumber, const wchar_t* defaultFileName>
-
-#define DICTIONARY_BASE_TEMPLATE_METHOD CCoordinateSystemDictionaryBase<T, U, definitionAccess, cacheDictionaryEntries, defaultMagicNumber, defaultFileName>
-#define DICTIONARY_BASE_TEMPLATE_OBJECT CCoordinateSystemDictionaryBase<T, U, definitionAccess, cacheDictionaryEntries, defaultMagicNumber, defaultFileName>
-#define DICTIONARY_BASE_ENUM_TEMPLATE_METHOD DictionaryBaseEnum<T, U, definitionAccess, cacheDictionaryEntries, defaultMagicNumber, defaultFileName>
-
-namespace CSLibrary
-{
-
-    DICTIONARY_BASE_TEMPLATE
-    class CCoordinateSystemDictionaryBase : public MgCoordinateSystemDictionaryBase
-    {
-    public:
-
-        /* construction / destruction */
-        CCoordinateSystemDictionaryBase(MgCoordinateSystemCatalog *pCatalog);
-        virtual ~CCoordinateSystemDictionaryBase();
-
-        /* overrides */
-        virtual MgCoordinateSystemCatalog* GetCatalog();
-        virtual STRING GetDefaultFileName();
-        virtual STRING GetFileName();
-        virtual void SetFileName(CREFSTRING sFileName);
-        virtual STRING GetPath();
-        virtual UINT32 GetSize();
-        virtual void Add(MgGuardDisposable *pDefinition);
-        virtual void Remove(CREFSTRING sName);
-        virtual void Modify(MgGuardDisposable *pDefinition);
-        virtual MgGuardDisposable* Get(CREFSTRING sName); // TODO - this needs to be removed!
-        virtual bool Has(CREFSTRING sName);
-        virtual MgCoordinateSystemEnum* GetEnum();
-
-        virtual void Dispose();
-
-        /* implementation */
-        T* NewItem();
-
-    protected:
-        virtual CCoordinateSystemEnum* GetEnumImp();
-
-    protected:
-
-        Ptr<MgCoordinateSystemCatalog> catalog;
-        STRING fileName;
-        CSystemNameDescriptionMap* dictionaryItems;
-        INT32 dictMagicNumber;    
-    };
-
-} // End of namespace
-
-#endif //_COORDSYSDICTIONARYBASE_H_
+//
+//  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 _COORDSYSDICTIONARYBASE_H_
+#define _COORDSYSDICTIONARYBASE_H_
+
+#define BUILD_DICTIONARY_BASE //this is needed to build the content in CoordSysDictionaryBase.cpp
+
+#define MAP_CS_DEFAULT_FILE_NAME(x) L## x //builds the wchar_t default filename from the #define found in cs_map.h, e.g. from [cs_GP_NAME]
+#define DICTIONARY_FILE_NAME(x) DefaultDictName##x //defines the name of the extern variable we need to initialize each template class with
+#define DECLARE_DICTIONARY_FILE_NAME(x) extern const ACE_TCHAR DefaultDictName##x[] //declares(!) the extern variable we need for the template class
+#define DEFINE_DICTIONARY_FILE_NAME(x,y) extern const ACE_TCHAR DefaultDictName##x[] = MAP_CS_DEFAULT_FILE_NAME(y) //defines(!) the extern variable we need for the template class
+
+//typedef of the callback that's being invoked, when a dictionary file is being opened; the invoked method 
+//has to specify the open mode the target dictionary file has to be opened with; the [long] parameter is the magic header number
+typedef CsDictionaryOpenMode (*MagicNumberCallback)(long);
+
+template<class T/* Mg API class */, class U /* CS map struct */> 
+struct DefinitionAccess //carries all method pointers needed by this dictionary base implementation so it can interact with the Mg API and the CS Map API
+{
+public:
+    DefinitionAccess(
+        U* (*ReadDefinition)(const char* definitionKey), //reads a definition from a dictionary file; the caller is responsible for freeing the returned object
+        int (*UpdateDefinition)(U* definition, int), //updates the definition in the dictionary file
+        int (*DeleteDefinition)(U* definition), //deletes the definition in the dictionary file
+        bool (T::*ValidateDefinition)(), //validates a definition; this method is called on the Mg interface
+        bool (*SetupCsStructFromMgInstance)(T*, U&), //initializes the CS Map API struct (type U) from the Mg API objects (type T)
+        void (*FullInitialize)(T*, U*, MgCoordinateSystemCatalog* catalog), //fully initializes the Mg API objects from the CS Map API struct
+        const char* (*ReadDefinitionName)(const U& definition), //reads the definition's name; the caller has to copy the string's content
+        const char* (*ReadDefinitionDescription)(const U& definition), //reads the definition's description; the caller must copy the string's content (if not NULL)
+        int (*ReadAllDefinitions) (csFILE *strm, U* definition, int*), // reads the entire content of a dictionary file; depends on the current file pointer position
+        void (*CsMapTargetFileName)(const char *newFileName), //set the target dictionary file name in the CS Map library
+        CsDictionaryOpenMode (*MagicNumberCallback)(long)) //returns the correct open mode for a dictionary file taking into account the magic number read from the file; passed in as long
+        :
+            readDefinition(ReadDefinition),
+            updateDefinition(UpdateDefinition),
+            deleteDefinition(DeleteDefinition),
+            
+            validateDefinition(ValidateDefinition),
+
+            setupCsStructFromMgInstance(SetupCsStructFromMgInstance),
+            fullInitialize(FullInitialize),
+
+            readDefinitionName(ReadDefinitionName),
+            readDefinitionDescription(ReadDefinitionDescription),
+
+            readAllDefinitions(ReadAllDefinitions),
+            
+            csMapTargetFileName(CsMapTargetFileName),
+            magicNumberCallback(MagicNumberCallback)
+    {
+    }
+
+    U* (*readDefinition)(const char* definitionKey);
+    int (*updateDefinition)(U* definition, int);
+    int (*deleteDefinition)(U* definition);
+    bool (T::*validateDefinition)();
+    bool (*setupCsStructFromMgInstance)(T*, U&);
+    void (*fullInitialize)(T*, U*, MgCoordinateSystemCatalog* catalog);
+    const char* (*readDefinitionName)(const U& definition);
+    const char* (*readDefinitionDescription)(const U& definition);
+    int (*readAllDefinitions) (csFILE *strm, U* definition, int*);
+    void (*csMapTargetFileName) (const char *newFileName);
+    CsDictionaryOpenMode (*magicNumberCallback)(long);
+};
+
+#define DICTIONARY_BASE_TEMPLATE template <class T /* dictionary entries */, class U /* CS_MAP C type*/, \
+    DefinitionAccess<T, U>* definitionAccess, \
+    bool cacheDictionaryEntries, INT32 defaultMagicNumber, const wchar_t* defaultFileName>
+
+#define DICTIONARY_BASE_TEMPLATE_METHOD CCoordinateSystemDictionaryBase<T, U, definitionAccess, cacheDictionaryEntries, defaultMagicNumber, defaultFileName>
+#define DICTIONARY_BASE_TEMPLATE_OBJECT CCoordinateSystemDictionaryBase<T, U, definitionAccess, cacheDictionaryEntries, defaultMagicNumber, defaultFileName>
+#define DICTIONARY_BASE_ENUM_TEMPLATE_METHOD DictionaryBaseEnum<T, U, definitionAccess, cacheDictionaryEntries, defaultMagicNumber, defaultFileName>
+
+namespace CSLibrary
+{
+
+    DICTIONARY_BASE_TEMPLATE
+    class CCoordinateSystemDictionaryBase : public MgCoordinateSystemDictionaryBase
+    {
+    public:
+
+        /* construction / destruction */
+        CCoordinateSystemDictionaryBase(MgCoordinateSystemCatalog *pCatalog);
+        virtual ~CCoordinateSystemDictionaryBase();
+
+        /* overrides */
+        virtual MgCoordinateSystemCatalog* GetCatalog();
+        virtual STRING GetDefaultFileName();
+        virtual STRING GetFileName();
+        virtual void SetFileName(CREFSTRING sFileName);
+        virtual STRING GetPath();
+        virtual UINT32 GetSize();
+        virtual void Add(MgGuardDisposable *pDefinition);
+        virtual void Remove(CREFSTRING sName);
+        virtual void Modify(MgGuardDisposable *pDefinition);
+        virtual MgGuardDisposable* Get(CREFSTRING sName); // TODO - this needs to be removed!
+        virtual bool Has(CREFSTRING sName);
+        virtual MgCoordinateSystemEnum* GetEnum();
+
+        virtual void Dispose();
+
+        /* implementation */
+        T* NewItem();
+
+    protected:
+        virtual CCoordinateSystemEnum* GetEnumImp();
+
+    protected:
+
+        Ptr<MgCoordinateSystemCatalog> catalog;
+        STRING fileName;
+        CSystemNameDescriptionMap* dictionaryItems;
+        INT32 dictMagicNumber;    
+    };
+
+} // End of namespace
+
+#endif //_COORDSYSDICTIONARYBASE_H_


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

Modified: trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticAnalyticalTransformDefParams.cpp
===================================================================
--- trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticAnalyticalTransformDefParams.cpp	2010-09-21 08:36:03 UTC (rev 5169)
+++ trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticAnalyticalTransformDefParams.cpp	2010-09-21 14:52:39 UTC (rev 5170)
@@ -1,125 +1,125 @@
-//
-//  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
-//
-
-#define CS_MAP_DEF_VARIABLE this->geocentricTransformParams
-
-#include "CoordSysMacro.h"
-
-#include "GeometryCommon.h"
-#include "CoordSysCommon.h"
-
-#include "CoordSysGeodeticTransformDefParams.h"
-#include "CoordSysGeodeticAnalyticalTransformDefParams.h"
-
-#include <cs_map.h>
-
-using namespace CSLibrary;
-
-CCoordinateSystemGeodeticAnalyticalTransformDefParams::CCoordinateSystemGeodeticAnalyticalTransformDefParams(
-    const csGeocentricXformParams& params, INT32 analyticalTransformMethod, bool isProtected)
-    : CCoordinateSystemGeodeticTransformDefParams(isProtected)
-    , geocentricTransformParams(NULL), transformationMethod(analyticalTransformMethod)
-{
-    this->geocentricTransformParams = (csGeocentricXformParams*) CS_malc(sizeof(csGeocentricXformParams));
-    if (NULL == this->geocentricTransformParams)
-        throw new MgOutOfMemoryException(L"CCoordinateSystemGeodeticAnalyticalTransformDefParams.Ctor", __LINE__, __WFILE__, NULL, L"", NULL);
-
-    *this->geocentricTransformParams = params;
-}
-
-CCoordinateSystemGeodeticAnalyticalTransformDefParams::~CCoordinateSystemGeodeticAnalyticalTransformDefParams()
-{
-    this->ReleaseInstance();
-}
-
-void CCoordinateSystemGeodeticAnalyticalTransformDefParams::Dispose()
-{
-    delete this;
-}
-
-void CCoordinateSystemGeodeticAnalyticalTransformDefParams::ReleaseInstance()
-{
-    if (NULL != this->geocentricTransformParams)
-    {
-        CS_free(this->geocentricTransformParams);
-        this->geocentricTransformParams = NULL;
-    }
-}
-
-void CCoordinateSystemGeodeticAnalyticalTransformDefParams::CopyTo(void* target) const
-{
-    ENSURE_NOT_NULL(target, CCoordinateSystemGeodeticAnalyticalTransformDefParams::CopyTo);
-    
-    memcpy(target, this->geocentricTransformParams, sizeof(cs_GeodeticTransform_::csGeodeticXformParameters::csGeodeticXformParmsGeocentric));
-}
-
-bool CCoordinateSystemGeodeticAnalyticalTransformDefParams::IsValid()
-{
-    //we're relying on the CS_gxchk() method that will be invoked, before the parent transformation
-    //definition is finally passed to CS_Map
-    return true;
-}
-
-bool CCoordinateSystemGeodeticAnalyticalTransformDefParams::IsProtected()
-{
-    return CCoordinateSystemGeodeticTransformDefParams::IsProtected();
-}
-
-INT32 CCoordinateSystemGeodeticAnalyticalTransformDefParams::GetTransformationMethod()
-{
-    return this->transformationMethod;
-}
-
-void CCoordinateSystemGeodeticAnalyticalTransformDefParams::SetTransformationMethod(INT32 analyticalMethodCode)
-{
-    VERIFY_NOT_PROTECTED(L"CCoordinateSystemGeodeticAnalyticalTransformDefParams::SetTransformationMethod");
-
-    switch(analyticalMethodCode)
-    {
-    case MgCoordinateSystemGeodeticAnalyticalTransformationMethod::None:
-    case MgCoordinateSystemGeodeticAnalyticalTransformationMethod::ThreeParameter:
-    case MgCoordinateSystemGeodeticAnalyticalTransformationMethod::Molodensky:
-    case MgCoordinateSystemGeodeticAnalyticalTransformationMethod::AbridgedMolodensky:
-    case MgCoordinateSystemGeodeticAnalyticalTransformationMethod::Geocentric:
-    case MgCoordinateSystemGeodeticAnalyticalTransformationMethod::FourParameter:
-    case MgCoordinateSystemGeodeticAnalyticalTransformationMethod::SixParameter:
-    case MgCoordinateSystemGeodeticAnalyticalTransformationMethod::Bursa:
-    case MgCoordinateSystemGeodeticAnalyticalTransformationMethod::Frame:
-    case MgCoordinateSystemGeodeticAnalyticalTransformationMethod::SevenParameter:
-    case MgCoordinateSystemGeodeticAnalyticalTransformationMethod::MolodenskyBadekas:
-        break;
-
-    default:
-        throw new MgInvalidArgumentException(L"CCoordinateSystemGeodeticAnalyticalTransformDefParams.SetTransformationMethod", __LINE__, __WFILE__, NULL, L"", NULL);
-    }
-
-    this->transformationMethod = analyticalMethodCode;
-}
-
-DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticAnalyticalTransformDefParams,DeltaX,double,this->geocentricTransformParams->deltaX)
-DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticAnalyticalTransformDefParams,DeltaY,double,this->geocentricTransformParams->deltaY)
-DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticAnalyticalTransformDefParams,DeltaZ,double,this->geocentricTransformParams->deltaZ)
-
-DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticAnalyticalTransformDefParams,RotateX,double,this->geocentricTransformParams->rotateX)
-DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticAnalyticalTransformDefParams,RotateY,double,this->geocentricTransformParams->rotateY)
-DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticAnalyticalTransformDefParams,RotateZ,double,this->geocentricTransformParams->rotateZ)
-
-DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticAnalyticalTransformDefParams,Scale,double,this->geocentricTransformParams->scale)
-
-DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticAnalyticalTransformDefParams,TranslateX,double,this->geocentricTransformParams->translateX)
-DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticAnalyticalTransformDefParams,TranslateY,double,this->geocentricTransformParams->translateY)
+//
+//  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
+//
+
+#define CS_MAP_DEF_VARIABLE this->geocentricTransformParams
+
+#include "CoordSysMacro.h"
+
+#include "GeometryCommon.h"
+#include "CoordSysCommon.h"
+
+#include "CoordSysGeodeticTransformDefParams.h"
+#include "CoordSysGeodeticAnalyticalTransformDefParams.h"
+
+#include <cs_map.h>
+
+using namespace CSLibrary;
+
+CCoordinateSystemGeodeticAnalyticalTransformDefParams::CCoordinateSystemGeodeticAnalyticalTransformDefParams(
+    const csGeocentricXformParams& params, INT32 analyticalTransformMethod, bool isProtected)
+    : CCoordinateSystemGeodeticTransformDefParams(isProtected)
+    , geocentricTransformParams(NULL), transformationMethod(analyticalTransformMethod)
+{
+    this->geocentricTransformParams = (csGeocentricXformParams*) CS_malc(sizeof(csGeocentricXformParams));
+    if (NULL == this->geocentricTransformParams)
+        throw new MgOutOfMemoryException(L"CCoordinateSystemGeodeticAnalyticalTransformDefParams.Ctor", __LINE__, __WFILE__, NULL, L"", NULL);
+
+    *this->geocentricTransformParams = params;
+}
+
+CCoordinateSystemGeodeticAnalyticalTransformDefParams::~CCoordinateSystemGeodeticAnalyticalTransformDefParams()
+{
+    this->ReleaseInstance();
+}
+
+void CCoordinateSystemGeodeticAnalyticalTransformDefParams::Dispose()
+{
+    delete this;
+}
+
+void CCoordinateSystemGeodeticAnalyticalTransformDefParams::ReleaseInstance()
+{
+    if (NULL != this->geocentricTransformParams)
+    {
+        CS_free(this->geocentricTransformParams);
+        this->geocentricTransformParams = NULL;
+    }
+}
+
+void CCoordinateSystemGeodeticAnalyticalTransformDefParams::CopyTo(void* target) const
+{
+    ENSURE_NOT_NULL(target, CCoordinateSystemGeodeticAnalyticalTransformDefParams::CopyTo);
+    
+    memcpy(target, this->geocentricTransformParams, sizeof(cs_GeodeticTransform_::csGeodeticXformParameters::csGeodeticXformParmsGeocentric));
+}
+
+bool CCoordinateSystemGeodeticAnalyticalTransformDefParams::IsValid()
+{
+    //we're relying on the CS_gxchk() method that will be invoked, before the parent transformation
+    //definition is finally passed to CS_Map
+    return true;
+}
+
+bool CCoordinateSystemGeodeticAnalyticalTransformDefParams::IsProtected()
+{
+    return CCoordinateSystemGeodeticTransformDefParams::IsProtected();
+}
+
+INT32 CCoordinateSystemGeodeticAnalyticalTransformDefParams::GetTransformationMethod()
+{
+    return this->transformationMethod;
+}
+
+void CCoordinateSystemGeodeticAnalyticalTransformDefParams::SetTransformationMethod(INT32 analyticalMethodCode)
+{
+    VERIFY_NOT_PROTECTED(L"CCoordinateSystemGeodeticAnalyticalTransformDefParams::SetTransformationMethod");
+
+    switch(analyticalMethodCode)
+    {
+    case MgCoordinateSystemGeodeticAnalyticalTransformationMethod::None:
+    case MgCoordinateSystemGeodeticAnalyticalTransformationMethod::ThreeParameter:
+    case MgCoordinateSystemGeodeticAnalyticalTransformationMethod::Molodensky:
+    case MgCoordinateSystemGeodeticAnalyticalTransformationMethod::AbridgedMolodensky:
+    case MgCoordinateSystemGeodeticAnalyticalTransformationMethod::Geocentric:
+    case MgCoordinateSystemGeodeticAnalyticalTransformationMethod::FourParameter:
+    case MgCoordinateSystemGeodeticAnalyticalTransformationMethod::SixParameter:
+    case MgCoordinateSystemGeodeticAnalyticalTransformationMethod::Bursa:
+    case MgCoordinateSystemGeodeticAnalyticalTransformationMethod::Frame:
+    case MgCoordinateSystemGeodeticAnalyticalTransformationMethod::SevenParameter:
+    case MgCoordinateSystemGeodeticAnalyticalTransformationMethod::MolodenskyBadekas:
+        break;
+
+    default:
+        throw new MgInvalidArgumentException(L"CCoordinateSystemGeodeticAnalyticalTransformDefParams.SetTransformationMethod", __LINE__, __WFILE__, NULL, L"", NULL);
+    }
+
+    this->transformationMethod = analyticalMethodCode;
+}
+
+DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticAnalyticalTransformDefParams,DeltaX,double,this->geocentricTransformParams->deltaX)
+DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticAnalyticalTransformDefParams,DeltaY,double,this->geocentricTransformParams->deltaY)
+DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticAnalyticalTransformDefParams,DeltaZ,double,this->geocentricTransformParams->deltaZ)
+
+DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticAnalyticalTransformDefParams,RotateX,double,this->geocentricTransformParams->rotateX)
+DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticAnalyticalTransformDefParams,RotateY,double,this->geocentricTransformParams->rotateY)
+DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticAnalyticalTransformDefParams,RotateZ,double,this->geocentricTransformParams->rotateZ)
+
+DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticAnalyticalTransformDefParams,Scale,double,this->geocentricTransformParams->scale)
+
+DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticAnalyticalTransformDefParams,TranslateX,double,this->geocentricTransformParams->translateX)
+DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticAnalyticalTransformDefParams,TranslateY,double,this->geocentricTransformParams->translateY)
 DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticAnalyticalTransformDefParams,TranslateZ,double,this->geocentricTransformParams->translateZ)
\ No newline at end of file


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

Modified: trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticAnalyticalTransformDefParams.h
===================================================================
--- trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticAnalyticalTransformDefParams.h	2010-09-21 08:36:03 UTC (rev 5169)
+++ trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticAnalyticalTransformDefParams.h	2010-09-21 14:52:39 UTC (rev 5170)
@@ -1,84 +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
-//
-
-#ifndef _CCOORDSYSGEODETICANALYTICALTRANSFORMDEFPARAMS_H_
-#define _CCOORDSYSGEODETICANALYTICALTRANSFORMDEFPARAMS_H_
-
-namespace CSLibrary
-{
-    typedef cs_GeodeticTransform_::csGeodeticXformParameters::csGeodeticXformParmsGeocentric csGeocentricXformParams;
-    
-    class CCoordinateSystemGeodeticAnalyticalTransformDefParams :
-        public MgCoordinateSystemGeodeticAnalyticalTransformDefParams,
-        public CCoordinateSystemGeodeticTransformDefParams
-    {
-    public:
-        CCoordinateSystemGeodeticAnalyticalTransformDefParams(const csGeocentricXformParams& params, INT32 analyticalTransformMethod, bool isProtected);
-        ~CCoordinateSystemGeodeticAnalyticalTransformDefParams();
-
-        virtual void Dispose();
-        virtual bool IsValid();
-
-        virtual bool IsProtected();
-
-        virtual void CopyTo(void* target) const;
-
-        //MgCoordinateSystemGeodeticAnalyticalTransformDefParams implementation
-        virtual double GetDeltaX();
-        virtual void SetDeltaX(double deltaX);
-			
-        virtual double GetDeltaY();
-        virtual void SetDeltaY(double deltaY);
-
-        virtual double GetDeltaZ();
-        virtual void SetDeltaZ(double deltaZ);
-    			
-        virtual double GetRotateX();
-        virtual void SetRotateX(double rotateX);
-
-        virtual double GetRotateY();
-        virtual void SetRotateY(double rotateY);
-
-        virtual double GetRotateZ();
-        virtual void SetRotateZ(double rotateZ);
-    			
-	    virtual double GetScale();
-        virtual void SetScale(double scale);
-
-        virtual double GetTranslateX();
-        virtual void SetTranslateX(double translateX);
-
-        virtual double GetTranslateY();
-        virtual void SetTranslateY(double translateY);
-
-        virtual double GetTranslateZ();
-        virtual void SetTranslateZ(double translateZ);
-
-        virtual INT32 GetTransformationMethod();
-        virtual void SetTransformationMethod(INT32 analyticalMethodCode);
-
-    private:
-        void ReleaseInstance();
-
-    private:
-        csGeocentricXformParams* geocentricTransformParams;
-        INT32 transformationMethod;
-    };
-
-} //namespace CSLibrary
-
+//
+//  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 _CCOORDSYSGEODETICANALYTICALTRANSFORMDEFPARAMS_H_
+#define _CCOORDSYSGEODETICANALYTICALTRANSFORMDEFPARAMS_H_
+
+namespace CSLibrary
+{
+    typedef cs_GeodeticTransform_::csGeodeticXformParameters::csGeodeticXformParmsGeocentric csGeocentricXformParams;
+    
+    class CCoordinateSystemGeodeticAnalyticalTransformDefParams :
+        public MgCoordinateSystemGeodeticAnalyticalTransformDefParams,
+        public CCoordinateSystemGeodeticTransformDefParams
+    {
+    public:
+        CCoordinateSystemGeodeticAnalyticalTransformDefParams(const csGeocentricXformParams& params, INT32 analyticalTransformMethod, bool isProtected);
+        ~CCoordinateSystemGeodeticAnalyticalTransformDefParams();
+
+        virtual void Dispose();
+        virtual bool IsValid();
+
+        virtual bool IsProtected();
+
+        virtual void CopyTo(void* target) const;
+
+        //MgCoordinateSystemGeodeticAnalyticalTransformDefParams implementation
+        virtual double GetDeltaX();
+        virtual void SetDeltaX(double deltaX);
+			
+        virtual double GetDeltaY();
+        virtual void SetDeltaY(double deltaY);
+
+        virtual double GetDeltaZ();
+        virtual void SetDeltaZ(double deltaZ);
+    			
+        virtual double GetRotateX();
+        virtual void SetRotateX(double rotateX);
+
+        virtual double GetRotateY();
+        virtual void SetRotateY(double rotateY);
+
+        virtual double GetRotateZ();
+        virtual void SetRotateZ(double rotateZ);
+    			
+	    virtual double GetScale();
+        virtual void SetScale(double scale);
+
+        virtual double GetTranslateX();
+        virtual void SetTranslateX(double translateX);
+
+        virtual double GetTranslateY();
+        virtual void SetTranslateY(double translateY);
+
+        virtual double GetTranslateZ();
+        virtual void SetTranslateZ(double translateZ);
+
+        virtual INT32 GetTransformationMethod();
+        virtual void SetTransformationMethod(INT32 analyticalMethodCode);
+
+    private:
+        void ReleaseInstance();
+
+    private:
+        csGeocentricXformParams* geocentricTransformParams;
+        INT32 transformationMethod;
+    };
+
+} //namespace CSLibrary
+
 #endif //_CCOORDSYSGEODETICANALYTICALTRANSFORMDEFPARAMS_H_
\ No newline at end of file


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

Modified: trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticInterpolationTransformDefParams.cpp
===================================================================
--- trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticInterpolationTransformDefParams.cpp	2010-09-21 08:36:03 UTC (rev 5169)
+++ trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticInterpolationTransformDefParams.cpp	2010-09-21 14:52:39 UTC (rev 5170)
@@ -1,188 +1,188 @@
-//
-//  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
-//
-
-#define CS_MAP_DEF_VARIABLE this->gridFileParams
-
-#include "CoordSysMacro.h"
-
-#include "GeometryCommon.h"
-#include "CoordSysCommon.h"
-
-#include "CoordSysUtil.h"
-#include "MentorUtil.h"
-
-#include "CoordSysGeodeticTransformGridFile.h"
-#include "CoordSysGeodeticTransformDefParams.h"
-#include "CoordSysGeodeticInterpolationTransformDefParams.h"
-
-#include <cs_map.h>
-
-using namespace CSLibrary;
-
-CCoordinateSystemGeodeticInterpolationTransformDefParams::CCoordinateSystemGeodeticInterpolationTransformDefParams(
-    const csGridFileXformParams& params, bool isProtected)
-    : CCoordinateSystemGeodeticTransformDefParams(isProtected), gridFileParams(NULL)
-{
-    this->Reset();
-    *this->gridFileParams = params;
-}
-
-CCoordinateSystemGeodeticInterpolationTransformDefParams::~CCoordinateSystemGeodeticInterpolationTransformDefParams()
-{
-    this->ReleaseInstance();
-}
-
-void CCoordinateSystemGeodeticInterpolationTransformDefParams::Dispose()
-{
-    delete this;
-}
-
-void CCoordinateSystemGeodeticInterpolationTransformDefParams::Reset()
-{
-    this->ReleaseInstance();
-    
-    this->gridFileParams = (csGridFileXformParams*) CS_malc(sizeof(csGridFileXformParams));
-    if (NULL == this->gridFileParams)
-        throw new MgOutOfMemoryException(L"CCoordinateSystemGeodeticInterpolationTransformDefParams.Reset", __LINE__, __WFILE__, NULL, L"", NULL);
-
-    memset(this->gridFileParams, 0, sizeof(csGridFileXformParams));
-}
-
-void CCoordinateSystemGeodeticInterpolationTransformDefParams::ReleaseInstance()
-{
-    if (NULL != this->gridFileParams)
-    {
-        CS_free(this->gridFileParams);
-        this->gridFileParams = NULL;
-    }
-}
-
-void CCoordinateSystemGeodeticInterpolationTransformDefParams::SetGridFiles(MgDisposableCollection* gridFiles)
-{
-    VERIFY_INITIALIZED(L"CCoordinateSystemGeodeticInterpolationTransformDefParams.SetGridFiles");
-    VERIFY_NOT_PROTECTED(L"CCoordinateSystemGeodeticInterpolationTransformDefParams.SetGridFiles");
-
-    //we don't take ownership over fileNames
-    ENSURE_NOT_NULL(gridFiles, CCoordinateSystemGeodeticInterpolationTransformDefParams::SetGridFileNames);
-    const INT32 fileNamesCount = gridFiles->GetCount();
-    if (fileNamesCount > csGRIDI1_FILEMAX)
-        throw new MgInvalidArgumentException(L"CCoordinateSystemGeodeticInterpolationTransformDefParams.SetGridFiles", __LINE__, __WFILE__, NULL, L"", NULL);
-
-    bool emptyFileCollection = (0 == fileNamesCount);
-    csGeodeticXfromParmsFile_* allFiles = emptyFileCollection ? NULL : new csGeodeticXfromParmsFile_[fileNamesCount];
-    
-    MG_TRY()
-
-    if (!emptyFileCollection)
-        memset(allFiles, 0, fileNamesCount * sizeof(csGeodeticXfromParmsFile_));
-
-    for(INT32 i = 0; i < fileNamesCount; i++)
-    {
-        Ptr<MgDisposable> gridFile = gridFiles->GetItem(i); //calls [AddRef] on the item being returned
-        CCoordinateSystemGeodeticTransformGridFile* gridFileSetting = dynamic_cast<CCoordinateSystemGeodeticTransformGridFile*>(gridFile.p);
-        if (NULL == gridFileSetting)
-            throw new MgInvalidArgumentException(L"CCoordinateSystemGeodeticInterpolationTransformDefParams.SetGridFiles", __LINE__, __WFILE__, NULL, L"", NULL);
-
-        //we only allow for setting valid grid files
-        if (!gridFileSetting->IsValid())
-            throw new MgInvalidArgumentException(L"CCoordinateSystemGeodeticInterpolationTransformDefParams.SetGridFiles", __LINE__, __WFILE__, NULL, L"", NULL);
-
-        //take the values from the settings we have been passed here and set our internal
-        //[csGridFileXFormat] instance at index [i] to those values
-        gridFileSetting->CopyTo(&allFiles[i]);
-    }
-
-    this->gridFileParams->fileReferenceCount = fileNamesCount;
-
-    //wipe out all memory where the filenames are stored...
-    memset(this->gridFileParams->fileNames, 0, csGRIDI1_FILEMAX * sizeof(csGeodeticXfromParmsFile_));
-    //...and copy our values in case we've been given a non-empty list
-    if (!emptyFileCollection)
-        memcpy(this->gridFileParams->fileNames, allFiles, fileNamesCount * sizeof(csGeodeticXfromParmsFile_));
-
-    MG_CATCH(L"CCoordinateSystemGeodeticInterpolationTransformDefParams.SetGridFileNames");
-
-    delete[] allFiles; //safe to call on [null]
-
-    MG_THROW();
-}
-
-MgDisposableCollection* CCoordinateSystemGeodeticInterpolationTransformDefParams::GetGridFiles()
-{
-    Ptr<MgDisposableCollection> gridFileNames = new MgDisposableCollection();
-
-    INT32 fileCount = this->gridFileParams->fileReferenceCount;
-    if (0 == fileCount)
-        return gridFileNames.Detach();
-    
-    for(INT32 i = 0; i < fileCount && i < csGRIDI1_FILEMAX; i++)
-    {
-        csGeodeticXfromParmsFile_& singleGridFile = this->gridFileParams->fileNames[i];
-
-        Ptr<CCoordinateSystemGeodeticTransformGridFile> gridFileSetting =
-            new CCoordinateSystemGeodeticTransformGridFile(&singleGridFile, this->IsProtected());
-
-        //the collection will take ownership over [gridFileSetting]
-        gridFileNames->Add(gridFileSetting);
-    }
-
-    return gridFileNames.Detach();
-}
-
-MgCoordinateSystemGeodeticTransformGridFile* CCoordinateSystemGeodeticInterpolationTransformDefParams::NewGridFile()
-{
-    return new CCoordinateSystemGeodeticTransformGridFile(NULL, false);
-}
-
-bool CCoordinateSystemGeodeticInterpolationTransformDefParams::IsValid()
-{
-    if (NULL == this->gridFileParams)
-        return false;
-
-    Ptr<MgDisposableCollection> gridFiles = this->GetGridFiles();
-    INT32 gridFileCount = gridFiles->GetCount();
-    if (gridFileCount > csGRIDI1_FILEMAX)
-        return false;
-
-    for (INT32 i = 0; i < gridFileCount; i++)
-    {
-        Ptr<MgDisposable> gridFilePtr = gridFiles->GetItem(i);
-        MgCoordinateSystemGeodeticTransformGridFile* gridFile = dynamic_cast<MgCoordinateSystemGeodeticTransformGridFile*>(gridFilePtr.p);
-
-        if (NULL == gridFile || !gridFile->IsValid())
-        {
-            _ASSERT(false); //how comes? This can only have happened when we initialized this item here
-            return false;
-        }
-    }
-
-    return true; //0 items count is ok
-}
-
-bool CCoordinateSystemGeodeticInterpolationTransformDefParams::IsProtected()
-{
-    return CCoordinateSystemGeodeticTransformDefParams::IsProtected();
-}
-
-DEFINE_GET_SET_STRING(CCoordinateSystemGeodeticInterpolationTransformDefParams,Fallback,this->gridFileParams->fallback)
-
-void CCoordinateSystemGeodeticInterpolationTransformDefParams::CopyTo(void* target) const
-{
-    ENSURE_NOT_NULL(target, CCoordinateSystemGeodeticInterpolationTransformDefParams::CopyTo);
-    
-    memcpy(target, this->gridFileParams, sizeof(csGridFileXformParams));
+//
+//  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
+//
+
+#define CS_MAP_DEF_VARIABLE this->gridFileParams
+
+#include "CoordSysMacro.h"
+
+#include "GeometryCommon.h"
+#include "CoordSysCommon.h"
+
+#include "CoordSysUtil.h"
+#include "MentorUtil.h"
+
+#include "CoordSysGeodeticTransformGridFile.h"
+#include "CoordSysGeodeticTransformDefParams.h"
+#include "CoordSysGeodeticInterpolationTransformDefParams.h"
+
+#include <cs_map.h>
+
+using namespace CSLibrary;
+
+CCoordinateSystemGeodeticInterpolationTransformDefParams::CCoordinateSystemGeodeticInterpolationTransformDefParams(
+    const csGridFileXformParams& params, bool isProtected)
+    : CCoordinateSystemGeodeticTransformDefParams(isProtected), gridFileParams(NULL)
+{
+    this->Reset();
+    *this->gridFileParams = params;
+}
+
+CCoordinateSystemGeodeticInterpolationTransformDefParams::~CCoordinateSystemGeodeticInterpolationTransformDefParams()
+{
+    this->ReleaseInstance();
+}
+
+void CCoordinateSystemGeodeticInterpolationTransformDefParams::Dispose()
+{
+    delete this;
+}
+
+void CCoordinateSystemGeodeticInterpolationTransformDefParams::Reset()
+{
+    this->ReleaseInstance();
+    
+    this->gridFileParams = (csGridFileXformParams*) CS_malc(sizeof(csGridFileXformParams));
+    if (NULL == this->gridFileParams)
+        throw new MgOutOfMemoryException(L"CCoordinateSystemGeodeticInterpolationTransformDefParams.Reset", __LINE__, __WFILE__, NULL, L"", NULL);
+
+    memset(this->gridFileParams, 0, sizeof(csGridFileXformParams));
+}
+
+void CCoordinateSystemGeodeticInterpolationTransformDefParams::ReleaseInstance()
+{
+    if (NULL != this->gridFileParams)
+    {
+        CS_free(this->gridFileParams);
+        this->gridFileParams = NULL;
+    }
+}
+
+void CCoordinateSystemGeodeticInterpolationTransformDefParams::SetGridFiles(MgDisposableCollection* gridFiles)
+{
+    VERIFY_INITIALIZED(L"CCoordinateSystemGeodeticInterpolationTransformDefParams.SetGridFiles");
+    VERIFY_NOT_PROTECTED(L"CCoordinateSystemGeodeticInterpolationTransformDefParams.SetGridFiles");
+
+    //we don't take ownership over fileNames
+    ENSURE_NOT_NULL(gridFiles, CCoordinateSystemGeodeticInterpolationTransformDefParams::SetGridFileNames);
+    const INT32 fileNamesCount = gridFiles->GetCount();
+    if (fileNamesCount > csGRIDI1_FILEMAX)
+        throw new MgInvalidArgumentException(L"CCoordinateSystemGeodeticInterpolationTransformDefParams.SetGridFiles", __LINE__, __WFILE__, NULL, L"", NULL);
+
+    bool emptyFileCollection = (0 == fileNamesCount);
+    csGeodeticXfromParmsFile_* allFiles = emptyFileCollection ? NULL : new csGeodeticXfromParmsFile_[fileNamesCount];
+    
+    MG_TRY()
+
+    if (!emptyFileCollection)
+        memset(allFiles, 0, fileNamesCount * sizeof(csGeodeticXfromParmsFile_));
+
+    for(INT32 i = 0; i < fileNamesCount; i++)
+    {
+        Ptr<MgDisposable> gridFile = gridFiles->GetItem(i); //calls [AddRef] on the item being returned
+        CCoordinateSystemGeodeticTransformGridFile* gridFileSetting = dynamic_cast<CCoordinateSystemGeodeticTransformGridFile*>(gridFile.p);
+        if (NULL == gridFileSetting)
+            throw new MgInvalidArgumentException(L"CCoordinateSystemGeodeticInterpolationTransformDefParams.SetGridFiles", __LINE__, __WFILE__, NULL, L"", NULL);
+
+        //we only allow for setting valid grid files
+        if (!gridFileSetting->IsValid())
+            throw new MgInvalidArgumentException(L"CCoordinateSystemGeodeticInterpolationTransformDefParams.SetGridFiles", __LINE__, __WFILE__, NULL, L"", NULL);
+
+        //take the values from the settings we have been passed here and set our internal
+        //[csGridFileXFormat] instance at index [i] to those values
+        gridFileSetting->CopyTo(&allFiles[i]);
+    }
+
+    this->gridFileParams->fileReferenceCount = fileNamesCount;
+
+    //wipe out all memory where the filenames are stored...
+    memset(this->gridFileParams->fileNames, 0, csGRIDI1_FILEMAX * sizeof(csGeodeticXfromParmsFile_));
+    //...and copy our values in case we've been given a non-empty list
+    if (!emptyFileCollection)
+        memcpy(this->gridFileParams->fileNames, allFiles, fileNamesCount * sizeof(csGeodeticXfromParmsFile_));
+
+    MG_CATCH(L"CCoordinateSystemGeodeticInterpolationTransformDefParams.SetGridFileNames");
+
+    delete[] allFiles; //safe to call on [null]
+
+    MG_THROW();
+}
+
+MgDisposableCollection* CCoordinateSystemGeodeticInterpolationTransformDefParams::GetGridFiles()
+{
+    Ptr<MgDisposableCollection> gridFileNames = new MgDisposableCollection();
+
+    INT32 fileCount = this->gridFileParams->fileReferenceCount;
+    if (0 == fileCount)
+        return gridFileNames.Detach();
+    
+    for(INT32 i = 0; i < fileCount && i < csGRIDI1_FILEMAX; i++)
+    {
+        csGeodeticXfromParmsFile_& singleGridFile = this->gridFileParams->fileNames[i];
+
+        Ptr<CCoordinateSystemGeodeticTransformGridFile> gridFileSetting =
+            new CCoordinateSystemGeodeticTransformGridFile(&singleGridFile, this->IsProtected());
+
+        //the collection will take ownership over [gridFileSetting]
+        gridFileNames->Add(gridFileSetting);
+    }
+
+    return gridFileNames.Detach();
+}
+
+MgCoordinateSystemGeodeticTransformGridFile* CCoordinateSystemGeodeticInterpolationTransformDefParams::NewGridFile()
+{
+    return new CCoordinateSystemGeodeticTransformGridFile(NULL, false);
+}
+
+bool CCoordinateSystemGeodeticInterpolationTransformDefParams::IsValid()
+{
+    if (NULL == this->gridFileParams)
+        return false;
+
+    Ptr<MgDisposableCollection> gridFiles = this->GetGridFiles();
+    INT32 gridFileCount = gridFiles->GetCount();
+    if (gridFileCount > csGRIDI1_FILEMAX)
+        return false;
+
+    for (INT32 i = 0; i < gridFileCount; i++)
+    {
+        Ptr<MgDisposable> gridFilePtr = gridFiles->GetItem(i);
+        MgCoordinateSystemGeodeticTransformGridFile* gridFile = dynamic_cast<MgCoordinateSystemGeodeticTransformGridFile*>(gridFilePtr.p);
+
+        if (NULL == gridFile || !gridFile->IsValid())
+        {
+            _ASSERT(false); //how comes? This can only have happened when we initialized this item here
+            return false;
+        }
+    }
+
+    return true; //0 items count is ok
+}
+
+bool CCoordinateSystemGeodeticInterpolationTransformDefParams::IsProtected()
+{
+    return CCoordinateSystemGeodeticTransformDefParams::IsProtected();
+}
+
+DEFINE_GET_SET_STRING(CCoordinateSystemGeodeticInterpolationTransformDefParams,Fallback,this->gridFileParams->fallback)
+
+void CCoordinateSystemGeodeticInterpolationTransformDefParams::CopyTo(void* target) const
+{
+    ENSURE_NOT_NULL(target, CCoordinateSystemGeodeticInterpolationTransformDefParams::CopyTo);
+    
+    memcpy(target, this->gridFileParams, sizeof(csGridFileXformParams));
 }
\ No newline at end of file


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

Modified: trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticInterpolationTransformDefParams.h
===================================================================
--- trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticInterpolationTransformDefParams.h	2010-09-21 08:36:03 UTC (rev 5169)
+++ trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticInterpolationTransformDefParams.h	2010-09-21 14:52:39 UTC (rev 5170)
@@ -1,62 +1,62 @@
-//
-//  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 _CCOORDINATESYSTEMGEODETICINTERPOLATIONTRANSFORMDEFPARAMS_H_
-#define _CCOORDINATESYSTEMGEODETICINTERPOLATIONTRANSFORMDEFPARAMS_H_
-
-
-namespace CSLibrary
-{
-    typedef cs_GeodeticTransform_::csGeodeticXformParameters::csGeodeticXformParmsGridFiles_ csGridFileXformParams;
-
-    class CCoordinateSystemGeodeticInterpolationTransformDefParams :
-        public MgCoordinateSystemGeodeticInterpolationTransformDefParams,
-        public CCoordinateSystemGeodeticTransformDefParams
-    {
-    public:
-        CCoordinateSystemGeodeticInterpolationTransformDefParams(const csGridFileXformParams& params, bool isProtected);
-        ~CCoordinateSystemGeodeticInterpolationTransformDefParams();
-        
-        // >>> MgCoordinateSystemGeodeticInterpolationTransformDefParams
-        virtual void SetGridFiles(MgDisposableCollection* gridFiles);
-        virtual MgDisposableCollection* GetGridFiles();
-			
-        virtual STRING GetFallback();
-        virtual void SetFallback(CREFSTRING);
-
-        virtual MgCoordinateSystemGeodeticTransformGridFile* NewGridFile();
-
-        // <<< MgCoordinateSystemGeodeticInterpolationTransformDefParams
-
-        virtual bool IsValid(); //from MgCoordinateSystemGeodeticTransformDefParams
-        virtual bool IsProtected();
-
-        virtual void Dispose();
-
-    private:
-        void CopyTo(void* target) const;
-        
-        void Reset();
-        void ReleaseInstance();
-
-    private:
-        csGridFileXformParams* gridFileParams;
-    };
-
-} //namespace CSLibrary
-
+//
+//  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 _CCOORDINATESYSTEMGEODETICINTERPOLATIONTRANSFORMDEFPARAMS_H_
+#define _CCOORDINATESYSTEMGEODETICINTERPOLATIONTRANSFORMDEFPARAMS_H_
+
+
+namespace CSLibrary
+{
+    typedef cs_GeodeticTransform_::csGeodeticXformParameters::csGeodeticXformParmsGridFiles_ csGridFileXformParams;
+
+    class CCoordinateSystemGeodeticInterpolationTransformDefParams :
+        public MgCoordinateSystemGeodeticInterpolationTransformDefParams,
+        public CCoordinateSystemGeodeticTransformDefParams
+    {
+    public:
+        CCoordinateSystemGeodeticInterpolationTransformDefParams(const csGridFileXformParams& params, bool isProtected);
+        ~CCoordinateSystemGeodeticInterpolationTransformDefParams();
+        
+        // >>> MgCoordinateSystemGeodeticInterpolationTransformDefParams
+        virtual void SetGridFiles(MgDisposableCollection* gridFiles);
+        virtual MgDisposableCollection* GetGridFiles();
+			
+        virtual STRING GetFallback();
+        virtual void SetFallback(CREFSTRING);
+
+        virtual MgCoordinateSystemGeodeticTransformGridFile* NewGridFile();
+
+        // <<< MgCoordinateSystemGeodeticInterpolationTransformDefParams
+
+        virtual bool IsValid(); //from MgCoordinateSystemGeodeticTransformDefParams
+        virtual bool IsProtected();
+
+        virtual void Dispose();
+
+    private:
+        void CopyTo(void* target) const;
+        
+        void Reset();
+        void ReleaseInstance();
+
+    private:
+        csGridFileXformParams* gridFileParams;
+    };
+
+} //namespace CSLibrary
+
 #endif //_CCOORDINATESYSTEMGEODETICINTERPOLATIONTRANSFORMDEFPARAMS_H_
\ No newline at end of file


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

Modified: trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticMultipleRegressionTransformDefParams.cpp
===================================================================
--- trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticMultipleRegressionTransformDefParams.cpp	2010-09-21 08:36:03 UTC (rev 5169)
+++ trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticMultipleRegressionTransformDefParams.cpp	2010-09-21 14:52:39 UTC (rev 5170)
@@ -1,133 +1,133 @@
-//
-//  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
-//
-
-#define CS_MAP_DEF_VARIABLE this->mulRegParams
-
-#include "CoordSysMacro.h"
-
-#include "GeometryCommon.h"
-#include "CoordSysCommon.h"
-
-#include "CoordSysUtil.h"
-#include "MentorUtil.h"
-
-#include "CoordSysGeodeticTransformGridFile.h"
-#include "CoordSysGeodeticTransformDefParams.h"
-#include "CoordSysGeodeticMultipleRegressionTransformDefParams.h"
-
-#include <cs_map.h>
-
-using namespace CSLibrary;
-
-CCoordinateSystemGeodeticMultipleRegressionTransformDefParams::CCoordinateSystemGeodeticMultipleRegressionTransformDefParams(
-    const csMultipleRegressionXformParams& params, INT32 mulRegTransformMethod, bool isProtected)
-    : CCoordinateSystemGeodeticTransformDefParams(isProtected)
-    , mulRegParams(NULL), transformationMethod(mulRegTransformMethod)
-{
-    this->Reset();
-    *this->mulRegParams = params;
-}
-
-CCoordinateSystemGeodeticMultipleRegressionTransformDefParams::~CCoordinateSystemGeodeticMultipleRegressionTransformDefParams()
-{
-    this->ReleaseInstance();
-}
-
-void CCoordinateSystemGeodeticMultipleRegressionTransformDefParams::Dispose()
-{
-    delete this;
-}
-
-void CCoordinateSystemGeodeticMultipleRegressionTransformDefParams::Reset()
-{
-    this->ReleaseInstance();
-    
-    this->mulRegParams = (csMultipleRegressionXformParams*) CS_malc(sizeof(csMultipleRegressionXformParams));
-    if (NULL == this->mulRegParams)
-        throw new MgOutOfMemoryException(L"CCoordinateSystemGeodeticMultipleRegressionTransformDefParams.Reset", __LINE__, __WFILE__, NULL, L"", NULL);
-
-    memset(this->mulRegParams, 0, sizeof(csMultipleRegressionXformParams));
-}
-
-void CCoordinateSystemGeodeticMultipleRegressionTransformDefParams::ReleaseInstance()
-{
-    if (NULL != this->mulRegParams)
-    {
-        CS_free(this->mulRegParams);
-        this->mulRegParams = NULL;
-    }
-}
-
-void CCoordinateSystemGeodeticMultipleRegressionTransformDefParams::CopyTo(void* target) const
-{
-    ENSURE_NOT_NULL(target, CCoordinateSystemGeodeticMultipleRegressionTransformDefParams::CopyTo);
-    
-    memcpy(target, this->mulRegParams, sizeof(csMultipleRegressionXformParams));
-}
-
-bool CCoordinateSystemGeodeticMultipleRegressionTransformDefParams::IsValid()
-{
-    //we're relying on the CS_gxchk() method that will be invoked, before the parent transformation
-    //definition is finally passed to CS_Map
-    return true;
-}
-
-bool CCoordinateSystemGeodeticMultipleRegressionTransformDefParams::IsProtected()
-{
-    return CCoordinateSystemGeodeticTransformDefParams::IsProtected();
-}
-
-INT32 CCoordinateSystemGeodeticMultipleRegressionTransformDefParams::GetTransformationMethod()
-{
-    return this->transformationMethod;
-}
-
-void CCoordinateSystemGeodeticMultipleRegressionTransformDefParams::SetTransformationMethod(INT32 mulRegTransformationMethod)
-{
-    VERIFY_NOT_PROTECTED(L"CCoordinateSystemGeodeticMultipleRegressionTransformDefParams::SetTransformationMethod");
-
-    switch(mulRegTransformationMethod)
-    {
-    case MgCoordinateSystemGeodeticMultipleRegressionTransformationMethod::None:
-    case MgCoordinateSystemGeodeticMultipleRegressionTransformationMethod::GeneralPolynomialEpsg:
-    case MgCoordinateSystemGeodeticMultipleRegressionTransformationMethod::MultipleRegression:
-        break;
-
-    default:
-        throw new MgInvalidArgumentException(L"CCoordinateSystemGeodeticMultipleRegressionTransformDefParams.SetTransformationMethod", __LINE__, __WFILE__, NULL, L"", NULL);
-    }
-
-    this->transformationMethod = mulRegTransformationMethod;
-}
-
-//DEFINE_GET_SET_NUMERIC_IDX(CCoordinateSystemGeodeticMultipleRegressionTransformDefParams,PhiBitmap,UINT32,this->mulRegParams->phiBitMap,3)
-//DEFINE_GET_SET_NUMERIC_IDX(CCoordinateSystemGeodeticMultipleRegressionTransformDefParams,LambdaBitmap,UINT32,this->mulRegParams->lambdaBitMap,3)
-//DEFINE_GET_SET_NUMERIC_IDX(CCoordinateSystemGeodeticMultipleRegressionTransformDefParams,HeightBitmap,UINT32,this->mulRegParams->heightBitMap,3)
-
-DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticMultipleRegressionTransformDefParams,Validation,double,this->mulRegParams->validation)
-DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticMultipleRegressionTransformDefParams,TestPhi,double,this->mulRegParams->testPhi)
-DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticMultipleRegressionTransformDefParams,TestLambda,double,this->mulRegParams->testLambda)
-DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticMultipleRegressionTransformDefParams,DeltaPhi,double,this->mulRegParams->deltaPhi)
-DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticMultipleRegressionTransformDefParams,DeltaLambda,double,this->mulRegParams->deltaLambda)
-DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticMultipleRegressionTransformDefParams,DeltaHeight,double,this->mulRegParams->deltaHeight)
-DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticMultipleRegressionTransformDefParams,PhiOffset,double,this->mulRegParams->phiOffset)
-DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticMultipleRegressionTransformDefParams,LambdaOffset,double,this->mulRegParams->lambdaOffset)
-DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticMultipleRegressionTransformDefParams,NormalizationScale,double,this->mulRegParams->normalizationScale)
-        
-DEFINE_GET_SET_NUMERIC_IDX(CCoordinateSystemGeodeticMultipleRegressionTransformDefParams,CoefficientPhi,double,this->mulRegParams->coeffPhi,104)
-DEFINE_GET_SET_NUMERIC_IDX(CCoordinateSystemGeodeticMultipleRegressionTransformDefParams,CoefficientLambda,double,this->mulRegParams->coeffLambda,104)
+//
+//  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
+//
+
+#define CS_MAP_DEF_VARIABLE this->mulRegParams
+
+#include "CoordSysMacro.h"
+
+#include "GeometryCommon.h"
+#include "CoordSysCommon.h"
+
+#include "CoordSysUtil.h"
+#include "MentorUtil.h"
+
+#include "CoordSysGeodeticTransformGridFile.h"
+#include "CoordSysGeodeticTransformDefParams.h"
+#include "CoordSysGeodeticMultipleRegressionTransformDefParams.h"
+
+#include <cs_map.h>
+
+using namespace CSLibrary;
+
+CCoordinateSystemGeodeticMultipleRegressionTransformDefParams::CCoordinateSystemGeodeticMultipleRegressionTransformDefParams(
+    const csMultipleRegressionXformParams& params, INT32 mulRegTransformMethod, bool isProtected)
+    : CCoordinateSystemGeodeticTransformDefParams(isProtected)
+    , mulRegParams(NULL), transformationMethod(mulRegTransformMethod)
+{
+    this->Reset();
+    *this->mulRegParams = params;
+}
+
+CCoordinateSystemGeodeticMultipleRegressionTransformDefParams::~CCoordinateSystemGeodeticMultipleRegressionTransformDefParams()
+{
+    this->ReleaseInstance();
+}
+
+void CCoordinateSystemGeodeticMultipleRegressionTransformDefParams::Dispose()
+{
+    delete this;
+}
+
+void CCoordinateSystemGeodeticMultipleRegressionTransformDefParams::Reset()
+{
+    this->ReleaseInstance();
+    
+    this->mulRegParams = (csMultipleRegressionXformParams*) CS_malc(sizeof(csMultipleRegressionXformParams));
+    if (NULL == this->mulRegParams)
+        throw new MgOutOfMemoryException(L"CCoordinateSystemGeodeticMultipleRegressionTransformDefParams.Reset", __LINE__, __WFILE__, NULL, L"", NULL);
+
+    memset(this->mulRegParams, 0, sizeof(csMultipleRegressionXformParams));
+}
+
+void CCoordinateSystemGeodeticMultipleRegressionTransformDefParams::ReleaseInstance()
+{
+    if (NULL != this->mulRegParams)
+    {
+        CS_free(this->mulRegParams);
+        this->mulRegParams = NULL;
+    }
+}
+
+void CCoordinateSystemGeodeticMultipleRegressionTransformDefParams::CopyTo(void* target) const
+{
+    ENSURE_NOT_NULL(target, CCoordinateSystemGeodeticMultipleRegressionTransformDefParams::CopyTo);
+    
+    memcpy(target, this->mulRegParams, sizeof(csMultipleRegressionXformParams));
+}
+
+bool CCoordinateSystemGeodeticMultipleRegressionTransformDefParams::IsValid()
+{
+    //we're relying on the CS_gxchk() method that will be invoked, before the parent transformation
+    //definition is finally passed to CS_Map
+    return true;
+}
+
+bool CCoordinateSystemGeodeticMultipleRegressionTransformDefParams::IsProtected()
+{
+    return CCoordinateSystemGeodeticTransformDefParams::IsProtected();
+}
+
+INT32 CCoordinateSystemGeodeticMultipleRegressionTransformDefParams::GetTransformationMethod()
+{
+    return this->transformationMethod;
+}
+
+void CCoordinateSystemGeodeticMultipleRegressionTransformDefParams::SetTransformationMethod(INT32 mulRegTransformationMethod)
+{
+    VERIFY_NOT_PROTECTED(L"CCoordinateSystemGeodeticMultipleRegressionTransformDefParams::SetTransformationMethod");
+
+    switch(mulRegTransformationMethod)
+    {
+    case MgCoordinateSystemGeodeticMultipleRegressionTransformationMethod::None:
+    case MgCoordinateSystemGeodeticMultipleRegressionTransformationMethod::GeneralPolynomialEpsg:
+    case MgCoordinateSystemGeodeticMultipleRegressionTransformationMethod::MultipleRegression:
+        break;
+
+    default:
+        throw new MgInvalidArgumentException(L"CCoordinateSystemGeodeticMultipleRegressionTransformDefParams.SetTransformationMethod", __LINE__, __WFILE__, NULL, L"", NULL);
+    }
+
+    this->transformationMethod = mulRegTransformationMethod;
+}
+
+//DEFINE_GET_SET_NUMERIC_IDX(CCoordinateSystemGeodeticMultipleRegressionTransformDefParams,PhiBitmap,UINT32,this->mulRegParams->phiBitMap,3)
+//DEFINE_GET_SET_NUMERIC_IDX(CCoordinateSystemGeodeticMultipleRegressionTransformDefParams,LambdaBitmap,UINT32,this->mulRegParams->lambdaBitMap,3)
+//DEFINE_GET_SET_NUMERIC_IDX(CCoordinateSystemGeodeticMultipleRegressionTransformDefParams,HeightBitmap,UINT32,this->mulRegParams->heightBitMap,3)
+
+DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticMultipleRegressionTransformDefParams,Validation,double,this->mulRegParams->validation)
+DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticMultipleRegressionTransformDefParams,TestPhi,double,this->mulRegParams->testPhi)
+DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticMultipleRegressionTransformDefParams,TestLambda,double,this->mulRegParams->testLambda)
+DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticMultipleRegressionTransformDefParams,DeltaPhi,double,this->mulRegParams->deltaPhi)
+DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticMultipleRegressionTransformDefParams,DeltaLambda,double,this->mulRegParams->deltaLambda)
+DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticMultipleRegressionTransformDefParams,DeltaHeight,double,this->mulRegParams->deltaHeight)
+DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticMultipleRegressionTransformDefParams,PhiOffset,double,this->mulRegParams->phiOffset)
+DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticMultipleRegressionTransformDefParams,LambdaOffset,double,this->mulRegParams->lambdaOffset)
+DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticMultipleRegressionTransformDefParams,NormalizationScale,double,this->mulRegParams->normalizationScale)
+        
+DEFINE_GET_SET_NUMERIC_IDX(CCoordinateSystemGeodeticMultipleRegressionTransformDefParams,CoefficientPhi,double,this->mulRegParams->coeffPhi,104)
+DEFINE_GET_SET_NUMERIC_IDX(CCoordinateSystemGeodeticMultipleRegressionTransformDefParams,CoefficientLambda,double,this->mulRegParams->coeffLambda,104)
 DEFINE_GET_SET_NUMERIC_IDX(CCoordinateSystemGeodeticMultipleRegressionTransformDefParams,CoefficientHeight,double,this->mulRegParams->coeffHeight,104)
\ No newline at end of file


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

Modified: trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticMultipleRegressionTransformDefParams.h
===================================================================
--- trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticMultipleRegressionTransformDefParams.h	2010-09-21 08:36:03 UTC (rev 5169)
+++ trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticMultipleRegressionTransformDefParams.h	2010-09-21 14:52:39 UTC (rev 5170)
@@ -1,101 +1,101 @@
-//
-//  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 _CCOORDINATESYSTEMGEODETICMULTIPLEREGRESSIONTRANSFORMDEFPARAMS_H_
-#define _CCOORDINATESYSTEMGEODETICMULTIPLEREGRESSIONTRANSFORMDEFPARAMS_H_
-
-
-namespace CSLibrary
-{
-    typedef cs_GeodeticTransform_::csGeodeticXformParameters::csGeodeticXformParmsDmaMulReg_ csMultipleRegressionXformParams;
-
-    class CCoordinateSystemGeodeticMultipleRegressionTransformDefParams :
-        public MgCoordinateSystemGeodeticMultipleRegressionTransformDefParams,
-        public CCoordinateSystemGeodeticTransformDefParams
-    {
-    public:
-
-        CCoordinateSystemGeodeticMultipleRegressionTransformDefParams(const csMultipleRegressionXformParams& mulRegParams,
-            INT32 mulRegTransformMethod, bool isProtected);
-        ~CCoordinateSystemGeodeticMultipleRegressionTransformDefParams();
-
-        virtual void Dispose();
-        virtual bool IsValid();
-        virtual bool IsProtected();
-
-        //virtual UINT32 GetPhiBitmap(INT32 index /* range [0..3]*/); //long compiles as 32 bit in MS VC;
-        //virtual void SetPhiBitmap(INT32 index, UINT32 value); //long compiles as 32 bit in MS VC;
-
-        //virtual UINT32 GetLambdaBitmap(INT32 index /* range [0..3]*/); //long compiles as 32 bit in MS VC;
-        //virtual void SetLambdaBitmap(INT32 index, UINT32 value); //long compiles as 32 bit in MS VC;
-        //
-        //virtual UINT32 GetHeightBitmap(INT32 index /* range [0..3]*/); //long compiles as 32 bit in MS VC;
-        //virtual void SetHeightBitmap(INT32 index, UINT32 value); //long compiles as 32 bit in MS VC;
-
-        virtual double GetValidation();
-        virtual void SetValidation(double validation);
-
-        virtual double GetTestPhi();
-        virtual void SetTestPhi(double testPhi);
-
-        virtual double GetTestLambda();
-        virtual void SetTestLambda(double testLambda);
-        		
-        virtual double GetDeltaPhi();
-        virtual void SetDeltaPhi(double deltaPhi);
-
-        virtual double GetDeltaLambda();
-        virtual void SetDeltaLambda(double deltaLambda);
-
-        virtual double GetDeltaHeight();
-        virtual void SetDeltaHeight(double deltaHeight);
-    			
-        virtual double GetPhiOffset();
-        virtual void SetPhiOffset(double phiOffset);
-
-        virtual double GetLambdaOffset();
-        virtual void SetLambdaOffset(double lambdaOffset);
-        
-        virtual double GetNormalizationScale();
-        virtual void SetNormalizationScale(double NormalizationScale);
-
-        virtual double GetCoefficientPhi(INT32 index /* range [0..104]*/);
-        virtual void SetCoefficientPhi(INT32 index, double value);
-        
-        virtual double GetCoefficientLambda(INT32 index /* range [0..104]*/);
-        virtual void SetCoefficientLambda(INT32 index, double value);
-
-        virtual double GetCoefficientHeight(INT32 index /* range [0..104]*/);
-        virtual void SetCoefficientHeight(INT32 index, double value);
-
-        virtual INT32 GetTransformationMethod();
-        virtual void SetTransformationMethod(INT32 mulRegTransformationMethod);
-
-    private:
-        void CopyTo(void* target) const;
-        
-        void Reset();
-        void ReleaseInstance();
-    
-    private:
-        csMultipleRegressionXformParams* mulRegParams;
-        INT32 transformationMethod;
-    };
-
-} //namespace CSLibrary
-
+//
+//  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 _CCOORDINATESYSTEMGEODETICMULTIPLEREGRESSIONTRANSFORMDEFPARAMS_H_
+#define _CCOORDINATESYSTEMGEODETICMULTIPLEREGRESSIONTRANSFORMDEFPARAMS_H_
+
+
+namespace CSLibrary
+{
+    typedef cs_GeodeticTransform_::csGeodeticXformParameters::csGeodeticXformParmsDmaMulReg_ csMultipleRegressionXformParams;
+
+    class CCoordinateSystemGeodeticMultipleRegressionTransformDefParams :
+        public MgCoordinateSystemGeodeticMultipleRegressionTransformDefParams,
+        public CCoordinateSystemGeodeticTransformDefParams
+    {
+    public:
+
+        CCoordinateSystemGeodeticMultipleRegressionTransformDefParams(const csMultipleRegressionXformParams& mulRegParams,
+            INT32 mulRegTransformMethod, bool isProtected);
+        ~CCoordinateSystemGeodeticMultipleRegressionTransformDefParams();
+
+        virtual void Dispose();
+        virtual bool IsValid();
+        virtual bool IsProtected();
+
+        //virtual UINT32 GetPhiBitmap(INT32 index /* range [0..3]*/); //long compiles as 32 bit in MS VC;
+        //virtual void SetPhiBitmap(INT32 index, UINT32 value); //long compiles as 32 bit in MS VC;
+
+        //virtual UINT32 GetLambdaBitmap(INT32 index /* range [0..3]*/); //long compiles as 32 bit in MS VC;
+        //virtual void SetLambdaBitmap(INT32 index, UINT32 value); //long compiles as 32 bit in MS VC;
+        //
+        //virtual UINT32 GetHeightBitmap(INT32 index /* range [0..3]*/); //long compiles as 32 bit in MS VC;
+        //virtual void SetHeightBitmap(INT32 index, UINT32 value); //long compiles as 32 bit in MS VC;
+
+        virtual double GetValidation();
+        virtual void SetValidation(double validation);
+
+        virtual double GetTestPhi();
+        virtual void SetTestPhi(double testPhi);
+
+        virtual double GetTestLambda();
+        virtual void SetTestLambda(double testLambda);
+        		
+        virtual double GetDeltaPhi();
+        virtual void SetDeltaPhi(double deltaPhi);
+
+        virtual double GetDeltaLambda();
+        virtual void SetDeltaLambda(double deltaLambda);
+
+        virtual double GetDeltaHeight();
+        virtual void SetDeltaHeight(double deltaHeight);
+    			
+        virtual double GetPhiOffset();
+        virtual void SetPhiOffset(double phiOffset);
+
+        virtual double GetLambdaOffset();
+        virtual void SetLambdaOffset(double lambdaOffset);
+        
+        virtual double GetNormalizationScale();
+        virtual void SetNormalizationScale(double NormalizationScale);
+
+        virtual double GetCoefficientPhi(INT32 index /* range [0..104]*/);
+        virtual void SetCoefficientPhi(INT32 index, double value);
+        
+        virtual double GetCoefficientLambda(INT32 index /* range [0..104]*/);
+        virtual void SetCoefficientLambda(INT32 index, double value);
+
+        virtual double GetCoefficientHeight(INT32 index /* range [0..104]*/);
+        virtual void SetCoefficientHeight(INT32 index, double value);
+
+        virtual INT32 GetTransformationMethod();
+        virtual void SetTransformationMethod(INT32 mulRegTransformationMethod);
+
+    private:
+        void CopyTo(void* target) const;
+        
+        void Reset();
+        void ReleaseInstance();
+    
+    private:
+        csMultipleRegressionXformParams* mulRegParams;
+        INT32 transformationMethod;
+    };
+
+} //namespace CSLibrary
+
 #endif //_CCOORDINATESYSTEMGEODETICMULTIPLEREGRESSIONTRANSFORMDEFPARAMS_H_
\ No newline at end of file


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

Modified: trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticPath.cpp
===================================================================
--- trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticPath.cpp	2010-09-21 08:36:03 UTC (rev 5169)
+++ trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticPath.cpp	2010-09-21 14:52:39 UTC (rev 5170)
@@ -1,237 +1,237 @@
-//
-//  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 "GeometryCommon.h"
-#include "CoordSysCommon.h"
-#include "CriticalSection.h"
-
-#include "CoordSysGeodeticPathElement.h"
-#include "CoordSysGeodeticPath.h"
-
-#include "CoordSysTransform.h"          //for CCoordinateSystemTransform
-#include "CoordSysUtil.h"               //for CsDictionaryOpenMode
-#include "MentorDictionary.h"
-
-using namespace CSLibrary;
-
-#define CS_MAP_DEF_VARIABLE this->pathDefinition //needed by CoordSysMacro
-
-#include "CoordSysMacro.h" //for DEFINE_GET_SET_STRING and DEFINE_GET_SET_NUMERIC
-
-CCoordinateSystemGeodeticPath::CCoordinateSystemGeodeticPath(MgCoordinateSystemCatalog* pCatalog)
-    : pathDefinition(NULL), catalog(SAFE_ADDREF(pCatalog))
-{
-    if (NULL == pCatalog)
-        throw new MgNullArgumentException(L"CCoordinateSystemGeodeticPath.ctor", __LINE__, __WFILE__, NULL, L"", NULL);
-}
-
-CCoordinateSystemGeodeticPath::~CCoordinateSystemGeodeticPath()
-{
-    this->CleanupInstanceVariables();
-}
-
-void CCoordinateSystemGeodeticPath::Dispose()
-{
-    delete this;
-}
-
-void CCoordinateSystemGeodeticPath::CleanupInstanceVariables()
-{
-    if (NULL != this->pathDefinition)
-    {
-        CS_free(this->pathDefinition);
-        this->pathDefinition = NULL;
-    }
-}
-
-void CCoordinateSystemGeodeticPath::Reset()
-{
-    this->CleanupInstanceVariables();
-    this->pathDefinition = (cs_GeodeticPath_*)CS_malc(sizeof(cs_GeodeticPath_));
-    
-    if (NULL == this->pathDefinition)
-        throw new MgOutOfMemoryException(L"CCoordinateSystemGeodeticPath.Initialize", __LINE__, __WFILE__, NULL, L"", NULL);
-
-    memset ((void*)this->pathDefinition, 0, sizeof(cs_GeodeticPath_));
-}
-
-void CCoordinateSystemGeodeticPath::Initialize(const cs_GeodeticPath_& pathDef)
-{
-    this->Reset();
-    
-    *this->pathDefinition = pathDef;
-}
-
-MgCoordinateSystemGeodeticPath* CCoordinateSystemGeodeticPath::CreateClone()
-{
-    VERIFY_INITIALIZED(L"CCoordinateSystemGeodeticPath.CreateClone");
-
-    Ptr<CCoordinateSystemGeodeticPath> clonedPath = new CCoordinateSystemGeodeticPath(this->catalog);
-    clonedPath->Initialize(*this->pathDefinition);
-    clonedPath->pathDefinition->protect = 0; //unset the protection flag; otherwise the caller wouldn't be able to change any values
-
-    return clonedPath.Detach();
-}
-
-MgCoordinateSystemGeodeticPathElement* CCoordinateSystemGeodeticPath::NewPathElement()
-{
-    return new CCoordinateSystemGeodeticPathElement(NULL, false);
-}
-
-void CCoordinateSystemGeodeticPath::CopyTo(cs_GeodeticPath_& pathDef) const
-{
-    VERIFY_INITIALIZED(L"CCoordinateSystemGeodeticPath.CopyTo");
-    pathDef = *this->pathDefinition;
-}
-
-//helper - don't delete; will be called by MentorUtil / DictionaryUtil
-bool CCoordinateSystemGeodeticPath::IsEncrypted()
-{
-    return false;
-}
-
-bool CCoordinateSystemGeodeticPath::IsProtected()
-{
-    VERIFY_INITIALIZED(L"CCoordinateSystemGeodeticPath.IsProtected");
-    return DICTIONARY_SYS_DEF == this->pathDefinition->protect;
-}
-
-
-bool CCoordinateSystemGeodeticPath::IsValid()
-{
-    if (NULL == this->pathDefinition)
-        return false;
-
-    //make sure, the names for this path and the datums are set
-    size_t pathNameLength = strlen(this->pathDefinition->pathName);
-    if (0 == pathNameLength || pathNameLength >= sizeof(this->pathDefinition->pathName))
-        return false;
-
-    size_t srcDatumNameLength = strlen(this->pathDefinition->srcDatum);
-    if (0 == srcDatumNameLength || srcDatumNameLength >= sizeof(this->pathDefinition->srcDatum))
-        return false;
-
-    size_t trgDatumNameLength = strlen(this->pathDefinition->trgDatum);
-    if (0 == trgDatumNameLength || trgDatumNameLength >= sizeof(this->pathDefinition->trgDatum))
-        return false;
-
-    //check, whether there are only valid path elements according to MgCoordinateSystemGeodeticPathElement::IsValid()
-    Ptr<MgDisposableCollection> pathElements = this->GetPathElements();
-    INT32 pathElementCount = pathElements->GetCount();
-    if (0 == pathElementCount || pathElementCount > csPATH_MAXXFRM)
-        return false;
-
-    if (pathElementCount != this->pathDefinition->elementCount)
-        return false;
-
-    for(INT32 i = 0; i < pathElementCount; i++)
-    {
-        Ptr<MgDisposable> mgDisposable = pathElements->GetItem(i);
-        MgCoordinateSystemGeodeticPathElement* pathElement = dynamic_cast<MgCoordinateSystemGeodeticPathElement*>(mgDisposable.p);
-        if (NULL == pathElement)
-            throw new MgInvalidArgumentException(L"CCoordinateSystemGeodeticPath.IsValid", __LINE__, __WFILE__, NULL, L"", NULL);
-
-        if (!pathElement->IsValid())
-            return false;
-    }
-
-    //TODO: add gp_gpchk in cs_map.h
-    return true; //for any other stuff, like [accuracy] etc. rely on cs_gpcheck
-}
-
-//all getters and setters
-
-MgDisposableCollection* CCoordinateSystemGeodeticPath::GetPathElements()
-{
-    VERIFY_INITIALIZED(L"CCoordinateSystemGeodeticPath.GetPathElements");
-
-    Ptr<MgDisposableCollection> pathElements = new MgDisposableCollection();
-
-    const INT32 pathElementCount = this->pathDefinition->elementCount;
-    for(int i = 0; (i < pathElementCount && i <= csPATH_MAXXFRM); i++)
-    {
-        const cs_GeodeticPathElement_ pathElement = this->pathDefinition->geodeticPathElements[i];
-
-        Ptr<CCoordinateSystemGeodeticPathElement> mgPathElement =
-            new CCoordinateSystemGeodeticPathElement(&pathElement, this->IsProtected());
-        
-        //the elements will be released when the collection is released
-        pathElements->Add(mgPathElement);
-    }
-
-    return pathElements.Detach();
-}
-   
-void CCoordinateSystemGeodeticPath::SetPathElements(MgDisposableCollection* pathElements)
-{
-    VERIFY_INITIALIZED(L"CCoordinateSystemGeodeticPath.SetPathElements");
-    VERIFY_NOT_PROTECTED(L"CCoordinateSystemGeodeticPath.SetPathElements");
-
-    ENSURE_NOT_NULL(pathElements, CCoordinateSystemGeodeticPath::SetPathElements);
-
-    const INT32 pathElementCount = pathElements->GetCount();
-    if (0 == pathElementCount || pathElementCount > csPATH_MAXXFRM)
-        throw new MgInvalidArgumentException(L"CCoordinateSystemGeodeticPath.SetPathElements", __LINE__, __WFILE__, NULL, L"", NULL);
-
-    cs_GeodeticPathElement_* validElements = new cs_GeodeticPathElement_[pathElementCount];
-
-    MG_TRY()
-
-    memset(validElements, 0, pathElementCount * sizeof(cs_GeodeticPathElement_));
-
-    //we don't take ownership over the elements
-    for(int i = 0; i < pathElementCount; i++)
-    {
-        Ptr<MgDisposable> collectionItem = pathElements->GetItem(i);
-        MgCoordinateSystemGeodeticPathElement* pathElement = dynamic_cast<MgCoordinateSystemGeodeticPathElement*>(collectionItem.p);
-        if (NULL == pathElement)
-            throw new MgInvalidArgumentException(L"CCoordinateSystemGeodeticPath.SetPathElements", __LINE__, __WFILE__, NULL, L"", NULL);
-
-        cs_GeodeticPathElement_& pathElementDef = validElements[i];
-
-        //set the name of the transformation on the temporary [pathElementDef] we'll later copy into our own [this->pathDefinition]
-        MentorSetString(pathElement->GetTransformName(),
-            pathElementDef.geodeticXformName /* target buffer */, sizeof(pathElementDef.geodeticXformName));
-
-        pathElementDef.direction = pathElement->GetIsInversed() ? cs_PATHDIR_INV : cs_PATHDIR_FWD;
-    }
-
-    //wipe out the current path definition settings...
-    memset(this->pathDefinition->geodeticPathElements, 0, csPATH_MAXXFRM * sizeof(cs_GeodeticPathElement_));
-    //...copy the new values over...
-    memcpy(this->pathDefinition->geodeticPathElements, validElements, pathElementCount * sizeof(cs_GeodeticPathElement_));
-    //...and set the number of elements contained in the struct
-    this->pathDefinition->elementCount = pathElementCount;
-
-    MG_CATCH(L"CCoordinateSystemGeodeticPath.SetPathElements")
-
-    delete[] validElements;
-
-    MG_THROW();
-}
-
-DEFINE_GET_SET_STRING(CCoordinateSystemGeodeticPath,PathName,this->pathDefinition->pathName)
-DEFINE_GET_SET_STRING(CCoordinateSystemGeodeticPath,Description,this->pathDefinition->description)
-DEFINE_GET_SET_STRING(CCoordinateSystemGeodeticPath,Group,this->pathDefinition->group)
-DEFINE_GET_SET_STRING(CCoordinateSystemGeodeticPath,Source,this->pathDefinition->source)
-DEFINE_GET_SET_STRING(CCoordinateSystemGeodeticPath,SourceDatum,this->pathDefinition->srcDatum)
-DEFINE_GET_SET_STRING(CCoordinateSystemGeodeticPath,TargetDatum,this->pathDefinition->trgDatum)
-
-DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticPath,Accuracy,double,this->pathDefinition->accuracy)
-DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticPath,IsReversible,bool,this->pathDefinition->reversible)
-DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticPath,EpsgCode,INT32,this->pathDefinition->epsgCode)
-DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticPath,EpsgVariant,INT32,this->pathDefinition->variant)
+//
+//  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 "GeometryCommon.h"
+#include "CoordSysCommon.h"
+#include "CriticalSection.h"
+
+#include "CoordSysGeodeticPathElement.h"
+#include "CoordSysGeodeticPath.h"
+
+#include "CoordSysTransform.h"          //for CCoordinateSystemTransform
+#include "CoordSysUtil.h"               //for CsDictionaryOpenMode
+#include "MentorDictionary.h"
+
+using namespace CSLibrary;
+
+#define CS_MAP_DEF_VARIABLE this->pathDefinition //needed by CoordSysMacro
+
+#include "CoordSysMacro.h" //for DEFINE_GET_SET_STRING and DEFINE_GET_SET_NUMERIC
+
+CCoordinateSystemGeodeticPath::CCoordinateSystemGeodeticPath(MgCoordinateSystemCatalog* pCatalog)
+    : pathDefinition(NULL), catalog(SAFE_ADDREF(pCatalog))
+{
+    if (NULL == pCatalog)
+        throw new MgNullArgumentException(L"CCoordinateSystemGeodeticPath.ctor", __LINE__, __WFILE__, NULL, L"", NULL);
+}
+
+CCoordinateSystemGeodeticPath::~CCoordinateSystemGeodeticPath()
+{
+    this->CleanupInstanceVariables();
+}
+
+void CCoordinateSystemGeodeticPath::Dispose()
+{
+    delete this;
+}
+
+void CCoordinateSystemGeodeticPath::CleanupInstanceVariables()
+{
+    if (NULL != this->pathDefinition)
+    {
+        CS_free(this->pathDefinition);
+        this->pathDefinition = NULL;
+    }
+}
+
+void CCoordinateSystemGeodeticPath::Reset()
+{
+    this->CleanupInstanceVariables();
+    this->pathDefinition = (cs_GeodeticPath_*)CS_malc(sizeof(cs_GeodeticPath_));
+    
+    if (NULL == this->pathDefinition)
+        throw new MgOutOfMemoryException(L"CCoordinateSystemGeodeticPath.Initialize", __LINE__, __WFILE__, NULL, L"", NULL);
+
+    memset ((void*)this->pathDefinition, 0, sizeof(cs_GeodeticPath_));
+}
+
+void CCoordinateSystemGeodeticPath::Initialize(const cs_GeodeticPath_& pathDef)
+{
+    this->Reset();
+    
+    *this->pathDefinition = pathDef;
+}
+
+MgCoordinateSystemGeodeticPath* CCoordinateSystemGeodeticPath::CreateClone()
+{
+    VERIFY_INITIALIZED(L"CCoordinateSystemGeodeticPath.CreateClone");
+
+    Ptr<CCoordinateSystemGeodeticPath> clonedPath = new CCoordinateSystemGeodeticPath(this->catalog);
+    clonedPath->Initialize(*this->pathDefinition);
+    clonedPath->pathDefinition->protect = 0; //unset the protection flag; otherwise the caller wouldn't be able to change any values
+
+    return clonedPath.Detach();
+}
+
+MgCoordinateSystemGeodeticPathElement* CCoordinateSystemGeodeticPath::NewPathElement()
+{
+    return new CCoordinateSystemGeodeticPathElement(NULL, false);
+}
+
+void CCoordinateSystemGeodeticPath::CopyTo(cs_GeodeticPath_& pathDef) const
+{
+    VERIFY_INITIALIZED(L"CCoordinateSystemGeodeticPath.CopyTo");
+    pathDef = *this->pathDefinition;
+}
+
+//helper - don't delete; will be called by MentorUtil / DictionaryUtil
+bool CCoordinateSystemGeodeticPath::IsEncrypted()
+{
+    return false;
+}
+
+bool CCoordinateSystemGeodeticPath::IsProtected()
+{
+    VERIFY_INITIALIZED(L"CCoordinateSystemGeodeticPath.IsProtected");
+    return DICTIONARY_SYS_DEF == this->pathDefinition->protect;
+}
+
+
+bool CCoordinateSystemGeodeticPath::IsValid()
+{
+    if (NULL == this->pathDefinition)
+        return false;
+
+    //make sure, the names for this path and the datums are set
+    size_t pathNameLength = strlen(this->pathDefinition->pathName);
+    if (0 == pathNameLength || pathNameLength >= sizeof(this->pathDefinition->pathName))
+        return false;
+
+    size_t srcDatumNameLength = strlen(this->pathDefinition->srcDatum);
+    if (0 == srcDatumNameLength || srcDatumNameLength >= sizeof(this->pathDefinition->srcDatum))
+        return false;
+
+    size_t trgDatumNameLength = strlen(this->pathDefinition->trgDatum);
+    if (0 == trgDatumNameLength || trgDatumNameLength >= sizeof(this->pathDefinition->trgDatum))
+        return false;
+
+    //check, whether there are only valid path elements according to MgCoordinateSystemGeodeticPathElement::IsValid()
+    Ptr<MgDisposableCollection> pathElements = this->GetPathElements();
+    INT32 pathElementCount = pathElements->GetCount();
+    if (0 == pathElementCount || pathElementCount > csPATH_MAXXFRM)
+        return false;
+
+    if (pathElementCount != this->pathDefinition->elementCount)
+        return false;
+
+    for(INT32 i = 0; i < pathElementCount; i++)
+    {
+        Ptr<MgDisposable> mgDisposable = pathElements->GetItem(i);
+        MgCoordinateSystemGeodeticPathElement* pathElement = dynamic_cast<MgCoordinateSystemGeodeticPathElement*>(mgDisposable.p);
+        if (NULL == pathElement)
+            throw new MgInvalidArgumentException(L"CCoordinateSystemGeodeticPath.IsValid", __LINE__, __WFILE__, NULL, L"", NULL);
+
+        if (!pathElement->IsValid())
+            return false;
+    }
+
+    //TODO: add gp_gpchk in cs_map.h
+    return true; //for any other stuff, like [accuracy] etc. rely on cs_gpcheck
+}
+
+//all getters and setters
+
+MgDisposableCollection* CCoordinateSystemGeodeticPath::GetPathElements()
+{
+    VERIFY_INITIALIZED(L"CCoordinateSystemGeodeticPath.GetPathElements");
+
+    Ptr<MgDisposableCollection> pathElements = new MgDisposableCollection();
+
+    const INT32 pathElementCount = this->pathDefinition->elementCount;
+    for(int i = 0; (i < pathElementCount && i <= csPATH_MAXXFRM); i++)
+    {
+        const cs_GeodeticPathElement_ pathElement = this->pathDefinition->geodeticPathElements[i];
+
+        Ptr<CCoordinateSystemGeodeticPathElement> mgPathElement =
+            new CCoordinateSystemGeodeticPathElement(&pathElement, this->IsProtected());
+        
+        //the elements will be released when the collection is released
+        pathElements->Add(mgPathElement);
+    }
+
+    return pathElements.Detach();
+}
+   
+void CCoordinateSystemGeodeticPath::SetPathElements(MgDisposableCollection* pathElements)
+{
+    VERIFY_INITIALIZED(L"CCoordinateSystemGeodeticPath.SetPathElements");
+    VERIFY_NOT_PROTECTED(L"CCoordinateSystemGeodeticPath.SetPathElements");
+
+    ENSURE_NOT_NULL(pathElements, CCoordinateSystemGeodeticPath::SetPathElements);
+
+    const INT32 pathElementCount = pathElements->GetCount();
+    if (0 == pathElementCount || pathElementCount > csPATH_MAXXFRM)
+        throw new MgInvalidArgumentException(L"CCoordinateSystemGeodeticPath.SetPathElements", __LINE__, __WFILE__, NULL, L"", NULL);
+
+    cs_GeodeticPathElement_* validElements = new cs_GeodeticPathElement_[pathElementCount];
+
+    MG_TRY()
+
+    memset(validElements, 0, pathElementCount * sizeof(cs_GeodeticPathElement_));
+
+    //we don't take ownership over the elements
+    for(int i = 0; i < pathElementCount; i++)
+    {
+        Ptr<MgDisposable> collectionItem = pathElements->GetItem(i);
+        MgCoordinateSystemGeodeticPathElement* pathElement = dynamic_cast<MgCoordinateSystemGeodeticPathElement*>(collectionItem.p);
+        if (NULL == pathElement)
+            throw new MgInvalidArgumentException(L"CCoordinateSystemGeodeticPath.SetPathElements", __LINE__, __WFILE__, NULL, L"", NULL);
+
+        cs_GeodeticPathElement_& pathElementDef = validElements[i];
+
+        //set the name of the transformation on the temporary [pathElementDef] we'll later copy into our own [this->pathDefinition]
+        MentorSetString(pathElement->GetTransformName(),
+            pathElementDef.geodeticXformName /* target buffer */, sizeof(pathElementDef.geodeticXformName));
+
+        pathElementDef.direction = pathElement->GetIsInversed() ? cs_PATHDIR_INV : cs_PATHDIR_FWD;
+    }
+
+    //wipe out the current path definition settings...
+    memset(this->pathDefinition->geodeticPathElements, 0, csPATH_MAXXFRM * sizeof(cs_GeodeticPathElement_));
+    //...copy the new values over...
+    memcpy(this->pathDefinition->geodeticPathElements, validElements, pathElementCount * sizeof(cs_GeodeticPathElement_));
+    //...and set the number of elements contained in the struct
+    this->pathDefinition->elementCount = pathElementCount;
+
+    MG_CATCH(L"CCoordinateSystemGeodeticPath.SetPathElements")
+
+    delete[] validElements;
+
+    MG_THROW();
+}
+
+DEFINE_GET_SET_STRING(CCoordinateSystemGeodeticPath,PathName,this->pathDefinition->pathName)
+DEFINE_GET_SET_STRING(CCoordinateSystemGeodeticPath,Description,this->pathDefinition->description)
+DEFINE_GET_SET_STRING(CCoordinateSystemGeodeticPath,Group,this->pathDefinition->group)
+DEFINE_GET_SET_STRING(CCoordinateSystemGeodeticPath,Source,this->pathDefinition->source)
+DEFINE_GET_SET_STRING(CCoordinateSystemGeodeticPath,SourceDatum,this->pathDefinition->srcDatum)
+DEFINE_GET_SET_STRING(CCoordinateSystemGeodeticPath,TargetDatum,this->pathDefinition->trgDatum)
+
+DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticPath,Accuracy,double,this->pathDefinition->accuracy)
+DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticPath,IsReversible,bool,this->pathDefinition->reversible)
+DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticPath,EpsgCode,INT32,this->pathDefinition->epsgCode)
+DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticPath,EpsgVariant,INT32,this->pathDefinition->variant)


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

Modified: trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticPath.h
===================================================================
--- trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticPath.h	2010-09-21 08:36:03 UTC (rev 5169)
+++ trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticPath.h	2010-09-21 14:52:39 UTC (rev 5170)
@@ -1,91 +1,91 @@
-//
-//  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 _CCOORDINATESYSTEMGEODETICPATH_H_
-#define _CCOORDINATESYSTEMGEODETICPATH_H_
-
-namespace CSLibrary
-{
-
-    class CCoordinateSystemGeodeticPath : public MgCoordinateSystemGeodeticPath
-    {
-    public:
-        CCoordinateSystemGeodeticPath(MgCoordinateSystemCatalog* pCatalog);
-        ~CCoordinateSystemGeodeticPath();
-
-        virtual void Dispose();
-        
-        void Initialize(const cs_GeodeticPath_& pathDef);
-        void Reset();
-        
-        virtual MgCoordinateSystemGeodeticPath* CreateClone();
-        virtual MgCoordinateSystemGeodeticPathElement* NewPathElement();
-
-        //properties
-        virtual STRING GetPathName();
-        virtual void SetPathName(CREFSTRING);
-
-        virtual STRING GetDescription();  
-        virtual void SetDescription(CREFSTRING);
-
-        virtual STRING GetGroup();  
-        virtual void SetGroup(CREFSTRING);
-
-        virtual STRING GetSource();  
-        virtual void SetSource(CREFSTRING);
-
-        virtual STRING GetTargetDatum();  
-        virtual void SetTargetDatum(CREFSTRING);
-
-        virtual STRING GetSourceDatum();  
-        virtual void SetSourceDatum(CREFSTRING);
-
-        virtual double GetAccuracy(); 
-        virtual void SetAccuracy(double accuracy);
-
-        virtual bool GetIsReversible();
-        virtual void SetIsReversible(bool isReversible);
-
-        virtual INT32 GetEpsgCode();
-        virtual void SetEpsgCode(INT32 epsgCode);
-
-        virtual INT32 GetEpsgVariant();
-        virtual void SetEpsgVariant(INT32 epsgVariant);
-
-        virtual MgDisposableCollection* GetPathElements();
-        virtual void SetPathElements(MgDisposableCollection* pathElements);
-
-        //helper - don't delete
-        virtual bool IsEncrypted();
-        
-        virtual bool IsProtected();
-        virtual bool IsValid();
-
-        void CopyTo(cs_GeodeticPath_& pathDef) const;
-    
-    private:
-        void CleanupInstanceVariables();
-
-    private:
-        cs_GeodeticPath_* pathDefinition;
-        Ptr<MgCoordinateSystemCatalog> catalog;
-    };
-
-} //namespace CSLibrary
-
+//
+//  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 _CCOORDINATESYSTEMGEODETICPATH_H_
+#define _CCOORDINATESYSTEMGEODETICPATH_H_
+
+namespace CSLibrary
+{
+
+    class CCoordinateSystemGeodeticPath : public MgCoordinateSystemGeodeticPath
+    {
+    public:
+        CCoordinateSystemGeodeticPath(MgCoordinateSystemCatalog* pCatalog);
+        ~CCoordinateSystemGeodeticPath();
+
+        virtual void Dispose();
+        
+        void Initialize(const cs_GeodeticPath_& pathDef);
+        void Reset();
+        
+        virtual MgCoordinateSystemGeodeticPath* CreateClone();
+        virtual MgCoordinateSystemGeodeticPathElement* NewPathElement();
+
+        //properties
+        virtual STRING GetPathName();
+        virtual void SetPathName(CREFSTRING);
+
+        virtual STRING GetDescription();  
+        virtual void SetDescription(CREFSTRING);
+
+        virtual STRING GetGroup();  
+        virtual void SetGroup(CREFSTRING);
+
+        virtual STRING GetSource();  
+        virtual void SetSource(CREFSTRING);
+
+        virtual STRING GetTargetDatum();  
+        virtual void SetTargetDatum(CREFSTRING);
+
+        virtual STRING GetSourceDatum();  
+        virtual void SetSourceDatum(CREFSTRING);
+
+        virtual double GetAccuracy(); 
+        virtual void SetAccuracy(double accuracy);
+
+        virtual bool GetIsReversible();
+        virtual void SetIsReversible(bool isReversible);
+
+        virtual INT32 GetEpsgCode();
+        virtual void SetEpsgCode(INT32 epsgCode);
+
+        virtual INT32 GetEpsgVariant();
+        virtual void SetEpsgVariant(INT32 epsgVariant);
+
+        virtual MgDisposableCollection* GetPathElements();
+        virtual void SetPathElements(MgDisposableCollection* pathElements);
+
+        //helper - don't delete
+        virtual bool IsEncrypted();
+        
+        virtual bool IsProtected();
+        virtual bool IsValid();
+
+        void CopyTo(cs_GeodeticPath_& pathDef) const;
+    
+    private:
+        void CleanupInstanceVariables();
+
+    private:
+        cs_GeodeticPath_* pathDefinition;
+        Ptr<MgCoordinateSystemCatalog> catalog;
+    };
+
+} //namespace CSLibrary
+
 #endif //_CCOORDINATESYSTEMGEODETICPATH_H_
\ No newline at end of file


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

Modified: trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticPathDictionary.cpp
===================================================================
--- trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticPathDictionary.cpp	2010-09-21 08:36:03 UTC (rev 5169)
+++ trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticPathDictionary.cpp	2010-09-21 14:52:39 UTC (rev 5170)
@@ -1,220 +1,220 @@
-//
-//  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 "CriticalSection.h"
-
-#include "CoordSysUtil.h"               //for Convert_Wide_To_Ascii
-#include "MentorUtil.h"                 //for OpenDictionaryFile()
-#include "MentorDictionary.h"
-
-#include <cs_map.h>
-
-#include "CoordSysEnum.h"
-#include "CoordSysDictionaryBase.h"
-
-#include "CoordSysGeodeticPath.h"
-#include "CoordSysGeodeticPathDictionary.h"
-
-using namespace CSLibrary;
-
-DEFINE_DICTIONARY_FILE_NAME(GeodeticPath, cs_GP_NAME);
-
-extern DefinitionAccess<CCoordinateSystemGeodeticPath, cs_GeodeticPath_> definitionAccess(
-    CS_gpdef,
-    CCoordinateSystemGeodeticPathDictionary::UpdateGeodeticPath, /* CS_gpupd has a different signature than the other CS 'update' methods */
-    CS_gpdel,
-
-    &CCoordinateSystemGeodeticPath::IsValid,
-    CCoordinateSystemGeodeticPathDictionary::SetupCsGeodeticPathStruct,
-    CCoordinateSystemGeodeticPathDictionary::FullInitialize,
-
-    CCoordinateSystemGeodeticPathDictionary::ReadName,
-    CCoordinateSystemGeodeticPathDictionary::ReadDescription,
-    CCoordinateSystemGeodeticPathDictionary::ReadAllGeodeticPaths,
-    
-    CS_gpfnm,
-    
-    CCoordinateSystemGeodeticPathDictionary::GetFileOpenMode);
-
-/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-CCoordinateSystemGeodeticPathDictionary::CCoordinateSystemGeodeticPathDictionary(MgCoordinateSystemCatalog *pCatalog)
-   : m_pDictionary(new CCoordinateSystemDictionaryBase<CCoordinateSystemGeodeticPath, cs_GeodeticPath_, &definitionAccess, true, cs_GPDEF_MAGIC, DICTIONARY_FILE_NAME(GeodeticPath)>(pCatalog))
-{
-}
-
-CCoordinateSystemGeodeticPathDictionary::~CCoordinateSystemGeodeticPathDictionary()
-{
-    this->m_pDictionary = NULL;
-}
-
-const char* CCoordinateSystemGeodeticPathDictionary::ReadName(const cs_GeodeticPath_& definition)
-{
-    return definition.pathName;
-}
-
-const char* CCoordinateSystemGeodeticPathDictionary::ReadDescription(const cs_GeodeticPath_& definition)
-{
-    return definition.description;
-}
-
-CsDictionaryOpenMode CCoordinateSystemGeodeticPathDictionary::GetFileOpenMode(long magicNumberFromFile)
-{
-    if (cs_GPDEF_MAGIC == magicNumberFromFile)
-        return Write;
-
-    _ASSERT(false);
-    return Closed;
-}
-
-int CCoordinateSystemGeodeticPathDictionary::UpdateGeodeticPath(cs_GeodeticPath_* csPath, int /*unused*/)
-{
-    return CS_gpupd(csPath);
-}
-
-int CCoordinateSystemGeodeticPathDictionary::ReadAllGeodeticPaths(csFILE *file, cs_GeodeticPath_ *gp_def, int* /*unused*/)
-{
-    return CS_gprd(file, gp_def);
-}
-
-bool CCoordinateSystemGeodeticPathDictionary::SetupCsGeodeticPathStruct(CCoordinateSystemGeodeticPath* mgGeodeticPath, cs_GeodeticPath_& csPath)
-{
-    _ASSERT(NULL != mgGeodeticPath);
-    
-    //copy the values from [mgGeodeticPath] to [csPath]; this will throw an exception in case [mgGeodeticPath] hasn't been initialized yet
-    mgGeodeticPath->CopyTo(csPath);
-
-    return true;
-}
-
-void CCoordinateSystemGeodeticPathDictionary::FullInitialize(CCoordinateSystemGeodeticPath* mgGeodeticPath, cs_GeodeticPath_* csPath, MgCoordinateSystemCatalog* catalog)
-{
-    ENSURE_NOT_NULL(mgGeodeticPath, CCoordinateSystemGeodeticPathDictionary::FullInitialize);
-    ENSURE_NOT_NULL(csPath, CCoordinateSystemGeodeticPathDictionary::FullInitialize);
-
-    _ASSERT(NULL != catalog);
-
-    mgGeodeticPath->Initialize(*csPath);
-}
-
-//-------------------------------------------------------------------------------
-MgCoordinateSystemGeodeticPath* CCoordinateSystemGeodeticPathDictionary::NewGeodeticPath()
-{
-    Ptr<CCoordinateSystemGeodeticPath> newPathItem = this->m_pDictionary->NewItem();
-    newPathItem->Reset(); //sets up the [cs_geodeticpath_] struct; it can thus be used by 
-    
-    return newPathItem.Detach();
-}
-
-//-----------------------------------------------------------------------------
-STRING CCoordinateSystemGeodeticPathDictionary::GetDefaultFileName()
-{
-    return this->m_pDictionary->GetDefaultFileName();
-}
-
-//-----------------------------------------------------------------------------
-//Gets the file name of the dictionary file.
-STRING CCoordinateSystemGeodeticPathDictionary::GetFileName()
-{
-    return this->m_pDictionary->GetFileName();
-}
-
-//-----------------------------------------------------------------------------
-void CCoordinateSystemGeodeticPathDictionary::SetFileName(CREFSTRING sFileName)
-{
-    this->m_pDictionary->SetFileName(sFileName);
-}
-
-//------------------------------------------------------------------------
-//Gets the path to the dictionary file, if currently open.
-STRING CCoordinateSystemGeodeticPathDictionary::GetPath()
-{
-    return this->m_pDictionary->GetPath();
-}
-
-//------------------------------------------------------------------------
-//Gets the size of the set (number of defs it currently contains).
-UINT32 CCoordinateSystemGeodeticPathDictionary::GetSize()
-{
-    return this->m_pDictionary->GetSize();
-}
-
-void CCoordinateSystemGeodeticPathDictionary::Add(MgGuardDisposable *pDefinition)
-{
-    this->m_pDictionary->Add(pDefinition);
-}
-
-void CCoordinateSystemGeodeticPathDictionary::Remove(CREFSTRING sName)
-{
-    this->m_pDictionary->Remove(sName);
-}
-
-void CCoordinateSystemGeodeticPathDictionary::Modify(MgGuardDisposable *pDefinition)
-{
-    this->m_pDictionary->Modify(pDefinition);
-}
-
-MgGuardDisposable* CCoordinateSystemGeodeticPathDictionary::Get(CREFSTRING sName)
-{
-    return this->m_pDictionary->Get(sName);
-}
-
-MgCoordinateSystemGeodeticPath* CCoordinateSystemGeodeticPathDictionary::GetGeodeticPath(CREFSTRING sName)
-{
-    try
-    {
-        return static_cast<MgCoordinateSystemGeodeticPath*>(this->m_pDictionary->Get(sName));
-    }
-    catch(MgCoordinateSystemLoadFailedException* loadFailedException)
-    {
-        //catch only the [MgCoordinateSystemLoadFailedException] and release it right away
-        loadFailedException->Release();
-    }
-
-    return NULL;
-}
-
-//--------------------------------------------------------------
-//Returns whether the set contains a def with the specified name.
-bool CCoordinateSystemGeodeticPathDictionary::Has(CREFSTRING sName)
-{
-    return this->m_pDictionary->Has(sName);
-}
-
-//--------------------------------------------------------------
-//Gets an enumerator for all the defs in the set.
-MgCoordinateSystemEnum* CCoordinateSystemGeodeticPathDictionary::GetEnum()
-{
-    return this->m_pDictionary->GetEnum();
-}
-
-//MgDisposable
-void CCoordinateSystemGeodeticPathDictionary::Dispose()
-{
-    delete this;
-}
-
-//*****************************************************************************
-MgCoordinateSystemCatalog* CCoordinateSystemGeodeticPathDictionary::GetCatalog()
-{
-    return this->m_pDictionary->GetCatalog();
-}
-
+//
+//  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 "CriticalSection.h"
+
+#include "CoordSysUtil.h"               //for Convert_Wide_To_Ascii
+#include "MentorUtil.h"                 //for OpenDictionaryFile()
+#include "MentorDictionary.h"
+
+#include <cs_map.h>
+
+#include "CoordSysEnum.h"
+#include "CoordSysDictionaryBase.h"
+
+#include "CoordSysGeodeticPath.h"
+#include "CoordSysGeodeticPathDictionary.h"
+
+using namespace CSLibrary;
+
+DEFINE_DICTIONARY_FILE_NAME(GeodeticPath, cs_GP_NAME);
+
+extern DefinitionAccess<CCoordinateSystemGeodeticPath, cs_GeodeticPath_> definitionAccess(
+    CS_gpdef,
+    CCoordinateSystemGeodeticPathDictionary::UpdateGeodeticPath, /* CS_gpupd has a different signature than the other CS 'update' methods */
+    CS_gpdel,
+
+    &CCoordinateSystemGeodeticPath::IsValid,
+    CCoordinateSystemGeodeticPathDictionary::SetupCsGeodeticPathStruct,
+    CCoordinateSystemGeodeticPathDictionary::FullInitialize,
+
+    CCoordinateSystemGeodeticPathDictionary::ReadName,
+    CCoordinateSystemGeodeticPathDictionary::ReadDescription,
+    CCoordinateSystemGeodeticPathDictionary::ReadAllGeodeticPaths,
+    
+    CS_gpfnm,
+    
+    CCoordinateSystemGeodeticPathDictionary::GetFileOpenMode);
+
+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+CCoordinateSystemGeodeticPathDictionary::CCoordinateSystemGeodeticPathDictionary(MgCoordinateSystemCatalog *pCatalog)
+   : m_pDictionary(new CCoordinateSystemDictionaryBase<CCoordinateSystemGeodeticPath, cs_GeodeticPath_, &definitionAccess, true, cs_GPDEF_MAGIC, DICTIONARY_FILE_NAME(GeodeticPath)>(pCatalog))
+{
+}
+
+CCoordinateSystemGeodeticPathDictionary::~CCoordinateSystemGeodeticPathDictionary()
+{
+    this->m_pDictionary = NULL;
+}
+
+const char* CCoordinateSystemGeodeticPathDictionary::ReadName(const cs_GeodeticPath_& definition)
+{
+    return definition.pathName;
+}
+
+const char* CCoordinateSystemGeodeticPathDictionary::ReadDescription(const cs_GeodeticPath_& definition)
+{
+    return definition.description;
+}
+
+CsDictionaryOpenMode CCoordinateSystemGeodeticPathDictionary::GetFileOpenMode(long magicNumberFromFile)
+{
+    if (cs_GPDEF_MAGIC == magicNumberFromFile)
+        return Write;
+
+    _ASSERT(false);
+    return Closed;
+}
+
+int CCoordinateSystemGeodeticPathDictionary::UpdateGeodeticPath(cs_GeodeticPath_* csPath, int /*unused*/)
+{
+    return CS_gpupd(csPath);
+}
+
+int CCoordinateSystemGeodeticPathDictionary::ReadAllGeodeticPaths(csFILE *file, cs_GeodeticPath_ *gp_def, int* /*unused*/)
+{
+    return CS_gprd(file, gp_def);
+}
+
+bool CCoordinateSystemGeodeticPathDictionary::SetupCsGeodeticPathStruct(CCoordinateSystemGeodeticPath* mgGeodeticPath, cs_GeodeticPath_& csPath)
+{
+    _ASSERT(NULL != mgGeodeticPath);
+    
+    //copy the values from [mgGeodeticPath] to [csPath]; this will throw an exception in case [mgGeodeticPath] hasn't been initialized yet
+    mgGeodeticPath->CopyTo(csPath);
+
+    return true;
+}
+
+void CCoordinateSystemGeodeticPathDictionary::FullInitialize(CCoordinateSystemGeodeticPath* mgGeodeticPath, cs_GeodeticPath_* csPath, MgCoordinateSystemCatalog* catalog)
+{
+    ENSURE_NOT_NULL(mgGeodeticPath, CCoordinateSystemGeodeticPathDictionary::FullInitialize);
+    ENSURE_NOT_NULL(csPath, CCoordinateSystemGeodeticPathDictionary::FullInitialize);
+
+    _ASSERT(NULL != catalog);
+
+    mgGeodeticPath->Initialize(*csPath);
+}
+
+//-------------------------------------------------------------------------------
+MgCoordinateSystemGeodeticPath* CCoordinateSystemGeodeticPathDictionary::NewGeodeticPath()
+{
+    Ptr<CCoordinateSystemGeodeticPath> newPathItem = this->m_pDictionary->NewItem();
+    newPathItem->Reset(); //sets up the [cs_geodeticpath_] struct; it can thus be used by 
+    
+    return newPathItem.Detach();
+}
+
+//-----------------------------------------------------------------------------
+STRING CCoordinateSystemGeodeticPathDictionary::GetDefaultFileName()
+{
+    return this->m_pDictionary->GetDefaultFileName();
+}
+
+//-----------------------------------------------------------------------------
+//Gets the file name of the dictionary file.
+STRING CCoordinateSystemGeodeticPathDictionary::GetFileName()
+{
+    return this->m_pDictionary->GetFileName();
+}
+
+//-----------------------------------------------------------------------------
+void CCoordinateSystemGeodeticPathDictionary::SetFileName(CREFSTRING sFileName)
+{
+    this->m_pDictionary->SetFileName(sFileName);
+}
+
+//------------------------------------------------------------------------
+//Gets the path to the dictionary file, if currently open.
+STRING CCoordinateSystemGeodeticPathDictionary::GetPath()
+{
+    return this->m_pDictionary->GetPath();
+}
+
+//------------------------------------------------------------------------
+//Gets the size of the set (number of defs it currently contains).
+UINT32 CCoordinateSystemGeodeticPathDictionary::GetSize()
+{
+    return this->m_pDictionary->GetSize();
+}
+
+void CCoordinateSystemGeodeticPathDictionary::Add(MgGuardDisposable *pDefinition)
+{
+    this->m_pDictionary->Add(pDefinition);
+}
+
+void CCoordinateSystemGeodeticPathDictionary::Remove(CREFSTRING sName)
+{
+    this->m_pDictionary->Remove(sName);
+}
+
+void CCoordinateSystemGeodeticPathDictionary::Modify(MgGuardDisposable *pDefinition)
+{
+    this->m_pDictionary->Modify(pDefinition);
+}
+
+MgGuardDisposable* CCoordinateSystemGeodeticPathDictionary::Get(CREFSTRING sName)
+{
+    return this->m_pDictionary->Get(sName);
+}
+
+MgCoordinateSystemGeodeticPath* CCoordinateSystemGeodeticPathDictionary::GetGeodeticPath(CREFSTRING sName)
+{
+    try
+    {
+        return static_cast<MgCoordinateSystemGeodeticPath*>(this->m_pDictionary->Get(sName));
+    }
+    catch(MgCoordinateSystemLoadFailedException* loadFailedException)
+    {
+        //catch only the [MgCoordinateSystemLoadFailedException] and release it right away
+        loadFailedException->Release();
+    }
+
+    return NULL;
+}
+
+//--------------------------------------------------------------
+//Returns whether the set contains a def with the specified name.
+bool CCoordinateSystemGeodeticPathDictionary::Has(CREFSTRING sName)
+{
+    return this->m_pDictionary->Has(sName);
+}
+
+//--------------------------------------------------------------
+//Gets an enumerator for all the defs in the set.
+MgCoordinateSystemEnum* CCoordinateSystemGeodeticPathDictionary::GetEnum()
+{
+    return this->m_pDictionary->GetEnum();
+}
+
+//MgDisposable
+void CCoordinateSystemGeodeticPathDictionary::Dispose()
+{
+    delete this;
+}
+
+//*****************************************************************************
+MgCoordinateSystemCatalog* CCoordinateSystemGeodeticPathDictionary::GetCatalog()
+{
+    return this->m_pDictionary->GetCatalog();
+}
+
 #include "CoordSysDictionaryBase.cpp"
\ No newline at end of file


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

Modified: trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticPathDictionary.h
===================================================================
--- trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticPathDictionary.h	2010-09-21 08:36:03 UTC (rev 5169)
+++ trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticPathDictionary.h	2010-09-21 14:52:39 UTC (rev 5170)
@@ -1,86 +1,86 @@
-//
-//  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 _CCOORDINATESYSTEMGEODETICPATHDICTIONARY_H_
-#define _CCOORDINATESYSTEMGEODETICPATHDICTIONARY_H_
-
-
-DECLARE_DICTIONARY_FILE_NAME(GeodeticPath);
-
-//typedef cs_GeodeticPath_* (*ReadPathDefinition)(const char* definitionKey, INT32 dictionaryMagicNumber);
-//typedef const char* (*ReadPathName)(const cs_GeodeticPath_* definition);
-//typedef const char* (*ReadPathDescription)(const cs_GeodeticPath_* definition);
-
-extern DefinitionAccess<CSLibrary::CCoordinateSystemGeodeticPath, cs_GeodeticPath_> definitionAccess;
-
-namespace CSLibrary
-{
-    class CCoordinateSystemGeodeticPathDictionary : public MgCoordinateSystemGeodeticPathDictionary
-    {
-    public:
-        CCoordinateSystemGeodeticPathDictionary(MgCoordinateSystemCatalog *pCatalog);
-        virtual ~CCoordinateSystemGeodeticPathDictionary();
-
-        //create new path
-        virtual MgCoordinateSystemGeodeticPath* NewGeodeticPath();
-        virtual MgCoordinateSystemGeodeticPath* GetGeodeticPath(CREFSTRING pathName);
-
-        //querying the dictionary
-        virtual MgGuardDisposable* Get(CREFSTRING sName);
-        virtual MgCoordinateSystemEnum* GetEnum();
-        virtual bool Has(CREFSTRING sName);
-        virtual STRING GetPath();
-        virtual UINT32 GetSize();
-
-        //CS_Map library support stuff
-        virtual MgCoordinateSystemCatalog* GetCatalog();
-        virtual STRING GetDefaultFileName();
-        virtual STRING GetFileName();
-        virtual void SetFileName(CREFSTRING sFileName);
-        
-        //modify the dictionary
-        virtual void Add(MgGuardDisposable *pDefinition);
-        virtual void Remove(CREFSTRING sName);
-        virtual void Modify(MgGuardDisposable *pDefinition);
-        //virtual void Rename(CREFSTRING sOldName, CREFSTRING sNewName);
-
-    protected:
-        //MgDisposable
-        virtual void Dispose();
-
-    protected:
-
-        Ptr<CCoordinateSystemDictionaryBase<CCoordinateSystemGeodeticPath, cs_GeodeticPath_, \
-            &definitionAccess, true, cs_GPDEF_MAGIC, DICTIONARY_FILE_NAME(GeodeticPath)>> m_pDictionary;
-
-    public:
-
-        static const char* ReadName(const cs_GeodeticPath_& definition);
-        static const char* ReadDescription(const cs_GeodeticPath_& definition);
-        
-        static int UpdateGeodeticPath(cs_GeodeticPath_* csPath, int /*unused*/);
-        static int ReadAllGeodeticPaths(csFILE *file, cs_GeodeticPath_ *gp_def, int* /*unused*/);
-
-        static bool SetupCsGeodeticPathStruct(CCoordinateSystemGeodeticPath* mgGeodeticPath, cs_GeodeticPath_& csPath);
-        static void FullInitialize(CCoordinateSystemGeodeticPath* mgGeodeticPath, cs_GeodeticPath_* csPath, MgCoordinateSystemCatalog* catalog);
-
-        static CsDictionaryOpenMode GetFileOpenMode(long magicNumberFromFile);
-    };
-
-} // End of namespace
-
-#endif //_CCOORDINATESYSTEMGEODETICPATHDICTIONARY_H_
+//
+//  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 _CCOORDINATESYSTEMGEODETICPATHDICTIONARY_H_
+#define _CCOORDINATESYSTEMGEODETICPATHDICTIONARY_H_
+
+
+DECLARE_DICTIONARY_FILE_NAME(GeodeticPath);
+
+//typedef cs_GeodeticPath_* (*ReadPathDefinition)(const char* definitionKey, INT32 dictionaryMagicNumber);
+//typedef const char* (*ReadPathName)(const cs_GeodeticPath_* definition);
+//typedef const char* (*ReadPathDescription)(const cs_GeodeticPath_* definition);
+
+extern DefinitionAccess<CSLibrary::CCoordinateSystemGeodeticPath, cs_GeodeticPath_> definitionAccess;
+
+namespace CSLibrary
+{
+    class CCoordinateSystemGeodeticPathDictionary : public MgCoordinateSystemGeodeticPathDictionary
+    {
+    public:
+        CCoordinateSystemGeodeticPathDictionary(MgCoordinateSystemCatalog *pCatalog);
+        virtual ~CCoordinateSystemGeodeticPathDictionary();
+
+        //create new path
+        virtual MgCoordinateSystemGeodeticPath* NewGeodeticPath();
+        virtual MgCoordinateSystemGeodeticPath* GetGeodeticPath(CREFSTRING pathName);
+
+        //querying the dictionary
+        virtual MgGuardDisposable* Get(CREFSTRING sName);
+        virtual MgCoordinateSystemEnum* GetEnum();
+        virtual bool Has(CREFSTRING sName);
+        virtual STRING GetPath();
+        virtual UINT32 GetSize();
+
+        //CS_Map library support stuff
+        virtual MgCoordinateSystemCatalog* GetCatalog();
+        virtual STRING GetDefaultFileName();
+        virtual STRING GetFileName();
+        virtual void SetFileName(CREFSTRING sFileName);
+        
+        //modify the dictionary
+        virtual void Add(MgGuardDisposable *pDefinition);
+        virtual void Remove(CREFSTRING sName);
+        virtual void Modify(MgGuardDisposable *pDefinition);
+        //virtual void Rename(CREFSTRING sOldName, CREFSTRING sNewName);
+
+    protected:
+        //MgDisposable
+        virtual void Dispose();
+
+    protected:
+
+        Ptr<CCoordinateSystemDictionaryBase<CCoordinateSystemGeodeticPath, cs_GeodeticPath_, \
+            &definitionAccess, true, cs_GPDEF_MAGIC, DICTIONARY_FILE_NAME(GeodeticPath)>> m_pDictionary;
+
+    public:
+
+        static const char* ReadName(const cs_GeodeticPath_& definition);
+        static const char* ReadDescription(const cs_GeodeticPath_& definition);
+        
+        static int UpdateGeodeticPath(cs_GeodeticPath_* csPath, int /*unused*/);
+        static int ReadAllGeodeticPaths(csFILE *file, cs_GeodeticPath_ *gp_def, int* /*unused*/);
+
+        static bool SetupCsGeodeticPathStruct(CCoordinateSystemGeodeticPath* mgGeodeticPath, cs_GeodeticPath_& csPath);
+        static void FullInitialize(CCoordinateSystemGeodeticPath* mgGeodeticPath, cs_GeodeticPath_* csPath, MgCoordinateSystemCatalog* catalog);
+
+        static CsDictionaryOpenMode GetFileOpenMode(long magicNumberFromFile);
+    };
+
+} // End of namespace
+
+#endif //_CCOORDINATESYSTEMGEODETICPATHDICTIONARY_H_


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

Modified: trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticPathElement.cpp
===================================================================
--- trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticPathElement.cpp	2010-09-21 08:36:03 UTC (rev 5169)
+++ trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticPathElement.cpp	2010-09-21 14:52:39 UTC (rev 5170)
@@ -1,106 +1,106 @@
-//
-//  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 "GeometryCommon.h"
-#include "CoordSysCommon.h"
-#include "CriticalSection.h"
-
-#include "CoordSysGeodeticPathElement.h"
-
-
-#include "CoordSysTransform.h"          //for CCoordinateSystemTransform
-#include "CoordSysUtil.h"               //for CsDictionaryOpenMode
-#include "MentorDictionary.h"
-
-using namespace CSLibrary;
-
-#define CS_MAP_DEF_VARIABLE this->pathElement //needed by CoordSysMacro
-
-#include "CoordSysMacro.h" //for DEFINE_GET_SET_STRING and DEFINE_GET_SET_NUMERIC
-
-CCoordinateSystemGeodeticPathElement::CCoordinateSystemGeodeticPathElement(const cs_GeodeticPathElement_* const pathElementArg, bool isProtected)
-    : pathElement(NULL), isProtected(isProtected)
-{
-    this->Reset(pathElementArg);
-}
-
-CCoordinateSystemGeodeticPathElement::~CCoordinateSystemGeodeticPathElement()
-{
-    this->CleanupInstanceVariables();
-}
-
-void CCoordinateSystemGeodeticPathElement::Dispose()
-{
-    delete this;
-}
-
-void CCoordinateSystemGeodeticPathElement::CleanupInstanceVariables()
-{
-    if (NULL != this->pathElement)
-    {
-        CS_free(this->pathElement);
-        this->pathElement = NULL;
-    }
-}
-
-void CCoordinateSystemGeodeticPathElement::Reset(const cs_GeodeticPathElement_* const pathElementArg)
-{
-    cs_GeodeticPathElement_* tempPathElement = (cs_GeodeticPathElement_*) CS_malc(sizeof(cs_GeodeticPathElement_));
-    if (NULL == tempPathElement)
-        throw new MgOutOfMemoryException(L"CCoordinateSystemGeodeticPathElement.Reset", __LINE__, __WFILE__, NULL, L"", NULL);
-    
-    MG_TRY()
-
-    this->CleanupInstanceVariables();
-    if (NULL == pathElementArg) //initialize to 0 memory
-        memset(tempPathElement, 0, sizeof(cs_GeodeticPathElement_));
-    else
-        *tempPathElement = *pathElementArg; //otherwise, copy the values from the arg over
-
-    this->pathElement = tempPathElement; //make us hold the allocated memory...
-    tempPathElement = NULL; //...and make sure, we don't free it below
-
-    MG_CATCH(L"CCoordinateSystemGeodeticPathElement.Reset")
-
-    if (NULL != tempPathElement)
-        CS_free(tempPathElement);
-
-    MG_THROW()
-}
-
-bool CCoordinateSystemGeodeticPathElement::IsValid()
-{
-    if (NULL == this->pathElement)
-        return false;
-
-    size_t transformNameLength = strlen(this->pathElement->geodeticXformName);
-    _ASSERT(transformNameLength < sizeof(this->pathElement->geodeticXformName)); //how comes?
-    
-    //TODO: put transformNameLength 64 in cs_map.h
-    if (0 == transformNameLength || transformNameLength >= sizeof(this->pathElement->geodeticXformName))
-        return false;
-
-    return (cs_PATHDIR_FWD == this->pathElement->direction) || (cs_PATHDIR_INV == this->pathElement->direction);
-}
-
-bool CCoordinateSystemGeodeticPathElement::IsProtected()
-{
-    return this->isProtected;
-}
-
-DEFINE_GET_SET_STRING(CCoordinateSystemGeodeticPathElement,TransformName,this->pathElement->geodeticXformName)
+//
+//  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 "GeometryCommon.h"
+#include "CoordSysCommon.h"
+#include "CriticalSection.h"
+
+#include "CoordSysGeodeticPathElement.h"
+
+
+#include "CoordSysTransform.h"          //for CCoordinateSystemTransform
+#include "CoordSysUtil.h"               //for CsDictionaryOpenMode
+#include "MentorDictionary.h"
+
+using namespace CSLibrary;
+
+#define CS_MAP_DEF_VARIABLE this->pathElement //needed by CoordSysMacro
+
+#include "CoordSysMacro.h" //for DEFINE_GET_SET_STRING and DEFINE_GET_SET_NUMERIC
+
+CCoordinateSystemGeodeticPathElement::CCoordinateSystemGeodeticPathElement(const cs_GeodeticPathElement_* const pathElementArg, bool isProtected)
+    : pathElement(NULL), isProtected(isProtected)
+{
+    this->Reset(pathElementArg);
+}
+
+CCoordinateSystemGeodeticPathElement::~CCoordinateSystemGeodeticPathElement()
+{
+    this->CleanupInstanceVariables();
+}
+
+void CCoordinateSystemGeodeticPathElement::Dispose()
+{
+    delete this;
+}
+
+void CCoordinateSystemGeodeticPathElement::CleanupInstanceVariables()
+{
+    if (NULL != this->pathElement)
+    {
+        CS_free(this->pathElement);
+        this->pathElement = NULL;
+    }
+}
+
+void CCoordinateSystemGeodeticPathElement::Reset(const cs_GeodeticPathElement_* const pathElementArg)
+{
+    cs_GeodeticPathElement_* tempPathElement = (cs_GeodeticPathElement_*) CS_malc(sizeof(cs_GeodeticPathElement_));
+    if (NULL == tempPathElement)
+        throw new MgOutOfMemoryException(L"CCoordinateSystemGeodeticPathElement.Reset", __LINE__, __WFILE__, NULL, L"", NULL);
+    
+    MG_TRY()
+
+    this->CleanupInstanceVariables();
+    if (NULL == pathElementArg) //initialize to 0 memory
+        memset(tempPathElement, 0, sizeof(cs_GeodeticPathElement_));
+    else
+        *tempPathElement = *pathElementArg; //otherwise, copy the values from the arg over
+
+    this->pathElement = tempPathElement; //make us hold the allocated memory...
+    tempPathElement = NULL; //...and make sure, we don't free it below
+
+    MG_CATCH(L"CCoordinateSystemGeodeticPathElement.Reset")
+
+    if (NULL != tempPathElement)
+        CS_free(tempPathElement);
+
+    MG_THROW()
+}
+
+bool CCoordinateSystemGeodeticPathElement::IsValid()
+{
+    if (NULL == this->pathElement)
+        return false;
+
+    size_t transformNameLength = strlen(this->pathElement->geodeticXformName);
+    _ASSERT(transformNameLength < sizeof(this->pathElement->geodeticXformName)); //how comes?
+    
+    //TODO: put transformNameLength 64 in cs_map.h
+    if (0 == transformNameLength || transformNameLength >= sizeof(this->pathElement->geodeticXformName))
+        return false;
+
+    return (cs_PATHDIR_FWD == this->pathElement->direction) || (cs_PATHDIR_INV == this->pathElement->direction);
+}
+
+bool CCoordinateSystemGeodeticPathElement::IsProtected()
+{
+    return this->isProtected;
+}
+
+DEFINE_GET_SET_STRING(CCoordinateSystemGeodeticPathElement,TransformName,this->pathElement->geodeticXformName)
 DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticPathElement,IsInversed,bool,this->pathElement->direction)
\ No newline at end of file


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

Modified: trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticPathElement.h
===================================================================
--- trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticPathElement.h	2010-09-21 08:36:03 UTC (rev 5169)
+++ trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticPathElement.h	2010-09-21 14:52:39 UTC (rev 5170)
@@ -1,51 +1,51 @@
-//
-//  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 _COORDSYSGEODETICPATHELEMENT_H_
-#define _COORDSYSGEODETICPATHELEMENT_H_
-
-namespace CSLibrary
-{
-    class CCoordinateSystemGeodeticPathElement : public MgCoordinateSystemGeodeticPathElement
-    {
-    public:
-        CCoordinateSystemGeodeticPathElement(const cs_GeodeticPathElement_* const pathElement, bool isProtected);
-        ~CCoordinateSystemGeodeticPathElement();
-
-        virtual void Dispose();
-        virtual bool IsValid();
-        virtual bool IsProtected();
-
-        virtual STRING GetTransformName();
-        virtual void SetTransformName(CREFSTRING);
-
-        virtual bool GetIsInversed();
-        virtual void SetIsInversed(bool);
-
-    private:
-       void Reset(const cs_GeodeticPathElement_* const pathElement);
-       void CleanupInstanceVariables();
-
-    private:
-        bool isProtected;
-        cs_GeodeticPathElement_* pathElement;
-    };
-
-} //namespace CSLibrary
-
+//
+//  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 _COORDSYSGEODETICPATHELEMENT_H_
+#define _COORDSYSGEODETICPATHELEMENT_H_
+
+namespace CSLibrary
+{
+    class CCoordinateSystemGeodeticPathElement : public MgCoordinateSystemGeodeticPathElement
+    {
+    public:
+        CCoordinateSystemGeodeticPathElement(const cs_GeodeticPathElement_* const pathElement, bool isProtected);
+        ~CCoordinateSystemGeodeticPathElement();
+
+        virtual void Dispose();
+        virtual bool IsValid();
+        virtual bool IsProtected();
+
+        virtual STRING GetTransformName();
+        virtual void SetTransformName(CREFSTRING);
+
+        virtual bool GetIsInversed();
+        virtual void SetIsInversed(bool);
+
+    private:
+       void Reset(const cs_GeodeticPathElement_* const pathElement);
+       void CleanupInstanceVariables();
+
+    private:
+        bool isProtected;
+        cs_GeodeticPathElement_* pathElement;
+    };
+
+} //namespace CSLibrary
+
 #endif //_COORDSYSGEODETICPATHELEMENT_H_
\ No newline at end of file


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

Modified: trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticTransformDef.cpp
===================================================================
--- trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticTransformDef.cpp	2010-09-21 08:36:03 UTC (rev 5169)
+++ trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticTransformDef.cpp	2010-09-21 14:52:39 UTC (rev 5170)
@@ -1,354 +1,354 @@
-//
-//  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 "GeometryCommon.h"
-#include "CoordSysCommon.h"
-#include "CriticalSection.h"
-
-#include "CoordSysGeodeticTransformation.h"
-#include "CoordSysGeodeticTransformDefParams.h"
-#include "CoordSysGeodeticAnalyticalTransformDefParams.h"
-#include "CoordSysGeodeticInterpolationTransformDefParams.h"
-#include "CoordSysGeodeticMultipleRegressionTransformDefParams.h"
-#include "CoordSysGeodeticTransformDef.h"
-
-#include "CoordSysTransform.h"          //for CCoordinateSystemTransform
-#include "CoordSysUtil.h"               //for CsDictionaryOpenMode
-#include "MentorDictionary.h"
-
-using namespace CSLibrary;
-
-#define CS_MAP_DEF_VARIABLE this->transformDefinition //needed by CoordSysMacro
-
-#include "CoordSysMacro.h" //for DEFINE_GET_SET_STRING and DEFINE_GET_SET_NUMERIC
-
-CCoordinateSystemGeodeticTransformDef::CCoordinateSystemGeodeticTransformDef(MgCoordinateSystemCatalog* pCatalog)
-    : transformationDefType(0), transformDefinition(NULL), catalog(SAFE_ADDREF(pCatalog) /* make sure, we take a count on it */)
-{
-    //have we been passed a non-null argument?
-    if (NULL == this->catalog)
-        throw new MgNullArgumentException(L"CCoordinateSystemGeodeticTransformDef.ctor", __LINE__, __WFILE__, NULL, L"", NULL); 
-}
-
-CCoordinateSystemGeodeticTransformDef::~CCoordinateSystemGeodeticTransformDef()
-{
-    this->ReleaseInstance();
-}
-
-void CCoordinateSystemGeodeticTransformDef::ReleaseInstance()
-{
-    if (NULL != this->transformDefinition)
-    {
-        CS_free(this->transformDefinition);
-        this->transformDefinition = NULL;
-    }
-
-    this->transformationDefType = 0;
-}
-
-void CCoordinateSystemGeodeticTransformDef::Dispose()
-{
-    delete this;
-}
-
-void CCoordinateSystemGeodeticTransformDef::Reset(INT32 transformationDefType)
-{
-    INT32 transformationType;
-    switch(transformationDefType)
-    {
-    case MgCoordinateSystemGeodeticTransformDefType::None:
-    case MgCoordinateSystemGeodeticTransformDefType::Analytical:
-    case MgCoordinateSystemGeodeticTransformDefType::Interpolation:
-    case MgCoordinateSystemGeodeticTransformDefType::MultipleRegression:
-        transformationType = transformationDefType;
-        break;
-    default:
-        throw new MgInvalidArgumentException(L"CCoordinateSystemGeodeticTransformDef.Reset", __LINE__, __WFILE__, NULL, L"", NULL);
-    }
-    
-    //try creating a new [cs_GeodeticTransform_] instance before we wipe out our own stuff
-    cs_GeodeticTransform_* newEmptyDef = (cs_GeodeticTransform_*)CS_malc(sizeof(cs_GeodeticTransform_));
-    if (NULL == newEmptyDef) //uses CS_malc which returns NULL in case allocation fails
-        throw new MgOutOfMemoryException(L"CCoordinateSystemGeodeticTransformDef.Initialize", __LINE__, __WFILE__, NULL, L"", NULL);
-
-    MG_TRY()
-
-    //now, 0 our temp memory we've allocated
-    memset ((void*)newEmptyDef, 0, sizeof(cs_GeodeticTransform_));
-
-    //ok - everything worked out so far; release this instance's information
-    this->ReleaseInstance();
-    _ASSERT(NULL == this->transformDefinition);
-   
-    this->transformDefinition = newEmptyDef;
-    newEmptyDef = NULL; //make sure, we don't free that one after we get a hold on the (no longer temp) memory
-
-    this->transformationDefType = transformationType;
-
-    MG_CATCH(L"CCoordinateSystemGeodeticTransformDef.Reset")
-
-    if (NULL != newEmptyDef) //will have been set to NULL before
-        CS_free(newEmptyDef);
-
-    MG_THROW()
-}
-
-INT32 CCoordinateSystemGeodeticTransformDef::GetTransformationDefType(INT32 methodCode /* method code as read from the dictionary entry */)
-{
-    INT32 transformationType;
-    switch(methodCode)
-    {
-    //standalone methods; see information in cs_geodetic.h 
-    case cs_DTCMTH_NULLX:
-    case cs_DTCMTH_WGS72:
-        transformationType = MgCoordinateSystemGeodeticTransformDefType::None;
-        break;
-
-    //multiple Regression methods
-    case cs_DTCMTH_MULRG:
-    case cs_DTCMTH_PLYNM:
-        transformationType = MgCoordinateSystemGeodeticTransformDefType::MultipleRegression;
-        break;
-
-    //geocentric methods
-    case cs_DTCMTH_3PARM:
-    case cs_DTCMTH_MOLOD:
-    case cs_DTCMTH_AMOLO:
-    case cs_DTCMTH_GEOCT:
-    case cs_DTCMTH_4PARM:
-    case cs_DTCMTH_6PARM:
-    case cs_DTCMTH_BURSA:
-    case cs_DTCMTH_FRAME:
-    case cs_DTCMTH_7PARM:
-    case cs_DTCMTH_BDKAS:
-        transformationType = MgCoordinateSystemGeodeticTransformDefType::Analytical;
-        break;
-
-    //grid file interpolation methods; if a transformation uses grid file(s), this is the actual
-    //type - the ones below are the format of the grid file(s) being used. For example,
-    //the dictionary does then contains something like
-    //GRID_FILE: NTv2,FWD,.\Australia\Agd66\A66National(13.09.01).gsb
-    case cs_DTCMTH_GFILE:
-        transformationType = MgCoordinateSystemGeodeticTransformDefType::Interpolation;
-        break;
-    
-    //the next entries are not expected; we're mapping them to the interpolation transformation type
-    case cs_DTCMTH_CNTv1:
-    case cs_DTCMTH_CNTv2:
-    case cs_DTCMTH_FRNCH:
-    case cs_DTCMTH_JAPAN:
-    case cs_DTCMTH_ATS77:
-    case cs_DTCMTH_OST97:
-    case cs_DTCMTH_OST02:
-        _ASSERT(false);
-        transformationType = MgCoordinateSystemGeodeticTransformDefType::Interpolation;
-        break;
-
-    default: //invalid / unknown [methodCode] given; don't know how to proceed here
-        throw new MgInvalidArgumentException(L"CCoordinateSystemGeodeticTransformDef.Initialize", __LINE__, __WFILE__, NULL, L"", NULL);
-    }
-
-    return transformationType;
-}
-
-void CCoordinateSystemGeodeticTransformDef::Initialize(const cs_GeodeticTransform_& transformDef)
-{
-    //take the transformation type from the param we've been passed; we'll use that information to build the correct
-    //parameter object later on
-    INT32 transformationType = this->GetTransformationDefType(transformDef.methodCode);
-
-    this->Reset(transformationType);
-    *this->transformDefinition = transformDef;
-}
-
-MgCoordinateSystemGeodeticTransformation* CCoordinateSystemGeodeticTransformDef::CreateTransformation(bool createInverse)
-{
-    VERIFY_INITIALIZED(L"CCoordinateSystemGeodeticTransformDef.CreateTransformation");
-
-    if (MgCoordinateSystemGeodeticTransformDefType::None == this->GetTransformDefType() || !this->IsValid())
-        throw new MgInvalidOperationException(L"CCoordinateSystemGeodeticTransformDef.CreateTransformation", __LINE__,__WFILE__, NULL, L"", NULL);
-    
-    //we don't take ownership of the transformation being returned but
-    //will release [sourceDatum] and [targetDatum];
-    //new [CCoordinateSystemGeodeticTransformation] will have to ADDREF if needed
-    return new CCoordinateSystemGeodeticTransformation(this->catalog, this, createInverse);
-}
-
-MgCoordinateSystemGeodeticTransformDef* CCoordinateSystemGeodeticTransformDef::CreateClone()
-{
-    VERIFY_INITIALIZED(L"CCoordinateSystemGeodeticTransformDef.CreateClone");
-
-    Ptr<CCoordinateSystemGeodeticTransformDef> clonedTransformDef = new CCoordinateSystemGeodeticTransformDef(this->catalog.p);
-    clonedTransformDef->Initialize(*this->transformDefinition);
-    clonedTransformDef->transformDefinition->protect = 0; //unset the protection flag; otherwise the caller wouldn't be able to change any values
-
-    return clonedTransformDef.Detach();
-}
-
-void CCoordinateSystemGeodeticTransformDef::CopyTo(cs_GeodeticTransform_& transformDef) const
-{
-    VERIFY_INITIALIZED(L"CCoordinateSystemGeodeticTransformDef.CopyTo");
-    
-    //copy our values into the [cs_GeodeticTransform_] we've been passed here
-    transformDef = *this->transformDefinition;
-}
-
-INT32 CCoordinateSystemGeodeticTransformDef::GetTransformDefType()
-{
-    return this->transformationDefType; //can be None
-}
-
-MgCoordinateSystemGeodeticTransformDefParams* CCoordinateSystemGeodeticTransformDef::GetParameters()
-{
-    VERIFY_INITIALIZED(L"CCoordinateSystemGeodeticTransformDef.GetParameters");
-
-    switch(this->transformationDefType)
-    {
-    case MgCoordinateSystemGeodeticTransformDefType::None:
-        return NULL;
-
-    case MgCoordinateSystemGeodeticTransformDefType::Analytical:
-        return static_cast<MgCoordinateSystemGeodeticAnalyticalTransformDefParams*>(new CCoordinateSystemGeodeticAnalyticalTransformDefParams(
-            this->transformDefinition->parameters.geocentricParameters, this->transformDefinition->methodCode, this->IsProtected()));
-    
-    case MgCoordinateSystemGeodeticTransformDefType::Interpolation:
-        return static_cast<MgCoordinateSystemGeodeticInterpolationTransformDefParams*>(
-            new CCoordinateSystemGeodeticInterpolationTransformDefParams(this->transformDefinition->parameters.fileParameters, this->IsProtected()));
-    
-    case MgCoordinateSystemGeodeticTransformDefType::MultipleRegression:
-        return static_cast<MgCoordinateSystemGeodeticMultipleRegressionTransformDefParams*>(new CCoordinateSystemGeodeticMultipleRegressionTransformDefParams(
-            this->transformDefinition->parameters.dmaMulRegParameters, this->transformDefinition->methodCode, this->IsProtected()));
-    
-    default: //invalid state; why's that?
-        _ASSERT(false);
-        throw new MgInvalidOperationException(L"CCoordinateSystemGeodeticTransformDef.GetParameters", __LINE__, __WFILE__, NULL, L"", NULL);
-    }
-}
-
-void CCoordinateSystemGeodeticTransformDef::SetParameters(MgCoordinateSystemGeodeticTransformDefParams* parameters)
-{
-    VERIFY_INITIALIZED(L"CCoordinateSystemGeodeticTransformDef.SetParameters");
-    VERIFY_NOT_PROTECTED(L"CCoordinateSystemGeodeticTransformDef.SetParameters");
-
-    //first check, whether this is a NONE transformation definition; if so, ignore the parameter altogether and wipe out
-    //this instance's parameter information to NULL
-    if (MgCoordinateSystemGeodeticTransformDefType::None == this->transformationDefType)
-    {
-        memset(&this->transformDefinition->parameters, 0, sizeof(this->transformDefinition->parameters.sizeDetermination.unionSize));
-        return;
-    }
-
-    //otherwise: make sure, we've been passed non null paramaters...
-    ENSURE_NOT_NULL(parameters, CCoordinateSystemGeodeticTransformDef::SetParameters);
-    
-    INT32 paramsMethodCode = 0x0;
-
-    //...and the parameters are actually of the correct type, i.e. match whatever we've stored in [this->transformationDefType]
-    CCoordinateSystemGeodeticTransformDefParams* transformDefParams = NULL;
-    CCoordinateSystemGeodeticMultipleRegressionTransformDefParams* mulRegParams = NULL;
-    CCoordinateSystemGeodeticAnalyticalTransformDefParams* analyticalParams = NULL;
-
-    switch(this->transformationDefType)
-    {
-    case MgCoordinateSystemGeodeticTransformDefType::Analytical:
-        analyticalParams = dynamic_cast<CCoordinateSystemGeodeticAnalyticalTransformDefParams*>(parameters);
-        if (NULL != analyticalParams)
-        {
-            paramsMethodCode = analyticalParams->GetTransformationMethod();
-            transformDefParams = analyticalParams;
-        }
-        break;
-
-    case MgCoordinateSystemGeodeticTransformDefType::Interpolation:
-        transformDefParams = dynamic_cast<CCoordinateSystemGeodeticInterpolationTransformDefParams*>(parameters);
-        //the transformation method is "grid file"; the actual type doesn't matter as this
-        //is specified through the [MgCoordinateSystemGeodeticInterpolationTransformDefParams] object;
-        //such a transformation can use multiple grid files where each can have a different format
-        paramsMethodCode = cs_DTCMTH_GFILE;
-        break;
-    
-    case MgCoordinateSystemGeodeticTransformDefType::MultipleRegression:
-        mulRegParams = dynamic_cast<CCoordinateSystemGeodeticMultipleRegressionTransformDefParams*>(parameters);
-        if (NULL != mulRegParams)
-        {
-            paramsMethodCode = mulRegParams->GetTransformationMethod();
-            transformDefParams = mulRegParams;
-        }
-
-        break;
-
-    default:
-        _ASSERT(false); //why's that?
-        break;
-    }
-
-    if (NULL == transformDefParams)
-        throw new MgInvalidOperationException(L"CCoordinateSystemGeodeticTransformDef.SetParameters", __LINE__, __WFILE__, NULL, L"", NULL);
-
-    //copy the values from the parameter we've been passed into our own [parameters] section
-    transformDefParams->CopyTo(&this->transformDefinition->parameters);
-    this->transformDefinition->methodCode = paramsMethodCode;
-}
-
-bool CCoordinateSystemGeodeticTransformDef::IsProtected()
-{
-    VERIFY_INITIALIZED(L"CCoordinateSystemGeodeticTransformDef.IsProtected");
-    return (DICTIONARY_SYS_DEF == this->transformDefinition->protect);
-}
-
-bool CCoordinateSystemGeodeticTransformDef::IsValid()
-{
-    if (NULL == this->transformDefinition) //an unitialized definition is always invalid
-        return false;
-
-    Ptr<MgCoordinateSystemGeodeticTransformDefParams> params = this->GetParameters();
-    if (!params->IsValid())
-        return false;
-
-    //TODO: would we also need to check, whether the datum(s) exists?
-
-    /*
-    CriticalClass.Enter();
-    //TODO: pass correct parameters; make sure, CS_gxchk checks all stuff
-    int nNumErrs = CS_gxchk(this->transformDefinition, 0, NULL, 0);
-    CriticalClass.Leave();
-    
-    return (0 == nNumErrs);
-    */
-    return true;
-}
-
-//helper - don't delete
-bool CCoordinateSystemGeodeticTransformDef::IsEncrypted()
-{
-    return false;
-}
-
-DEFINE_GET_SET_STRING(CCoordinateSystemGeodeticTransformDef,TransformName,this->transformDefinition->xfrmName)
-DEFINE_GET_SET_STRING(CCoordinateSystemGeodeticTransformDef,SourceDatum,this->transformDefinition->srcDatum)
-DEFINE_GET_SET_STRING(CCoordinateSystemGeodeticTransformDef,TargetDatum,this->transformDefinition->trgDatum)
-DEFINE_GET_SET_STRING(CCoordinateSystemGeodeticTransformDef,Group,this->transformDefinition->group)
-DEFINE_GET_SET_STRING(CCoordinateSystemGeodeticTransformDef,Description,this->transformDefinition->description)
-DEFINE_GET_SET_STRING(CCoordinateSystemGeodeticTransformDef,Source,this->transformDefinition->source)
-
-DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticTransformDef,EpsgCode,INT32,this->transformDefinition->epsgCode)
-DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticTransformDef,EpsgVariation,INT32,this->transformDefinition->epsgVariation)
-DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticTransformDef,InverseSupported,bool,this->transformDefinition->inverseSupported)
-DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticTransformDef,MaxIterations,INT32,this->transformDefinition->maxIterations)
-DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticTransformDef,ConvergenceValue,double,this->transformDefinition->cnvrgValue)
-DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticTransformDef,ErrorValue,double,this->transformDefinition->errorValue)
+//
+//  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 "GeometryCommon.h"
+#include "CoordSysCommon.h"
+#include "CriticalSection.h"
+
+#include "CoordSysGeodeticTransformation.h"
+#include "CoordSysGeodeticTransformDefParams.h"
+#include "CoordSysGeodeticAnalyticalTransformDefParams.h"
+#include "CoordSysGeodeticInterpolationTransformDefParams.h"
+#include "CoordSysGeodeticMultipleRegressionTransformDefParams.h"
+#include "CoordSysGeodeticTransformDef.h"
+
+#include "CoordSysTransform.h"          //for CCoordinateSystemTransform
+#include "CoordSysUtil.h"               //for CsDictionaryOpenMode
+#include "MentorDictionary.h"
+
+using namespace CSLibrary;
+
+#define CS_MAP_DEF_VARIABLE this->transformDefinition //needed by CoordSysMacro
+
+#include "CoordSysMacro.h" //for DEFINE_GET_SET_STRING and DEFINE_GET_SET_NUMERIC
+
+CCoordinateSystemGeodeticTransformDef::CCoordinateSystemGeodeticTransformDef(MgCoordinateSystemCatalog* pCatalog)
+    : transformationDefType(0), transformDefinition(NULL), catalog(SAFE_ADDREF(pCatalog) /* make sure, we take a count on it */)
+{
+    //have we been passed a non-null argument?
+    if (NULL == this->catalog)
+        throw new MgNullArgumentException(L"CCoordinateSystemGeodeticTransformDef.ctor", __LINE__, __WFILE__, NULL, L"", NULL); 
+}
+
+CCoordinateSystemGeodeticTransformDef::~CCoordinateSystemGeodeticTransformDef()
+{
+    this->ReleaseInstance();
+}
+
+void CCoordinateSystemGeodeticTransformDef::ReleaseInstance()
+{
+    if (NULL != this->transformDefinition)
+    {
+        CS_free(this->transformDefinition);
+        this->transformDefinition = NULL;
+    }
+
+    this->transformationDefType = 0;
+}
+
+void CCoordinateSystemGeodeticTransformDef::Dispose()
+{
+    delete this;
+}
+
+void CCoordinateSystemGeodeticTransformDef::Reset(INT32 transformationDefType)
+{
+    INT32 transformationType;
+    switch(transformationDefType)
+    {
+    case MgCoordinateSystemGeodeticTransformDefType::None:
+    case MgCoordinateSystemGeodeticTransformDefType::Analytical:
+    case MgCoordinateSystemGeodeticTransformDefType::Interpolation:
+    case MgCoordinateSystemGeodeticTransformDefType::MultipleRegression:
+        transformationType = transformationDefType;
+        break;
+    default:
+        throw new MgInvalidArgumentException(L"CCoordinateSystemGeodeticTransformDef.Reset", __LINE__, __WFILE__, NULL, L"", NULL);
+    }
+    
+    //try creating a new [cs_GeodeticTransform_] instance before we wipe out our own stuff
+    cs_GeodeticTransform_* newEmptyDef = (cs_GeodeticTransform_*)CS_malc(sizeof(cs_GeodeticTransform_));
+    if (NULL == newEmptyDef) //uses CS_malc which returns NULL in case allocation fails
+        throw new MgOutOfMemoryException(L"CCoordinateSystemGeodeticTransformDef.Initialize", __LINE__, __WFILE__, NULL, L"", NULL);
+
+    MG_TRY()
+
+    //now, 0 our temp memory we've allocated
+    memset ((void*)newEmptyDef, 0, sizeof(cs_GeodeticTransform_));
+
+    //ok - everything worked out so far; release this instance's information
+    this->ReleaseInstance();
+    _ASSERT(NULL == this->transformDefinition);
+   
+    this->transformDefinition = newEmptyDef;
+    newEmptyDef = NULL; //make sure, we don't free that one after we get a hold on the (no longer temp) memory
+
+    this->transformationDefType = transformationType;
+
+    MG_CATCH(L"CCoordinateSystemGeodeticTransformDef.Reset")
+
+    if (NULL != newEmptyDef) //will have been set to NULL before
+        CS_free(newEmptyDef);
+
+    MG_THROW()
+}
+
+INT32 CCoordinateSystemGeodeticTransformDef::GetTransformationDefType(INT32 methodCode /* method code as read from the dictionary entry */)
+{
+    INT32 transformationType;
+    switch(methodCode)
+    {
+    //standalone methods; see information in cs_geodetic.h 
+    case cs_DTCMTH_NULLX:
+    case cs_DTCMTH_WGS72:
+        transformationType = MgCoordinateSystemGeodeticTransformDefType::None;
+        break;
+
+    //multiple Regression methods
+    case cs_DTCMTH_MULRG:
+    case cs_DTCMTH_PLYNM:
+        transformationType = MgCoordinateSystemGeodeticTransformDefType::MultipleRegression;
+        break;
+
+    //geocentric methods
+    case cs_DTCMTH_3PARM:
+    case cs_DTCMTH_MOLOD:
+    case cs_DTCMTH_AMOLO:
+    case cs_DTCMTH_GEOCT:
+    case cs_DTCMTH_4PARM:
+    case cs_DTCMTH_6PARM:
+    case cs_DTCMTH_BURSA:
+    case cs_DTCMTH_FRAME:
+    case cs_DTCMTH_7PARM:
+    case cs_DTCMTH_BDKAS:
+        transformationType = MgCoordinateSystemGeodeticTransformDefType::Analytical;
+        break;
+
+    //grid file interpolation methods; if a transformation uses grid file(s), this is the actual
+    //type - the ones below are the format of the grid file(s) being used. For example,
+    //the dictionary does then contains something like
+    //GRID_FILE: NTv2,FWD,.\Australia\Agd66\A66National(13.09.01).gsb
+    case cs_DTCMTH_GFILE:
+        transformationType = MgCoordinateSystemGeodeticTransformDefType::Interpolation;
+        break;
+    
+    //the next entries are not expected; we're mapping them to the interpolation transformation type
+    case cs_DTCMTH_CNTv1:
+    case cs_DTCMTH_CNTv2:
+    case cs_DTCMTH_FRNCH:
+    case cs_DTCMTH_JAPAN:
+    case cs_DTCMTH_ATS77:
+    case cs_DTCMTH_OST97:
+    case cs_DTCMTH_OST02:
+        _ASSERT(false);
+        transformationType = MgCoordinateSystemGeodeticTransformDefType::Interpolation;
+        break;
+
+    default: //invalid / unknown [methodCode] given; don't know how to proceed here
+        throw new MgInvalidArgumentException(L"CCoordinateSystemGeodeticTransformDef.Initialize", __LINE__, __WFILE__, NULL, L"", NULL);
+    }
+
+    return transformationType;
+}
+
+void CCoordinateSystemGeodeticTransformDef::Initialize(const cs_GeodeticTransform_& transformDef)
+{
+    //take the transformation type from the param we've been passed; we'll use that information to build the correct
+    //parameter object later on
+    INT32 transformationType = this->GetTransformationDefType(transformDef.methodCode);
+
+    this->Reset(transformationType);
+    *this->transformDefinition = transformDef;
+}
+
+MgCoordinateSystemGeodeticTransformation* CCoordinateSystemGeodeticTransformDef::CreateTransformation(bool createInverse)
+{
+    VERIFY_INITIALIZED(L"CCoordinateSystemGeodeticTransformDef.CreateTransformation");
+
+    if (MgCoordinateSystemGeodeticTransformDefType::None == this->GetTransformDefType() || !this->IsValid())
+        throw new MgInvalidOperationException(L"CCoordinateSystemGeodeticTransformDef.CreateTransformation", __LINE__,__WFILE__, NULL, L"", NULL);
+    
+    //we don't take ownership of the transformation being returned but
+    //will release [sourceDatum] and [targetDatum];
+    //new [CCoordinateSystemGeodeticTransformation] will have to ADDREF if needed
+    return new CCoordinateSystemGeodeticTransformation(this->catalog, this, createInverse);
+}
+
+MgCoordinateSystemGeodeticTransformDef* CCoordinateSystemGeodeticTransformDef::CreateClone()
+{
+    VERIFY_INITIALIZED(L"CCoordinateSystemGeodeticTransformDef.CreateClone");
+
+    Ptr<CCoordinateSystemGeodeticTransformDef> clonedTransformDef = new CCoordinateSystemGeodeticTransformDef(this->catalog.p);
+    clonedTransformDef->Initialize(*this->transformDefinition);
+    clonedTransformDef->transformDefinition->protect = 0; //unset the protection flag; otherwise the caller wouldn't be able to change any values
+
+    return clonedTransformDef.Detach();
+}
+
+void CCoordinateSystemGeodeticTransformDef::CopyTo(cs_GeodeticTransform_& transformDef) const
+{
+    VERIFY_INITIALIZED(L"CCoordinateSystemGeodeticTransformDef.CopyTo");
+    
+    //copy our values into the [cs_GeodeticTransform_] we've been passed here
+    transformDef = *this->transformDefinition;
+}
+
+INT32 CCoordinateSystemGeodeticTransformDef::GetTransformDefType()
+{
+    return this->transformationDefType; //can be None
+}
+
+MgCoordinateSystemGeodeticTransformDefParams* CCoordinateSystemGeodeticTransformDef::GetParameters()
+{
+    VERIFY_INITIALIZED(L"CCoordinateSystemGeodeticTransformDef.GetParameters");
+
+    switch(this->transformationDefType)
+    {
+    case MgCoordinateSystemGeodeticTransformDefType::None:
+        return NULL;
+
+    case MgCoordinateSystemGeodeticTransformDefType::Analytical:
+        return static_cast<MgCoordinateSystemGeodeticAnalyticalTransformDefParams*>(new CCoordinateSystemGeodeticAnalyticalTransformDefParams(
+            this->transformDefinition->parameters.geocentricParameters, this->transformDefinition->methodCode, this->IsProtected()));
+    
+    case MgCoordinateSystemGeodeticTransformDefType::Interpolation:
+        return static_cast<MgCoordinateSystemGeodeticInterpolationTransformDefParams*>(
+            new CCoordinateSystemGeodeticInterpolationTransformDefParams(this->transformDefinition->parameters.fileParameters, this->IsProtected()));
+    
+    case MgCoordinateSystemGeodeticTransformDefType::MultipleRegression:
+        return static_cast<MgCoordinateSystemGeodeticMultipleRegressionTransformDefParams*>(new CCoordinateSystemGeodeticMultipleRegressionTransformDefParams(
+            this->transformDefinition->parameters.dmaMulRegParameters, this->transformDefinition->methodCode, this->IsProtected()));
+    
+    default: //invalid state; why's that?
+        _ASSERT(false);
+        throw new MgInvalidOperationException(L"CCoordinateSystemGeodeticTransformDef.GetParameters", __LINE__, __WFILE__, NULL, L"", NULL);
+    }
+}
+
+void CCoordinateSystemGeodeticTransformDef::SetParameters(MgCoordinateSystemGeodeticTransformDefParams* parameters)
+{
+    VERIFY_INITIALIZED(L"CCoordinateSystemGeodeticTransformDef.SetParameters");
+    VERIFY_NOT_PROTECTED(L"CCoordinateSystemGeodeticTransformDef.SetParameters");
+
+    //first check, whether this is a NONE transformation definition; if so, ignore the parameter altogether and wipe out
+    //this instance's parameter information to NULL
+    if (MgCoordinateSystemGeodeticTransformDefType::None == this->transformationDefType)
+    {
+        memset(&this->transformDefinition->parameters, 0, sizeof(this->transformDefinition->parameters.sizeDetermination.unionSize));
+        return;
+    }
+
+    //otherwise: make sure, we've been passed non null paramaters...
+    ENSURE_NOT_NULL(parameters, CCoordinateSystemGeodeticTransformDef::SetParameters);
+    
+    INT32 paramsMethodCode = 0x0;
+
+    //...and the parameters are actually of the correct type, i.e. match whatever we've stored in [this->transformationDefType]
+    CCoordinateSystemGeodeticTransformDefParams* transformDefParams = NULL;
+    CCoordinateSystemGeodeticMultipleRegressionTransformDefParams* mulRegParams = NULL;
+    CCoordinateSystemGeodeticAnalyticalTransformDefParams* analyticalParams = NULL;
+
+    switch(this->transformationDefType)
+    {
+    case MgCoordinateSystemGeodeticTransformDefType::Analytical:
+        analyticalParams = dynamic_cast<CCoordinateSystemGeodeticAnalyticalTransformDefParams*>(parameters);
+        if (NULL != analyticalParams)
+        {
+            paramsMethodCode = analyticalParams->GetTransformationMethod();
+            transformDefParams = analyticalParams;
+        }
+        break;
+
+    case MgCoordinateSystemGeodeticTransformDefType::Interpolation:
+        transformDefParams = dynamic_cast<CCoordinateSystemGeodeticInterpolationTransformDefParams*>(parameters);
+        //the transformation method is "grid file"; the actual type doesn't matter as this
+        //is specified through the [MgCoordinateSystemGeodeticInterpolationTransformDefParams] object;
+        //such a transformation can use multiple grid files where each can have a different format
+        paramsMethodCode = cs_DTCMTH_GFILE;
+        break;
+    
+    case MgCoordinateSystemGeodeticTransformDefType::MultipleRegression:
+        mulRegParams = dynamic_cast<CCoordinateSystemGeodeticMultipleRegressionTransformDefParams*>(parameters);
+        if (NULL != mulRegParams)
+        {
+            paramsMethodCode = mulRegParams->GetTransformationMethod();
+            transformDefParams = mulRegParams;
+        }
+
+        break;
+
+    default:
+        _ASSERT(false); //why's that?
+        break;
+    }
+
+    if (NULL == transformDefParams)
+        throw new MgInvalidOperationException(L"CCoordinateSystemGeodeticTransformDef.SetParameters", __LINE__, __WFILE__, NULL, L"", NULL);
+
+    //copy the values from the parameter we've been passed into our own [parameters] section
+    transformDefParams->CopyTo(&this->transformDefinition->parameters);
+    this->transformDefinition->methodCode = paramsMethodCode;
+}
+
+bool CCoordinateSystemGeodeticTransformDef::IsProtected()
+{
+    VERIFY_INITIALIZED(L"CCoordinateSystemGeodeticTransformDef.IsProtected");
+    return (DICTIONARY_SYS_DEF == this->transformDefinition->protect);
+}
+
+bool CCoordinateSystemGeodeticTransformDef::IsValid()
+{
+    if (NULL == this->transformDefinition) //an unitialized definition is always invalid
+        return false;
+
+    Ptr<MgCoordinateSystemGeodeticTransformDefParams> params = this->GetParameters();
+    if (!params->IsValid())
+        return false;
+
+    //TODO: would we also need to check, whether the datum(s) exists?
+
+    /*
+    CriticalClass.Enter();
+    //TODO: pass correct parameters; make sure, CS_gxchk checks all stuff
+    int nNumErrs = CS_gxchk(this->transformDefinition, 0, NULL, 0);
+    CriticalClass.Leave();
+    
+    return (0 == nNumErrs);
+    */
+    return true;
+}
+
+//helper - don't delete
+bool CCoordinateSystemGeodeticTransformDef::IsEncrypted()
+{
+    return false;
+}
+
+DEFINE_GET_SET_STRING(CCoordinateSystemGeodeticTransformDef,TransformName,this->transformDefinition->xfrmName)
+DEFINE_GET_SET_STRING(CCoordinateSystemGeodeticTransformDef,SourceDatum,this->transformDefinition->srcDatum)
+DEFINE_GET_SET_STRING(CCoordinateSystemGeodeticTransformDef,TargetDatum,this->transformDefinition->trgDatum)
+DEFINE_GET_SET_STRING(CCoordinateSystemGeodeticTransformDef,Group,this->transformDefinition->group)
+DEFINE_GET_SET_STRING(CCoordinateSystemGeodeticTransformDef,Description,this->transformDefinition->description)
+DEFINE_GET_SET_STRING(CCoordinateSystemGeodeticTransformDef,Source,this->transformDefinition->source)
+
+DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticTransformDef,EpsgCode,INT32,this->transformDefinition->epsgCode)
+DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticTransformDef,EpsgVariation,INT32,this->transformDefinition->epsgVariation)
+DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticTransformDef,InverseSupported,bool,this->transformDefinition->inverseSupported)
+DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticTransformDef,MaxIterations,INT32,this->transformDefinition->maxIterations)
+DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticTransformDef,ConvergenceValue,double,this->transformDefinition->cnvrgValue)
+DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticTransformDef,ErrorValue,double,this->transformDefinition->errorValue)
 DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticTransformDef,Accuracy,double,this->transformDefinition->accuracy)
\ No newline at end of file


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

Modified: trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticTransformDef.h
===================================================================
--- trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticTransformDef.h	2010-09-21 08:36:03 UTC (rev 5169)
+++ trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticTransformDef.h	2010-09-21 14:52:39 UTC (rev 5170)
@@ -1,107 +1,107 @@
-//
-//  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 _CCOORDINATESYSTEMGEODETICTRANSFORMDEF_H_
-#define _CCOORDINATESYSTEMGEODETICTRANSFORMDEF_H_
-
-
-namespace CSLibrary
-{
-
-class CCoordinateSystemGeodeticTransformDef : public MgCoordinateSystemGeodeticTransformDef
-{
-public:
-
-    CCoordinateSystemGeodeticTransformDef(MgCoordinateSystemCatalog* pCatalog);
-    virtual ~CCoordinateSystemGeodeticTransformDef();
-
-    virtual void Dispose();
-
-    void Reset(INT32 transformationDefType);
-    void Initialize(const cs_GeodeticTransform_& transformDef);
-
-    virtual MgCoordinateSystemGeodeticTransformDef* CreateClone();
-
-    //begin properties
-    virtual STRING GetTransformName();
-    virtual void SetTransformName(CREFSTRING name);
-
-    virtual STRING GetSourceDatum();
-    virtual void SetSourceDatum(CREFSTRING datumKey);
-
-    virtual STRING GetTargetDatum();
-    virtual void SetTargetDatum(CREFSTRING datumKey);
-
-    virtual STRING GetGroup();
-    virtual void SetGroup(CREFSTRING group);
-
-    virtual STRING GetDescription();
-    virtual void SetDescription(CREFSTRING description);
-
-    virtual STRING GetSource();
-    virtual void SetSource(CREFSTRING source);
-
-    virtual INT32 GetEpsgCode();
-    virtual void SetEpsgCode(INT32 epsgCode);
-
-    virtual INT32 GetEpsgVariation();
-    virtual void SetEpsgVariation(INT32 epsgVariation);
-
-    virtual bool GetInverseSupported();
-    virtual void SetInverseSupported(bool inverseSupported);
-
-    virtual INT32 GetMaxIterations();
-    virtual void SetMaxIterations(INT32 maxIterations);
-	
-    virtual double GetConvergenceValue();
-    virtual void SetConvergenceValue(double convergenceValue);
-	
-    virtual double GetErrorValue();
-    virtual void SetErrorValue(double errorValue);
-	
-    virtual double GetAccuracy();
-    virtual void SetAccuracy(double accuracy);
-    
-    virtual MgCoordinateSystemGeodeticTransformDefParams* GetParameters();
-    virtual void SetParameters(MgCoordinateSystemGeodeticTransformDefParams* parameters);
-    //end properties
-
-    virtual INT32 GetTransformDefType();
-
-    MgCoordinateSystemGeodeticTransformation* CreateTransformation(bool createInverse);
-
-    //helper - don't delete
-    virtual bool IsEncrypted();
-    
-    virtual bool IsProtected();
-    virtual bool IsValid();
-
-    void CopyTo(cs_GeodeticTransform_& transformDef) const;
-
-private:
-    void ReleaseInstance();
-    INT32 GetTransformationDefType(INT32 methodCode);
-
-private:
-    INT32 transformationDefType;
-    cs_GeodeticTransform_* transformDefinition;
-    Ptr<MgCoordinateSystemCatalog> catalog;
-};
-
-} //namespace CSLibrary
-
+//
+//  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 _CCOORDINATESYSTEMGEODETICTRANSFORMDEF_H_
+#define _CCOORDINATESYSTEMGEODETICTRANSFORMDEF_H_
+
+
+namespace CSLibrary
+{
+
+class CCoordinateSystemGeodeticTransformDef : public MgCoordinateSystemGeodeticTransformDef
+{
+public:
+
+    CCoordinateSystemGeodeticTransformDef(MgCoordinateSystemCatalog* pCatalog);
+    virtual ~CCoordinateSystemGeodeticTransformDef();
+
+    virtual void Dispose();
+
+    void Reset(INT32 transformationDefType);
+    void Initialize(const cs_GeodeticTransform_& transformDef);
+
+    virtual MgCoordinateSystemGeodeticTransformDef* CreateClone();
+
+    //begin properties
+    virtual STRING GetTransformName();
+    virtual void SetTransformName(CREFSTRING name);
+
+    virtual STRING GetSourceDatum();
+    virtual void SetSourceDatum(CREFSTRING datumKey);
+
+    virtual STRING GetTargetDatum();
+    virtual void SetTargetDatum(CREFSTRING datumKey);
+
+    virtual STRING GetGroup();
+    virtual void SetGroup(CREFSTRING group);
+
+    virtual STRING GetDescription();
+    virtual void SetDescription(CREFSTRING description);
+
+    virtual STRING GetSource();
+    virtual void SetSource(CREFSTRING source);
+
+    virtual INT32 GetEpsgCode();
+    virtual void SetEpsgCode(INT32 epsgCode);
+
+    virtual INT32 GetEpsgVariation();
+    virtual void SetEpsgVariation(INT32 epsgVariation);
+
+    virtual bool GetInverseSupported();
+    virtual void SetInverseSupported(bool inverseSupported);
+
+    virtual INT32 GetMaxIterations();
+    virtual void SetMaxIterations(INT32 maxIterations);
+	
+    virtual double GetConvergenceValue();
+    virtual void SetConvergenceValue(double convergenceValue);
+	
+    virtual double GetErrorValue();
+    virtual void SetErrorValue(double errorValue);
+	
+    virtual double GetAccuracy();
+    virtual void SetAccuracy(double accuracy);
+    
+    virtual MgCoordinateSystemGeodeticTransformDefParams* GetParameters();
+    virtual void SetParameters(MgCoordinateSystemGeodeticTransformDefParams* parameters);
+    //end properties
+
+    virtual INT32 GetTransformDefType();
+
+    MgCoordinateSystemGeodeticTransformation* CreateTransformation(bool createInverse);
+
+    //helper - don't delete
+    virtual bool IsEncrypted();
+    
+    virtual bool IsProtected();
+    virtual bool IsValid();
+
+    void CopyTo(cs_GeodeticTransform_& transformDef) const;
+
+private:
+    void ReleaseInstance();
+    INT32 GetTransformationDefType(INT32 methodCode);
+
+private:
+    INT32 transformationDefType;
+    cs_GeodeticTransform_* transformDefinition;
+    Ptr<MgCoordinateSystemCatalog> catalog;
+};
+
+} //namespace CSLibrary
+
 #endif //_CCOORDINATESYSTEMGEODETICTRANSFORMDEF_H_
\ No newline at end of file


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

Modified: trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticTransformDefDictionary.cpp
===================================================================
--- trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticTransformDefDictionary.cpp	2010-09-21 08:36:03 UTC (rev 5169)
+++ trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticTransformDefDictionary.cpp	2010-09-21 14:52:39 UTC (rev 5170)
@@ -1,219 +1,219 @@
-//
-//  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 "CriticalSection.h"
-
-#include "CoordSysUtil.h"               //for Convert_Wide_To_Ascii
-#include "MentorUtil.h"                 //for OpenDictionaryFile()
-#include "MentorDictionary.h"
-
-#include <cs_map.h>
-
-#include "CoordSysEnum.h"
-#include "CoordSysDictionaryBase.h"
-
-#include "CoordSysGeodeticTransformDef.h"
-#include "CoordSysGeodeticTransformDefDictionary.h"
-
-using namespace CSLibrary;
-
-DEFINE_DICTIONARY_FILE_NAME(GeodeticTransformation, cs_GX_NAME);
-
-extern DefinitionAccess<CCoordinateSystemGeodeticTransformDef, cs_GeodeticTransform_> transformDefinitionAccess(
-    CS_gxdef,
-    CCoordinateSystemGeodeticTransformDefDictionary::UpdateGeodeticTransformDef, /* CS_gpupd has a different signature than the other CS 'update' methods */
-    CS_gxdel,
-
-    &CCoordinateSystemGeodeticTransformDef::IsValid,
-    CCoordinateSystemGeodeticTransformDefDictionary::SetupCsStructFromMgTransformDef,
-    CCoordinateSystemGeodeticTransformDefDictionary::FullInitialize,
-
-    CCoordinateSystemGeodeticTransformDefDictionary::ReadName,
-    CCoordinateSystemGeodeticTransformDefDictionary::ReadDescription,
-    CCoordinateSystemGeodeticTransformDefDictionary::ReadAllGeodeticTransformDefs,
-    
-    CS_gxfnm,
-    
-    CCoordinateSystemGeodeticTransformDefDictionary::GetFileOpenMode);
-
-CCoordinateSystemGeodeticTransformDefDictionary::CCoordinateSystemGeodeticTransformDefDictionary(MgCoordinateSystemCatalog *pCatalog)
-    : m_pDictionary(new CCoordinateSystemDictionaryBase<CCoordinateSystemGeodeticTransformDef, cs_GeodeticTransform_,
-        &transformDefinitionAccess, true, cs_GXDEF_MAGIC, DICTIONARY_FILE_NAME(GeodeticTransformation)>(pCatalog))
-{
-}
-
-CCoordinateSystemGeodeticTransformDefDictionary::~CCoordinateSystemGeodeticTransformDefDictionary()
-{
-}
-
-
-void CCoordinateSystemGeodeticTransformDefDictionary::Dispose()
-{
-    delete this;
-}
-
-MgCoordinateSystemGeodeticTransformDef* CCoordinateSystemGeodeticTransformDefDictionary::NewGeodeticTransformationDef(INT32 transformationDefType)
-{
-    Ptr<CCoordinateSystemGeodeticTransformDef> newTransformDef = this->m_pDictionary->NewItem();
-    newTransformDef->Reset(transformationDefType); //sets up the [cs_geodeticTransfrom_] struct and initializes it to [transformationDefType]
-    
-    return newTransformDef.Detach(); //this instance is not yet initialized
-}
-
-MgCoordinateSystemGeodeticTransformDef* CCoordinateSystemGeodeticTransformDefDictionary::GetGeodeticTransformationDef(CREFSTRING transformationName)
-{
-    try
-    {
-        return static_cast<MgCoordinateSystemGeodeticTransformDef*>(this->m_pDictionary->Get(transformationName));
-    }
-    catch(MgCoordinateSystemLoadFailedException* loadFailedException)
-    {
-        //catch only the [MgCoordinateSystemLoadFailedException] and release it right away
-        loadFailedException->Release();
-    }
-
-    return NULL;
-}
-
-/******************************************************************************************************/
-/* BEGIN -------------------- MgCoordinateSystemDicationary implementation -------------------- BEGIN */
-/******************************************************************************************************/
-MgGuardDisposable* CCoordinateSystemGeodeticTransformDefDictionary::Get(CREFSTRING sName)
-{
-    return this->m_pDictionary->Get(sName);
-}
-
-MgCoordinateSystemEnum* CCoordinateSystemGeodeticTransformDefDictionary::GetEnum()
-{
-    return this->m_pDictionary->GetEnum();
-}
-
-bool CCoordinateSystemGeodeticTransformDefDictionary::Has(CREFSTRING sName)
-{
-    return this->m_pDictionary->Has(sName);
-}
-
-STRING CCoordinateSystemGeodeticTransformDefDictionary::GetPath()
-{
-    return this->m_pDictionary->GetPath();
-}
-
-UINT32 CCoordinateSystemGeodeticTransformDefDictionary::GetSize()
-{
-    return this->m_pDictionary->GetSize();
-}
-
-MgCoordinateSystemCatalog* CCoordinateSystemGeodeticTransformDefDictionary::GetCatalog()
-{
-    return this->m_pDictionary->GetCatalog();
-}
-
-STRING CCoordinateSystemGeodeticTransformDefDictionary::GetDefaultFileName()
-{
-    return this->m_pDictionary->GetDefaultFileName();
-}
-
-STRING CCoordinateSystemGeodeticTransformDefDictionary::GetFileName()
-{
-    return this->m_pDictionary->GetFileName();
-}
-
-void CCoordinateSystemGeodeticTransformDefDictionary::SetFileName(CREFSTRING sFileName)
-{
-    this->m_pDictionary->SetFileName(sFileName);
-}
-
-void CCoordinateSystemGeodeticTransformDefDictionary::Add(MgGuardDisposable *pDefinition)
-{
-    this->m_pDictionary->Add(pDefinition);
-}
-
-void CCoordinateSystemGeodeticTransformDefDictionary::Remove(CREFSTRING sName)
-{
-    this->m_pDictionary->Remove(sName);
-}
-
-void CCoordinateSystemGeodeticTransformDefDictionary::Modify(MgGuardDisposable *pDefinition)
-{
-    this->m_pDictionary->Modify(pDefinition);
-}
-
-/******************************************************************************************************/
-/* END -------------------- MgCoordinateSystemDicationary implementation -------------------- END */
-/******************************************************************************************************/
-
-/*********************************************************************************************************/
-/* BEGIN -------------------- CCoordinateSystemDictionaryBase support methods -------------------- BEGIN */
-int CCoordinateSystemGeodeticTransformDefDictionary::UpdateGeodeticTransformDef(cs_GeodeticTransform_* csTransformDef, int /*unused*/)
-{
-    return CS_gxupd(csTransformDef);
-}
-
-bool CCoordinateSystemGeodeticTransformDefDictionary::SetupCsStructFromMgTransformDef(CCoordinateSystemGeodeticTransformDef* mgGeodeticTransformDef, cs_GeodeticTransform_& csTransformDef)
-{
-    ENSURE_NOT_NULL(mgGeodeticTransformDef, CCoordinateSystemGeodeticTransformDefDictionary::SetupCsStructFromMgTransformDef);
-
-    //copy the struct values from [mgGeodeticTransformDef] to [csTransformDef]; will throw an exception, if [mgGeodeticTransformDef] hasn't been yet initialized
-    mgGeodeticTransformDef->CopyTo(csTransformDef);
-    return true;
-}
-    
-void CCoordinateSystemGeodeticTransformDefDictionary::FullInitialize(CCoordinateSystemGeodeticTransformDef* mgGeodeticTransformDef,
-                                                                     cs_GeodeticTransform_* csTransformDef,
-                                                                     MgCoordinateSystemCatalog* catalog)
-{
-    ENSURE_NOT_NULL(mgGeodeticTransformDef, CCoordinateSystemGeodeticTransformDefDictionary::FullInitialize);
-    ENSURE_NOT_NULL(csTransformDef, CCoordinateSystemGeodeticTransformDefDictionary::FullInitialize);
-
-    mgGeodeticTransformDef->Initialize(*csTransformDef);
-
-    return;
-}
-
-const char* CCoordinateSystemGeodeticTransformDefDictionary::ReadName(const cs_GeodeticTransform_& definition)
-{
-    return definition.xfrmName;
-}
-
-const char* CCoordinateSystemGeodeticTransformDefDictionary::ReadDescription(const cs_GeodeticTransform_& definition)
-{
-    return definition.description;
-}
-
-int CCoordinateSystemGeodeticTransformDefDictionary::ReadAllGeodeticTransformDefs(csFILE *file, cs_GeodeticTransform_* csTransformDef, int* /*unused*/)
-{
-    return CS_gxrd(file, csTransformDef);
-}
-
-CsDictionaryOpenMode CCoordinateSystemGeodeticTransformDefDictionary::GetFileOpenMode(long magicNumberFromFile)
-{
-    if (cs_GXDEF_MAGIC == magicNumberFromFile)
-        return Write;
-
-    _ASSERT(false);
-    return Closed;
-}
-
-/* END -------------------- CCoordinateSystemDictionaryBase support methods -------------------- END */
-/*****************************************************************************************************/
-
-
+//
+//  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 "CriticalSection.h"
+
+#include "CoordSysUtil.h"               //for Convert_Wide_To_Ascii
+#include "MentorUtil.h"                 //for OpenDictionaryFile()
+#include "MentorDictionary.h"
+
+#include <cs_map.h>
+
+#include "CoordSysEnum.h"
+#include "CoordSysDictionaryBase.h"
+
+#include "CoordSysGeodeticTransformDef.h"
+#include "CoordSysGeodeticTransformDefDictionary.h"
+
+using namespace CSLibrary;
+
+DEFINE_DICTIONARY_FILE_NAME(GeodeticTransformation, cs_GX_NAME);
+
+extern DefinitionAccess<CCoordinateSystemGeodeticTransformDef, cs_GeodeticTransform_> transformDefinitionAccess(
+    CS_gxdef,
+    CCoordinateSystemGeodeticTransformDefDictionary::UpdateGeodeticTransformDef, /* CS_gpupd has a different signature than the other CS 'update' methods */
+    CS_gxdel,
+
+    &CCoordinateSystemGeodeticTransformDef::IsValid,
+    CCoordinateSystemGeodeticTransformDefDictionary::SetupCsStructFromMgTransformDef,
+    CCoordinateSystemGeodeticTransformDefDictionary::FullInitialize,
+
+    CCoordinateSystemGeodeticTransformDefDictionary::ReadName,
+    CCoordinateSystemGeodeticTransformDefDictionary::ReadDescription,
+    CCoordinateSystemGeodeticTransformDefDictionary::ReadAllGeodeticTransformDefs,
+    
+    CS_gxfnm,
+    
+    CCoordinateSystemGeodeticTransformDefDictionary::GetFileOpenMode);
+
+CCoordinateSystemGeodeticTransformDefDictionary::CCoordinateSystemGeodeticTransformDefDictionary(MgCoordinateSystemCatalog *pCatalog)
+    : m_pDictionary(new CCoordinateSystemDictionaryBase<CCoordinateSystemGeodeticTransformDef, cs_GeodeticTransform_,
+        &transformDefinitionAccess, true, cs_GXDEF_MAGIC, DICTIONARY_FILE_NAME(GeodeticTransformation)>(pCatalog))
+{
+}
+
+CCoordinateSystemGeodeticTransformDefDictionary::~CCoordinateSystemGeodeticTransformDefDictionary()
+{
+}
+
+
+void CCoordinateSystemGeodeticTransformDefDictionary::Dispose()
+{
+    delete this;
+}
+
+MgCoordinateSystemGeodeticTransformDef* CCoordinateSystemGeodeticTransformDefDictionary::NewGeodeticTransformationDef(INT32 transformationDefType)
+{
+    Ptr<CCoordinateSystemGeodeticTransformDef> newTransformDef = this->m_pDictionary->NewItem();
+    newTransformDef->Reset(transformationDefType); //sets up the [cs_geodeticTransfrom_] struct and initializes it to [transformationDefType]
+    
+    return newTransformDef.Detach(); //this instance is not yet initialized
+}
+
+MgCoordinateSystemGeodeticTransformDef* CCoordinateSystemGeodeticTransformDefDictionary::GetGeodeticTransformationDef(CREFSTRING transformationName)
+{
+    try
+    {
+        return static_cast<MgCoordinateSystemGeodeticTransformDef*>(this->m_pDictionary->Get(transformationName));
+    }
+    catch(MgCoordinateSystemLoadFailedException* loadFailedException)
+    {
+        //catch only the [MgCoordinateSystemLoadFailedException] and release it right away
+        loadFailedException->Release();
+    }
+
+    return NULL;
+}
+
+/******************************************************************************************************/
+/* BEGIN -------------------- MgCoordinateSystemDicationary implementation -------------------- BEGIN */
+/******************************************************************************************************/
+MgGuardDisposable* CCoordinateSystemGeodeticTransformDefDictionary::Get(CREFSTRING sName)
+{
+    return this->m_pDictionary->Get(sName);
+}
+
+MgCoordinateSystemEnum* CCoordinateSystemGeodeticTransformDefDictionary::GetEnum()
+{
+    return this->m_pDictionary->GetEnum();
+}
+
+bool CCoordinateSystemGeodeticTransformDefDictionary::Has(CREFSTRING sName)
+{
+    return this->m_pDictionary->Has(sName);
+}
+
+STRING CCoordinateSystemGeodeticTransformDefDictionary::GetPath()
+{
+    return this->m_pDictionary->GetPath();
+}
+
+UINT32 CCoordinateSystemGeodeticTransformDefDictionary::GetSize()
+{
+    return this->m_pDictionary->GetSize();
+}
+
+MgCoordinateSystemCatalog* CCoordinateSystemGeodeticTransformDefDictionary::GetCatalog()
+{
+    return this->m_pDictionary->GetCatalog();
+}
+
+STRING CCoordinateSystemGeodeticTransformDefDictionary::GetDefaultFileName()
+{
+    return this->m_pDictionary->GetDefaultFileName();
+}
+
+STRING CCoordinateSystemGeodeticTransformDefDictionary::GetFileName()
+{
+    return this->m_pDictionary->GetFileName();
+}
+
+void CCoordinateSystemGeodeticTransformDefDictionary::SetFileName(CREFSTRING sFileName)
+{
+    this->m_pDictionary->SetFileName(sFileName);
+}
+
+void CCoordinateSystemGeodeticTransformDefDictionary::Add(MgGuardDisposable *pDefinition)
+{
+    this->m_pDictionary->Add(pDefinition);
+}
+
+void CCoordinateSystemGeodeticTransformDefDictionary::Remove(CREFSTRING sName)
+{
+    this->m_pDictionary->Remove(sName);
+}
+
+void CCoordinateSystemGeodeticTransformDefDictionary::Modify(MgGuardDisposable *pDefinition)
+{
+    this->m_pDictionary->Modify(pDefinition);
+}
+
+/******************************************************************************************************/
+/* END -------------------- MgCoordinateSystemDicationary implementation -------------------- END */
+/******************************************************************************************************/
+
+/*********************************************************************************************************/
+/* BEGIN -------------------- CCoordinateSystemDictionaryBase support methods -------------------- BEGIN */
+int CCoordinateSystemGeodeticTransformDefDictionary::UpdateGeodeticTransformDef(cs_GeodeticTransform_* csTransformDef, int /*unused*/)
+{
+    return CS_gxupd(csTransformDef);
+}
+
+bool CCoordinateSystemGeodeticTransformDefDictionary::SetupCsStructFromMgTransformDef(CCoordinateSystemGeodeticTransformDef* mgGeodeticTransformDef, cs_GeodeticTransform_& csTransformDef)
+{
+    ENSURE_NOT_NULL(mgGeodeticTransformDef, CCoordinateSystemGeodeticTransformDefDictionary::SetupCsStructFromMgTransformDef);
+
+    //copy the struct values from [mgGeodeticTransformDef] to [csTransformDef]; will throw an exception, if [mgGeodeticTransformDef] hasn't been yet initialized
+    mgGeodeticTransformDef->CopyTo(csTransformDef);
+    return true;
+}
+    
+void CCoordinateSystemGeodeticTransformDefDictionary::FullInitialize(CCoordinateSystemGeodeticTransformDef* mgGeodeticTransformDef,
+                                                                     cs_GeodeticTransform_* csTransformDef,
+                                                                     MgCoordinateSystemCatalog* catalog)
+{
+    ENSURE_NOT_NULL(mgGeodeticTransformDef, CCoordinateSystemGeodeticTransformDefDictionary::FullInitialize);
+    ENSURE_NOT_NULL(csTransformDef, CCoordinateSystemGeodeticTransformDefDictionary::FullInitialize);
+
+    mgGeodeticTransformDef->Initialize(*csTransformDef);
+
+    return;
+}
+
+const char* CCoordinateSystemGeodeticTransformDefDictionary::ReadName(const cs_GeodeticTransform_& definition)
+{
+    return definition.xfrmName;
+}
+
+const char* CCoordinateSystemGeodeticTransformDefDictionary::ReadDescription(const cs_GeodeticTransform_& definition)
+{
+    return definition.description;
+}
+
+int CCoordinateSystemGeodeticTransformDefDictionary::ReadAllGeodeticTransformDefs(csFILE *file, cs_GeodeticTransform_* csTransformDef, int* /*unused*/)
+{
+    return CS_gxrd(file, csTransformDef);
+}
+
+CsDictionaryOpenMode CCoordinateSystemGeodeticTransformDefDictionary::GetFileOpenMode(long magicNumberFromFile)
+{
+    if (cs_GXDEF_MAGIC == magicNumberFromFile)
+        return Write;
+
+    _ASSERT(false);
+    return Closed;
+}
+
+/* END -------------------- CCoordinateSystemDictionaryBase support methods -------------------- END */
+/*****************************************************************************************************/
+
+
 #include "CoordSysDictionaryBase.cpp"
\ No newline at end of file


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

Modified: trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticTransformDefDictionary.h
===================================================================
--- trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticTransformDefDictionary.h	2010-09-21 08:36:03 UTC (rev 5169)
+++ trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticTransformDefDictionary.h	2010-09-21 14:52:39 UTC (rev 5170)
@@ -1,82 +1,82 @@
-//
-//  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 _CCOORDINATESYSTEMGEODETICTRANSFORMDEFDICTIONARY_H_
-#define _CCOORDINATESYSTEMGEODETICTRANSFORMDEFDICTIONARY_H_
-
-
-DECLARE_DICTIONARY_FILE_NAME(GeodeticTransformation);
-
-extern DefinitionAccess<CSLibrary::CCoordinateSystemGeodeticTransformDef, cs_GeodeticTransform_> transformDefinitionAccess;
-
-namespace CSLibrary
-{
-    class CCoordinateSystemGeodeticTransformDefDictionary : public MgCoordinateSystemGeodeticTransformDefDictionary
-    {
-    public:
-        CCoordinateSystemGeodeticTransformDefDictionary(MgCoordinateSystemCatalog *pCatalog);
-        virtual ~CCoordinateSystemGeodeticTransformDefDictionary();
-
-        virtual MgCoordinateSystemGeodeticTransformDef* NewGeodeticTransformationDef(INT32 transformationDefType);
-        virtual MgCoordinateSystemGeodeticTransformDef* GetGeodeticTransformationDef(CREFSTRING pathName);
-
-
-        //querying the dictionary
-        virtual MgGuardDisposable* Get(CREFSTRING sName);
-        virtual MgCoordinateSystemEnum* GetEnum();
-        virtual bool Has(CREFSTRING sName);
-        virtual STRING GetPath();
-        virtual UINT32 GetSize();
-
-        //CS_Map library support stuff
-        virtual MgCoordinateSystemCatalog* GetCatalog();
-        virtual STRING GetDefaultFileName();
-        virtual STRING GetFileName();
-        virtual void SetFileName(CREFSTRING sFileName);
-        
-        //modify the dictionary
-        virtual void Add(MgGuardDisposable *pDefinition);
-        virtual void Remove(CREFSTRING sName);
-        virtual void Modify(MgGuardDisposable *pDefinition);
-
-    protected:
-        //MgDisposable
-        virtual void Dispose();
-
-    protected:
-
-        Ptr<CCoordinateSystemDictionaryBase<CCoordinateSystemGeodeticTransformDef, cs_GeodeticTransform_, \
-            &transformDefinitionAccess, true, cs_GXDEF_MAGIC, DICTIONARY_FILE_NAME(GeodeticTransformation)>> m_pDictionary;
-
-    public:
-        
-        static int UpdateGeodeticTransformDef(cs_GeodeticTransform_* csTransformDef, int /*unused*/);
-        static bool SetupCsStructFromMgTransformDef(CCoordinateSystemGeodeticTransformDef* mgGeodeticTransformDef, cs_GeodeticTransform_& csTransformDef);
-        
-        static void FullInitialize(CCoordinateSystemGeodeticTransformDef* mgGeodeticTransformDef, cs_GeodeticTransform_* csTransformDef, MgCoordinateSystemCatalog* catalog);
-
-        static const char* ReadName(const cs_GeodeticTransform_& definition);
-        static const char* ReadDescription(const cs_GeodeticTransform_& definition);
-
-        static int ReadAllGeodeticTransformDefs(csFILE *file, cs_GeodeticTransform_* csTransformDef, int* /*unused*/);
-
-        static CsDictionaryOpenMode GetFileOpenMode(long magicNumberFromFile);
-    };
-
-} // namespace CSLibrary
-
+//
+//  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 _CCOORDINATESYSTEMGEODETICTRANSFORMDEFDICTIONARY_H_
+#define _CCOORDINATESYSTEMGEODETICTRANSFORMDEFDICTIONARY_H_
+
+
+DECLARE_DICTIONARY_FILE_NAME(GeodeticTransformation);
+
+extern DefinitionAccess<CSLibrary::CCoordinateSystemGeodeticTransformDef, cs_GeodeticTransform_> transformDefinitionAccess;
+
+namespace CSLibrary
+{
+    class CCoordinateSystemGeodeticTransformDefDictionary : public MgCoordinateSystemGeodeticTransformDefDictionary
+    {
+    public:
+        CCoordinateSystemGeodeticTransformDefDictionary(MgCoordinateSystemCatalog *pCatalog);
+        virtual ~CCoordinateSystemGeodeticTransformDefDictionary();
+
+        virtual MgCoordinateSystemGeodeticTransformDef* NewGeodeticTransformationDef(INT32 transformationDefType);
+        virtual MgCoordinateSystemGeodeticTransformDef* GetGeodeticTransformationDef(CREFSTRING pathName);
+
+
+        //querying the dictionary
+        virtual MgGuardDisposable* Get(CREFSTRING sName);
+        virtual MgCoordinateSystemEnum* GetEnum();
+        virtual bool Has(CREFSTRING sName);
+        virtual STRING GetPath();
+        virtual UINT32 GetSize();
+
+        //CS_Map library support stuff
+        virtual MgCoordinateSystemCatalog* GetCatalog();
+        virtual STRING GetDefaultFileName();
+        virtual STRING GetFileName();
+        virtual void SetFileName(CREFSTRING sFileName);
+        
+        //modify the dictionary
+        virtual void Add(MgGuardDisposable *pDefinition);
+        virtual void Remove(CREFSTRING sName);
+        virtual void Modify(MgGuardDisposable *pDefinition);
+
+    protected:
+        //MgDisposable
+        virtual void Dispose();
+
+    protected:
+
+        Ptr<CCoordinateSystemDictionaryBase<CCoordinateSystemGeodeticTransformDef, cs_GeodeticTransform_, \
+            &transformDefinitionAccess, true, cs_GXDEF_MAGIC, DICTIONARY_FILE_NAME(GeodeticTransformation)>> m_pDictionary;
+
+    public:
+        
+        static int UpdateGeodeticTransformDef(cs_GeodeticTransform_* csTransformDef, int /*unused*/);
+        static bool SetupCsStructFromMgTransformDef(CCoordinateSystemGeodeticTransformDef* mgGeodeticTransformDef, cs_GeodeticTransform_& csTransformDef);
+        
+        static void FullInitialize(CCoordinateSystemGeodeticTransformDef* mgGeodeticTransformDef, cs_GeodeticTransform_* csTransformDef, MgCoordinateSystemCatalog* catalog);
+
+        static const char* ReadName(const cs_GeodeticTransform_& definition);
+        static const char* ReadDescription(const cs_GeodeticTransform_& definition);
+
+        static int ReadAllGeodeticTransformDefs(csFILE *file, cs_GeodeticTransform_* csTransformDef, int* /*unused*/);
+
+        static CsDictionaryOpenMode GetFileOpenMode(long magicNumberFromFile);
+    };
+
+} // namespace CSLibrary
+
 #endif //_CCOORDINATESYSTEMGEODETICTRANSFORMDEFDICTIONARY_H_
\ No newline at end of file


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

Modified: trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticTransformDefParams.cpp
===================================================================
--- trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticTransformDefParams.cpp	2010-09-21 08:36:03 UTC (rev 5169)
+++ trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticTransformDefParams.cpp	2010-09-21 14:52:39 UTC (rev 5170)
@@ -1,38 +1,38 @@
-//
-//  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 "GeometryCommon.h"
-#include "CoordSysGeodeticTransformDefParams.h"
-
-#include <cs_map.h>
-
-using namespace CSLibrary;
-
-CCoordinateSystemGeodeticTransformDefParams::CCoordinateSystemGeodeticTransformDefParams(bool isProtected)
-: isProtected(isProtected)
-{
-}
-
-CCoordinateSystemGeodeticTransformDefParams::~CCoordinateSystemGeodeticTransformDefParams()
-{
-}
-
-bool CCoordinateSystemGeodeticTransformDefParams::IsProtected()
-{
-    return this->isProtected;
-}
-
+//
+//  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 "GeometryCommon.h"
+#include "CoordSysGeodeticTransformDefParams.h"
+
+#include <cs_map.h>
+
+using namespace CSLibrary;
+
+CCoordinateSystemGeodeticTransformDefParams::CCoordinateSystemGeodeticTransformDefParams(bool isProtected)
+: isProtected(isProtected)
+{
+}
+
+CCoordinateSystemGeodeticTransformDefParams::~CCoordinateSystemGeodeticTransformDefParams()
+{
+}
+
+bool CCoordinateSystemGeodeticTransformDefParams::IsProtected()
+{
+    return this->isProtected;
+}
+


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

Modified: trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticTransformDefParams.h
===================================================================
--- trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticTransformDefParams.h	2010-09-21 08:36:03 UTC (rev 5169)
+++ trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticTransformDefParams.h	2010-09-21 14:52:39 UTC (rev 5170)
@@ -1,40 +1,40 @@
-//
-//  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 _CCOORDINATESYSTEMGEODETICTRANSFORMDEFPARAMS_H_
-#define _CCOORDINATESYSTEMGEODETICTRANSFORMDEFPARAMS_H_
-
-
-namespace CSLibrary
-{    
-    class CCoordinateSystemGeodeticTransformDefParams : public MgCoordinateSystemGeodeticTransformDefParams
-    {
-    public:
-        virtual void CopyTo(void* target) const = 0;
-        virtual bool IsProtected();
-
-    protected:
-        CCoordinateSystemGeodeticTransformDefParams(bool isProtected);
-        virtual ~CCoordinateSystemGeodeticTransformDefParams();
-
-    private:
-        bool isProtected;
-    };
-
-} //namespace CSLibrary
-
+//
+//  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 _CCOORDINATESYSTEMGEODETICTRANSFORMDEFPARAMS_H_
+#define _CCOORDINATESYSTEMGEODETICTRANSFORMDEFPARAMS_H_
+
+
+namespace CSLibrary
+{    
+    class CCoordinateSystemGeodeticTransformDefParams : public MgCoordinateSystemGeodeticTransformDefParams
+    {
+    public:
+        virtual void CopyTo(void* target) const = 0;
+        virtual bool IsProtected();
+
+    protected:
+        CCoordinateSystemGeodeticTransformDefParams(bool isProtected);
+        virtual ~CCoordinateSystemGeodeticTransformDefParams();
+
+    private:
+        bool isProtected;
+    };
+
+} //namespace CSLibrary
+
 #endif //_CCOORDINATESYSTEMGEODETICTRANSFORMDEFPARAMS_H_
\ No newline at end of file


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

Modified: trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticTransformGridFile.cpp
===================================================================
--- trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticTransformGridFile.cpp	2010-09-21 08:36:03 UTC (rev 5169)
+++ trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticTransformGridFile.cpp	2010-09-21 14:52:39 UTC (rev 5170)
@@ -1,138 +1,138 @@
-//
-//  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
-//
-
-#define CS_MAP_DEF_VARIABLE this->gridFileDesc
-
-#include "CoordSysMacro.h"
-
-#include "GeometryCommon.h"
-#include "CoordSysCommon.h"
-
-#include "CoordSysUtil.h"               //for Convert_Wide_To_Ascii
-#include "MentorUtil.h"                 //for OpenDictionaryFile()
-#include "MentorDictionary.h"
-
-#include "CoordSysGeodeticTransformGridFile.h"
-
-#include <cs_map.h>
-
-using namespace CSLibrary;
-
-CCoordinateSystemGeodeticTransformGridFile::CCoordinateSystemGeodeticTransformGridFile(const csGeodeticXfromParmsFile_* const fileFormatParam, bool isProtected)
-    : gridFileDesc(NULL), isProtected(isProtected)
-{
-    this->gridFileDesc = (csGeodeticXfromParmsFile_*)CS_malc(sizeof(csGeodeticXfromParmsFile_));
-    if (NULL == this->gridFileDesc)
-        throw new MgOutOfMemoryException(L"CCoordinateSystemGeodeticAnalyticalTransformDefParams.ctor", __LINE__, __WFILE__, NULL, L"", NULL);
-
-    ::memset(this->gridFileDesc, 0, sizeof(csGeodeticXfromParmsFile_)); 
-    if (NULL != fileFormatParam)
-        *this->gridFileDesc = *fileFormatParam;
-    //else: keep the 0'ed memory
-}
-
-CCoordinateSystemGeodeticTransformGridFile::~CCoordinateSystemGeodeticTransformGridFile()
-{
-    this->ReleaseInstance();
-}
-
-void CCoordinateSystemGeodeticTransformGridFile::Dispose()
-{
-    delete this;
-}
-
-void CCoordinateSystemGeodeticTransformGridFile::ReleaseInstance()
-{
-    if (NULL != this->gridFileDesc)
-    {
-        delete this->gridFileDesc;
-        this->gridFileDesc = NULL;
-    }
-}
-
-void CCoordinateSystemGeodeticTransformGridFile::CopyTo(csGeodeticXfromParmsFile_* destGridFile) const
-{
-    ENSURE_NOT_NULL(destGridFile, CCoordinateSystemGeodeticTransformGridFile::CopyTo);
-    *destGridFile = *this->gridFileDesc;
-}
-
-bool CCoordinateSystemGeodeticTransformGridFile::IsProtected()
-{
-    return this->isProtected;
-}
-
-bool CCoordinateSystemGeodeticTransformGridFile::IsValid()
-{
-    _ASSERT(NULL != this->gridFileDesc);
-
-    size_t fileNameLength = strlen(this->gridFileDesc->fileName);
-    
-    _ASSERT(fileNameLength < csGRIDI1_FLNMSZ);
-    if (0 == fileNameLength || fileNameLength >= csGRIDI1_FLNMSZ)
-        return false;
-
-    switch(this->gridFileDesc->fileFormat)
-    {
-    case cs_DTCFRMT_CNTv1:
-    case cs_DTCFRMT_CNTv2:
-    case cs_DTCFRMT_NADCN:
-    case cs_DTCFRMT_FRNCH:
-    case cs_DTCFRMT_JAPAN:
-    case cs_DTCFRMT_ATS77:
-    case cs_DTCFRMT_OST97:
-    case cs_DTCFRMT_OST02:
-        break;
-    
-    case cs_DTCFRMT_NONE:
-        _ASSERT(false);
-        break;
-
-    //unsupported file formats
-    default:
-        return false;
-    }
-
-    switch(this->gridFileDesc->direction)
-    {
-    case 'i':
-    case 'I':
-    case 'f':
-    case 'F':
-        break;
-
-    default:
-        return false;
-    }
-
-    return true;
-}
-
-
-//************************************ Getters / Setters ***************************** /
-DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticTransformGridFile,FileFormat,INT32,this->gridFileDesc->fileFormat);
-
-bool CCoordinateSystemGeodeticTransformGridFile::GetIsInverseDirection()
-{
-    return 'I' == this->gridFileDesc->direction || 'i' == this->gridFileDesc->direction;
-}
-
-void CCoordinateSystemGeodeticTransformGridFile::SetIsInverseDirection(bool isInverseDirection)
-{
-    this->gridFileDesc->direction = isInverseDirection ? 'I' : 'F';
-}
-
-DEFINE_GET_SET_STRING(CCoordinateSystemGeodeticTransformGridFile, FileName, this->gridFileDesc->fileName);
+//
+//  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
+//
+
+#define CS_MAP_DEF_VARIABLE this->gridFileDesc
+
+#include "CoordSysMacro.h"
+
+#include "GeometryCommon.h"
+#include "CoordSysCommon.h"
+
+#include "CoordSysUtil.h"               //for Convert_Wide_To_Ascii
+#include "MentorUtil.h"                 //for OpenDictionaryFile()
+#include "MentorDictionary.h"
+
+#include "CoordSysGeodeticTransformGridFile.h"
+
+#include <cs_map.h>
+
+using namespace CSLibrary;
+
+CCoordinateSystemGeodeticTransformGridFile::CCoordinateSystemGeodeticTransformGridFile(const csGeodeticXfromParmsFile_* const fileFormatParam, bool isProtected)
+    : gridFileDesc(NULL), isProtected(isProtected)
+{
+    this->gridFileDesc = (csGeodeticXfromParmsFile_*)CS_malc(sizeof(csGeodeticXfromParmsFile_));
+    if (NULL == this->gridFileDesc)
+        throw new MgOutOfMemoryException(L"CCoordinateSystemGeodeticAnalyticalTransformDefParams.ctor", __LINE__, __WFILE__, NULL, L"", NULL);
+
+    ::memset(this->gridFileDesc, 0, sizeof(csGeodeticXfromParmsFile_)); 
+    if (NULL != fileFormatParam)
+        *this->gridFileDesc = *fileFormatParam;
+    //else: keep the 0'ed memory
+}
+
+CCoordinateSystemGeodeticTransformGridFile::~CCoordinateSystemGeodeticTransformGridFile()
+{
+    this->ReleaseInstance();
+}
+
+void CCoordinateSystemGeodeticTransformGridFile::Dispose()
+{
+    delete this;
+}
+
+void CCoordinateSystemGeodeticTransformGridFile::ReleaseInstance()
+{
+    if (NULL != this->gridFileDesc)
+    {
+        delete this->gridFileDesc;
+        this->gridFileDesc = NULL;
+    }
+}
+
+void CCoordinateSystemGeodeticTransformGridFile::CopyTo(csGeodeticXfromParmsFile_* destGridFile) const
+{
+    ENSURE_NOT_NULL(destGridFile, CCoordinateSystemGeodeticTransformGridFile::CopyTo);
+    *destGridFile = *this->gridFileDesc;
+}
+
+bool CCoordinateSystemGeodeticTransformGridFile::IsProtected()
+{
+    return this->isProtected;
+}
+
+bool CCoordinateSystemGeodeticTransformGridFile::IsValid()
+{
+    _ASSERT(NULL != this->gridFileDesc);
+
+    size_t fileNameLength = strlen(this->gridFileDesc->fileName);
+    
+    _ASSERT(fileNameLength < csGRIDI1_FLNMSZ);
+    if (0 == fileNameLength || fileNameLength >= csGRIDI1_FLNMSZ)
+        return false;
+
+    switch(this->gridFileDesc->fileFormat)
+    {
+    case cs_DTCFRMT_CNTv1:
+    case cs_DTCFRMT_CNTv2:
+    case cs_DTCFRMT_NADCN:
+    case cs_DTCFRMT_FRNCH:
+    case cs_DTCFRMT_JAPAN:
+    case cs_DTCFRMT_ATS77:
+    case cs_DTCFRMT_OST97:
+    case cs_DTCFRMT_OST02:
+        break;
+    
+    case cs_DTCFRMT_NONE:
+        _ASSERT(false);
+        break;
+
+    //unsupported file formats
+    default:
+        return false;
+    }
+
+    switch(this->gridFileDesc->direction)
+    {
+    case 'i':
+    case 'I':
+    case 'f':
+    case 'F':
+        break;
+
+    default:
+        return false;
+    }
+
+    return true;
+}
+
+
+//************************************ Getters / Setters ***************************** /
+DEFINE_GET_SET_NUMERIC(CCoordinateSystemGeodeticTransformGridFile,FileFormat,INT32,this->gridFileDesc->fileFormat);
+
+bool CCoordinateSystemGeodeticTransformGridFile::GetIsInverseDirection()
+{
+    return 'I' == this->gridFileDesc->direction || 'i' == this->gridFileDesc->direction;
+}
+
+void CCoordinateSystemGeodeticTransformGridFile::SetIsInverseDirection(bool isInverseDirection)
+{
+    this->gridFileDesc->direction = isInverseDirection ? 'I' : 'F';
+}
+
+DEFINE_GET_SET_STRING(CCoordinateSystemGeodeticTransformGridFile, FileName, this->gridFileDesc->fileName);


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

Modified: trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticTransformGridFile.h
===================================================================
--- trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticTransformGridFile.h	2010-09-21 08:36:03 UTC (rev 5169)
+++ trunk/MgDev/Common/CoordinateSystem/CoordSysGeodeticTransformGridFile.h	2010-09-21 14:52:39 UTC (rev 5170)
@@ -1,58 +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 _CCOORDINATESYSTEMGEODETICTRANSFORMGRIDFILE_H
-#define _CCOORDINATESYSTEMGEODETICTRANSFORMGRIDFILE_H
-
-namespace CSLibrary
-{
-    class CCoordinateSystemGeodeticTransformGridFile :
-        public MgCoordinateSystemGeodeticTransformGridFile
-    {
-    public:
-        CCoordinateSystemGeodeticTransformGridFile(const csGeodeticXfromParmsFile_* const fileFormatParam, bool isProtected);
-        ~CCoordinateSystemGeodeticTransformGridFile();
-
-        // >>> MgCoordinateSystemGeodeticTransformGridFile
-        virtual INT32 GetFileFormat();
-        virtual void SetFileFormat(INT32 gridFileFormat);
-
-        virtual bool GetIsInverseDirection();
-        virtual void SetIsInverseDirection(bool isInverseDirection);
-
-        virtual STRING GetFileName();
-        virtual void SetFileName(CREFSTRING fileName);
-
-        virtual bool IsProtected();
-        virtual bool IsValid();
-
-        // <<< MgCoordinateSystemGeodeticTransformGridFile
-
-        virtual void Dispose();
-
-        virtual void CopyTo(csGeodeticXfromParmsFile_* destGridFile) const;
-
-    private:
-        void ReleaseInstance();
-
-    private:
-        csGeodeticXfromParmsFile_* gridFileDesc;
-        bool isProtected;
-    };
-}
-
+//
+//  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 _CCOORDINATESYSTEMGEODETICTRANSFORMGRIDFILE_H
+#define _CCOORDINATESYSTEMGEODETICTRANSFORMGRIDFILE_H
+
+namespace CSLibrary
+{
+    class CCoordinateSystemGeodeticTransformGridFile :
+        public MgCoordinateSystemGeodeticTransformGridFile
+    {
+    public:
+        CCoordinateSystemGeodeticTransformGridFile(const csGeodeticXfromParmsFile_* const fileFormatParam, bool isProtected);
+        ~CCoordinateSystemGeodeticTransformGridFile();
+
+        // >>> MgCoordinateSystemGeodeticTransformGridFile
+        virtual INT32 GetFileFormat();
+        virtual void SetFileFormat(INT32 gridFileFormat);
+
+        virtual bool GetIsInverseDirection();
+        virtual void SetIsInverseDirection(bool isInverseDirection);
+
+        virtual STRING GetFileName();
+        virtual void SetFileName(CREFSTRING fileName);
+
+        virtual bool IsProtected();
+        virtual bool IsValid();
+
+        // <<< MgCoordinateSystemGeodeticTransformGridFile
+
+        virtual void Dispose();
+
+        virtual void CopyTo(csGeodeticXfromParmsFile_* destGridFile) const;
+
+    private:
+        void ReleaseInstance();
+
+    private:
+        csGeodeticXfromParmsFile_* gridFileDesc;
+        bool isProtected;
+    };
+}
+
 #endif //_CCOORDINATESYSTEMGEODETICTRANSFORMGRIDFILE_H
\ No newline at end of file


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

Modified: trunk/MgDev/Common/CoordinateSystem/CoordSysMacro.h
===================================================================
--- trunk/MgDev/Common/CoordinateSystem/CoordSysMacro.h	2010-09-21 08:36:03 UTC (rev 5169)
+++ trunk/MgDev/Common/CoordinateSystem/CoordSysMacro.h	2010-09-21 14:52:39 UTC (rev 5170)
@@ -1,99 +1,99 @@
-//
-//  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 _MG_COORDSYSMACRO_H_
-#define _MG_COORDSYSMACRO_H_
-
-//make sure to have CS_MAP_DEF_VARIABLE defined before including this header; this is used by VERIFY_INITIALIZED(x)
-    
-    #define MAKE_L_STRING(x) L## #x
-
-#ifdef CS_MAP_DEF_VARIABLE   
-    #define VERIFY_INITIALIZED(x)   if (NULL == CS_MAP_DEF_VARIABLE) \
-        throw new MgInvalidOperationException(x, __LINE__, __WFILE__, NULL, L"", NULL)
-#else
-    #define VERIFY_INITIALIZED(x)
-#endif
-
-#define VERIFY_NOT_PROTECTED(x) if (this->IsProtected()) \
-    throw new MgCoordinateSystemInitializationFailedException(x, __LINE__, __WFILE__, NULL, L"MgCoordinateSystemProtectedException", NULL);
-
-#define DEFINE_GET_STRING(x,y) STRING x::Get##y()
-#define DEFINE_SET_STRING(x,y) void x::Set##y(CREFSTRING propertyValue)
-
-#define DEFINE_GET_SET_STRING(className,propertyName,charBuffer) \
-    DEFINE_GET_STRING(className,propertyName) \
-    { \
-        VERIFY_INITIALIZED(MAKE_L_STRING(className##.Get##propertyName)); \
-        return MentorReadString(charBuffer); \
-    } \
-    DEFINE_SET_STRING(className,propertyName) \
-    { \
-        VERIFY_INITIALIZED(MAKE_L_STRING(className##.Set##propertyName)); \
-        if (this->IsProtected()) \
-            throw new MgCoordinateSystemInitializationFailedException(L"SetString", __LINE__, __WFILE__, NULL, L"MgCoordinateSystemProtectedException", NULL); \
-        \
-        MentorSetString(propertyValue, charBuffer /* target buffer */, sizeof(charBuffer)); \
-    }
-
-#define DEFINE_GET_NUMERIC(x,y,targetType) targetType x::Get##y()
-#define DEFINE_SET_NUMERIC(x,y,targetType) void x::Set##y(targetType propertyValue)
-
-#define DEFINE_GET_NUMERIC_IDX(x,y,targetType) targetType x::Get##y(INT32 index)
-#define DEFINE_SET_NUMERIC_IDX(x,y,targetType) void x::Set##y(INT32 index, targetType propertyValue)
-
-#define DEFINE_GET_SET_NUMERIC(className, propertyName,targetType,target) \
-    DEFINE_GET_NUMERIC(className,propertyName,targetType) \
-    { \
-        VERIFY_INITIALIZED(MAKE_L_STRING(className##.Get##propertyName)); \
-        return target; \
-    } \
-    DEFINE_SET_NUMERIC(className,propertyName,targetType) \
-    { \
-        VERIFY_INITIALIZED(MAKE_L_STRING(className##.Set##propertyName)); \
-        if (this->IsProtected()) \
-            throw new MgCoordinateSystemInitializationFailedException(L"SetValue", __LINE__, __WFILE__, NULL, L"MgCoordinateSystemProtectedException", NULL); \
-        \
-        target = propertyValue;\
-    }
-
-#define DEFINE_GET_SET_NUMERIC_IDX(className, propertyName,targetType,target,maxIdx) \
-    DEFINE_GET_NUMERIC_IDX(className,propertyName,targetType) \
-    { \
-        VERIFY_INITIALIZED(MAKE_L_STRING(className##.Get##propertyName)); \
-        if (index < 0 || index > maxIdx) \
-            throw new MgArgumentOutOfRangeException(L"GetValue", __LINE__, __WFILE__, NULL, L"MgCoordinateSystemProtectedException", NULL); \
-        \
-        return target[index]; \
-    } \
-    DEFINE_SET_NUMERIC_IDX(className,propertyName,targetType) \
-    { \
-        VERIFY_INITIALIZED(MAKE_L_STRING(className##.Set##propertyName)); \
-        if (this->IsProtected()) \
-            throw new MgCoordinateSystemInitializationFailedException(L"SetValue", __LINE__, __WFILE__, NULL, L"MgCoordinateSystemProtectedException", NULL); \
-        \
-        if (index < 0 || index > maxIdx) \
-            throw new MgArgumentOutOfRangeException(L"GetValue", __LINE__, __WFILE__, NULL, L"MgCoordinateSystemProtectedException", NULL); \
-        \
-        target[index] = propertyValue;\
-    }
-
-#define ENSURE_NOT_NULL(param,method) \
-    if (NULL == param) \
-        throw new MgNullArgumentException(L# method, __LINE__, __WFILE__, NULL, L"", NULL)
-
+//
+//  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 _MG_COORDSYSMACRO_H_
+#define _MG_COORDSYSMACRO_H_
+
+//make sure to have CS_MAP_DEF_VARIABLE defined before including this header; this is used by VERIFY_INITIALIZED(x)
+    
+    #define MAKE_L_STRING(x) L## #x
+
+#ifdef CS_MAP_DEF_VARIABLE   
+    #define VERIFY_INITIALIZED(x)   if (NULL == CS_MAP_DEF_VARIABLE) \
+        throw new MgInvalidOperationException(x, __LINE__, __WFILE__, NULL, L"", NULL)
+#else
+    #define VERIFY_INITIALIZED(x)
+#endif
+
+#define VERIFY_NOT_PROTECTED(x) if (this->IsProtected()) \
+    throw new MgCoordinateSystemInitializationFailedException(x, __LINE__, __WFILE__, NULL, L"MgCoordinateSystemProtectedException", NULL);
+
+#define DEFINE_GET_STRING(x,y) STRING x::Get##y()
+#define DEFINE_SET_STRING(x,y) void x::Set##y(CREFSTRING propertyValue)
+
+#define DEFINE_GET_SET_STRING(className,propertyName,charBuffer) \
+    DEFINE_GET_STRING(className,propertyName) \
+    { \
+        VERIFY_INITIALIZED(MAKE_L_STRING(className##.Get##propertyName)); \
+        return MentorReadString(charBuffer); \
+    } \
+    DEFINE_SET_STRING(className,propertyName) \
+    { \
+        VERIFY_INITIALIZED(MAKE_L_STRING(className##.Set##propertyName)); \
+        if (this->IsProtected()) \
+            throw new MgCoordinateSystemInitializationFailedException(L"SetString", __LINE__, __WFILE__, NULL, L"MgCoordinateSystemProtectedException", NULL); \
+        \
+        MentorSetString(propertyValue, charBuffer /* target buffer */, sizeof(charBuffer)); \
+    }
+
+#define DEFINE_GET_NUMERIC(x,y,targetType) targetType x::Get##y()
+#define DEFINE_SET_NUMERIC(x,y,targetType) void x::Set##y(targetType propertyValue)
+
+#define DEFINE_GET_NUMERIC_IDX(x,y,targetType) targetType x::Get##y(INT32 index)
+#define DEFINE_SET_NUMERIC_IDX(x,y,targetType) void x::Set##y(INT32 index, targetType propertyValue)
+
+#define DEFINE_GET_SET_NUMERIC(className, propertyName,targetType,target) \
+    DEFINE_GET_NUMERIC(className,propertyName,targetType) \
+    { \
+        VERIFY_INITIALIZED(MAKE_L_STRING(className##.Get##propertyName)); \
+        return target; \
+    } \
+    DEFINE_SET_NUMERIC(className,propertyName,targetType) \
+    { \
+        VERIFY_INITIALIZED(MAKE_L_STRING(className##.Set##propertyName)); \
+        if (this->IsProtected()) \
+            throw new MgCoordinateSystemInitializationFailedException(L"SetValue", __LINE__, __WFILE__, NULL, L"MgCoordinateSystemProtectedException", NULL); \
+        \
+        target = propertyValue;\
+    }
+
+#define DEFINE_GET_SET_NUMERIC_IDX(className, propertyName,targetType,target,maxIdx) \
+    DEFINE_GET_NUMERIC_IDX(className,propertyName,targetType) \
+    { \
+        VERIFY_INITIALIZED(MAKE_L_STRING(className##.Get##propertyName)); \
+        if (index < 0 || index > maxIdx) \
+            throw new MgArgumentOutOfRangeException(L"GetValue", __LINE__, __WFILE__, NULL, L"MgCoordinateSystemProtectedException", NULL); \
+        \
+        return target[index]; \
+    } \
+    DEFINE_SET_NUMERIC_IDX(className,propertyName,targetType) \
+    { \
+        VERIFY_INITIALIZED(MAKE_L_STRING(className##.Set##propertyName)); \
+        if (this->IsProtected()) \
+            throw new MgCoordinateSystemInitializationFailedException(L"SetValue", __LINE__, __WFILE__, NULL, L"MgCoordinateSystemProtectedException", NULL); \
+        \
+        if (index < 0 || index > maxIdx) \
+            throw new MgArgumentOutOfRangeException(L"GetValue", __LINE__, __WFILE__, NULL, L"MgCoordinateSystemProtectedException", NULL); \
+        \
+        target[index] = propertyValue;\
+    }
+
+#define ENSURE_NOT_NULL(param,method) \
+    if (NULL == param) \
+        throw new MgNullArgumentException(L# method, __LINE__, __WFILE__, NULL, L"", NULL)
+
 #endif //_MG_COORDSYSMACRO_H_
\ No newline at end of file


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

Modified: trunk/MgDev/Common/CoordinateSystem/namestruct.cpp
===================================================================
--- trunk/MgDev/Common/CoordinateSystem/namestruct.cpp	2010-09-21 08:36:03 UTC (rev 5169)
+++ trunk/MgDev/Common/CoordinateSystem/namestruct.cpp	2010-09-21 14:52:39 UTC (rev 5170)
@@ -1,123 +1,123 @@
-//
-//  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 "namestruct.h"
-
-//Constructor.  Initializes to a specified string
-//(if one is provided) or to all zeroes (if not).
-//
-TNameStruct::TNameStruct(const char *kpName)
-    : name(NULL)
-{
-    this->Init(kpName);
-}
-
-//Copy constructor - needed as we allocate the [name] field dynamically
-//
-TNameStruct::TNameStruct(const TNameStruct& other)
-    : name(NULL)
-{
-    this->Init(other.name);
-}
-
-//Destructor - releases the allocated memory
-//
-TNameStruct::~TNameStruct()
-{
-    this->Release();
-}
-
-void TNameStruct::Release()
-{
-    delete[] name;
-    name = NULL;
-}
-
-void TNameStruct::Init(const char *kpName)
-{
-    this->Release();
-
-    size_t stringLength = (NULL == kpName) ? 0 : strnlen(kpName, MAX_STRING_LENGTH);
-    
-    //cannot be null; throws std::bad_alloc in case of failure; (what about replacing the new operator?)
-    //don't catch it here - if we're not even able to allocate about [MAX_STRING_LENGTH] something very serious is going on here
-    name = new char[stringLength + 1];
-
-    if (stringLength > 0) //copy the string into the buffer if we've been given a valid, non-empty string
-        strncpy(name, kpName, stringLength);
-    
-    name[stringLength] = '\0'; // finally, set the terminating NULL char in any case; the buffer is at least 1 char long
-}
-
-//Assignment operator; assign based on other TNameStruct
-//
-TNameStruct& 
-TNameStruct::operator=(const TNameStruct& other)
-{
-    this->Init(other.name);
-    return *this;
-}
-
-//Assignment operator; assign based on string
-TNameStruct&
-TNameStruct::operator=(const char* newName)
-{
-    this->Init(newName);
-    return *this;
-}
-
-//Comparison operator (alphabetic, case-insensitive).
-//
-bool
-TNameStruct::operator<(const TNameStruct& other) const
-{
-    return (_stricmp(name, other.name) < 0);
-}
-
-
-//Comparison operator (alphabetic, case-insensitive).
-//
-bool
-TNameStruct::operator>(const TNameStruct& other) const
-{
-    return (_stricmp(name, other.name) > 0);
-}
-
-
-//Equality operator (alphabetic, case-insensitive).
-//
-bool
-TNameStruct::operator==(const TNameStruct& other) const
-{
-    return (_stricmp(name, other.name) == 0);
-}
-
-
-//Inequality operator (alphabetic, case-insensitive).
-//
-bool
-TNameStruct::operator!=(const TNameStruct& other) const
-{
-    return (_stricmp(name, other.name) != 0);
-}
-
-//Returns this [TNameStruct] current char* pointer
-//
-const char*
-TNameStruct::Name() const
-{
-    return this->name;
+//
+//  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 "namestruct.h"
+
+//Constructor.  Initializes to a specified string
+//(if one is provided) or to all zeroes (if not).
+//
+TNameStruct::TNameStruct(const char *kpName)
+    : name(NULL)
+{
+    this->Init(kpName);
+}
+
+//Copy constructor - needed as we allocate the [name] field dynamically
+//
+TNameStruct::TNameStruct(const TNameStruct& other)
+    : name(NULL)
+{
+    this->Init(other.name);
+}
+
+//Destructor - releases the allocated memory
+//
+TNameStruct::~TNameStruct()
+{
+    this->Release();
+}
+
+void TNameStruct::Release()
+{
+    delete[] name;
+    name = NULL;
+}
+
+void TNameStruct::Init(const char *kpName)
+{
+    this->Release();
+
+    size_t stringLength = (NULL == kpName) ? 0 : strnlen(kpName, MAX_STRING_LENGTH);
+    
+    //cannot be null; throws std::bad_alloc in case of failure; (what about replacing the new operator?)
+    //don't catch it here - if we're not even able to allocate about [MAX_STRING_LENGTH] something very serious is going on here
+    name = new char[stringLength + 1];
+
+    if (stringLength > 0) //copy the string into the buffer if we've been given a valid, non-empty string
+        strncpy(name, kpName, stringLength);
+    
+    name[stringLength] = '\0'; // finally, set the terminating NULL char in any case; the buffer is at least 1 char long
+}
+
+//Assignment operator; assign based on other TNameStruct
+//
+TNameStruct& 
+TNameStruct::operator=(const TNameStruct& other)
+{
+    this->Init(other.name);
+    return *this;
+}
+
+//Assignment operator; assign based on string
+TNameStruct&
+TNameStruct::operator=(const char* newName)
+{
+    this->Init(newName);
+    return *this;
+}
+
+//Comparison operator (alphabetic, case-insensitive).
+//
+bool
+TNameStruct::operator<(const TNameStruct& other) const
+{
+    return (_stricmp(name, other.name) < 0);
+}
+
+
+//Comparison operator (alphabetic, case-insensitive).
+//
+bool
+TNameStruct::operator>(const TNameStruct& other) const
+{
+    return (_stricmp(name, other.name) > 0);
+}
+
+
+//Equality operator (alphabetic, case-insensitive).
+//
+bool
+TNameStruct::operator==(const TNameStruct& other) const
+{
+    return (_stricmp(name, other.name) == 0);
+}
+
+
+//Inequality operator (alphabetic, case-insensitive).
+//
+bool
+TNameStruct::operator!=(const TNameStruct& other) const
+{
+    return (_stricmp(name, other.name) != 0);
+}
+
+//Returns this [TNameStruct] current char* pointer
+//
+const char*
+TNameStruct::Name() const
+{
+    return this->name;
 }
\ No newline at end of file


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

Modified: trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticAnalyticalTransformDefParams.h
===================================================================
--- trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticAnalyticalTransformDefParams.h	2010-09-21 08:36:03 UTC (rev 5169)
+++ trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticAnalyticalTransformDefParams.h	2010-09-21 14:52:39 UTC (rev 5170)
@@ -1,88 +1,88 @@
-//  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 _MGCOORDINATESYSTEMGEODETICANALYTICALTRANSFORMDEFPARAMS_H_
-#define _MGCOORDINATESYSTEMGEODETICANALYTICALTRANSFORMDEFPARAMS_H_
-
-/// \defgroup MgCoordinateSystemGeodeticAnalyticalTransformDefParams MgCoordinateSystemGeodeticAnalyticalTransformDefParams
-/// \ingroup Coordinate_System_classes
-/// \{
-
-////////////////////////////////////////////////////////////////
-/// \brief
-/// This class holds all parameters that are specific to analytical geodetic transformation methods, e.g.
-/// geocentric transformation, molodensky etc.
-///
-class MG_GEOMETRY_API MgCoordinateSystemGeodeticAnalyticalTransformDefParams : public MgCoordinateSystemGeodeticTransformDefParams
-{
-    DECLARE_CLASSNAME(MgCoordinateSystemGeodeticAnalyticalTransformDefParams)
-
-PUBLISHED_API:
-
-    //BEGIN: struct csGeodeticXformParmsGeocentric
-    virtual double GetDeltaX() = 0;
-    virtual void SetDeltaX(double deltaX) = 0;
-			
-    virtual double GetDeltaY() = 0;
-    virtual void SetDeltaY(double deltaY) = 0;
-
-    virtual double GetDeltaZ() = 0;
-    virtual void SetDeltaZ(double deltaZ) = 0;
-			
-    virtual double GetRotateX() = 0;
-    virtual void SetRotateX(double rotateX) = 0;
-
-    virtual double GetRotateY() = 0;
-    virtual void SetRotateY(double rotateY) = 0;
-
-    virtual double GetRotateZ() = 0;
-    virtual void SetRotateZ(double rotateZ) = 0;
-			
-	virtual double GetScale() = 0;
-    virtual void SetScale(double scale) = 0;
-
-    virtual double GetTranslateX() = 0;
-    virtual void SetTranslateX(double translateX) = 0;
-
-    virtual double GetTranslateY() = 0;
-    virtual void SetTranslateY(double translateY) = 0;
-
-    virtual double GetTranslateZ() = 0;
-    virtual void SetTranslateZ(double translateZ) = 0;
-    
-    //END: struct csGeodeticXformParmsGeocentric
-
-    virtual INT32 GetTransformationMethod() = 0;
-    virtual void SetTransformationMethod(INT32 analyticalMethodCode) = 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_CoordinateSystemGeodeticAnalyticalTransformDefParams;
-
-};
-
-/// \}
-
+//  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 _MGCOORDINATESYSTEMGEODETICANALYTICALTRANSFORMDEFPARAMS_H_
+#define _MGCOORDINATESYSTEMGEODETICANALYTICALTRANSFORMDEFPARAMS_H_
+
+/// \defgroup MgCoordinateSystemGeodeticAnalyticalTransformDefParams MgCoordinateSystemGeodeticAnalyticalTransformDefParams
+/// \ingroup Coordinate_System_classes
+/// \{
+
+////////////////////////////////////////////////////////////////
+/// \brief
+/// This class holds all parameters that are specific to analytical geodetic transformation methods, e.g.
+/// geocentric transformation, molodensky etc.
+///
+class MG_GEOMETRY_API MgCoordinateSystemGeodeticAnalyticalTransformDefParams : public MgCoordinateSystemGeodeticTransformDefParams
+{
+    DECLARE_CLASSNAME(MgCoordinateSystemGeodeticAnalyticalTransformDefParams)
+
+PUBLISHED_API:
+
+    //BEGIN: struct csGeodeticXformParmsGeocentric
+    virtual double GetDeltaX() = 0;
+    virtual void SetDeltaX(double deltaX) = 0;
+			
+    virtual double GetDeltaY() = 0;
+    virtual void SetDeltaY(double deltaY) = 0;
+
+    virtual double GetDeltaZ() = 0;
+    virtual void SetDeltaZ(double deltaZ) = 0;
+			
+    virtual double GetRotateX() = 0;
+    virtual void SetRotateX(double rotateX) = 0;
+
+    virtual double GetRotateY() = 0;
+    virtual void SetRotateY(double rotateY) = 0;
+
+    virtual double GetRotateZ() = 0;
+    virtual void SetRotateZ(double rotateZ) = 0;
+			
+	virtual double GetScale() = 0;
+    virtual void SetScale(double scale) = 0;
+
+    virtual double GetTranslateX() = 0;
+    virtual void SetTranslateX(double translateX) = 0;
+
+    virtual double GetTranslateY() = 0;
+    virtual void SetTranslateY(double translateY) = 0;
+
+    virtual double GetTranslateZ() = 0;
+    virtual void SetTranslateZ(double translateZ) = 0;
+    
+    //END: struct csGeodeticXformParmsGeocentric
+
+    virtual INT32 GetTransformationMethod() = 0;
+    virtual void SetTransformationMethod(INT32 analyticalMethodCode) = 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_CoordinateSystemGeodeticAnalyticalTransformDefParams;
+
+};
+
+/// \}
+
 #endif //_MGCOORDINATESYSTEMGEODETICANALYTICALTRANSFORMDEFPARAMS_H_
\ No newline at end of file


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

Modified: trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticAnalyticalTransformationMethod.h
===================================================================
--- trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticAnalyticalTransformationMethod.h	2010-09-21 08:36:03 UTC (rev 5169)
+++ trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticAnalyticalTransformationMethod.h	2010-09-21 14:52:39 UTC (rev 5170)
@@ -1,53 +1,53 @@
-//
-//  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 _MGCOORDINATESYSTEMGEODETICANALYTICALTRANSFORMATIONMETHOD_H_
-#define _MGCOORDINATESYSTEMGEODETICANALYTICALTRANSFORMATIONMETHOD_H_
-
-/// \defgroup MgCoordinateSystemGeodeticAnalyticalTransformationMethod MgCoordinateSystemGeodeticAnalyticalTransformationMethod
-/// \ingroup Coordinate_System_classes
-/// \{
-
-///////////////////////////////////////////////////////////////
-/// \brief
-/// This class defines the currently supported transformation methods for
-/// analytical geodetic transformations as they can be read via the
-/// MgCoordinateSystemGeodeticTransformDefDictionary. That is, the constants
-/// defined below are only valid for MgCoordinateSystemGeodeticTransformDef instances
-/// of type MgCoordinateSystemGeodeticTransformDefType.Analytical.
-///
-class MG_GEOMETRY_API MgCoordinateSystemGeodeticAnalyticalTransformationMethod
-{
-PUBLISHED_API:
-
-    static const INT32 None = 0;
-
-    static const INT32 ThreeParameter =     (8192 + 1);     //cs_DTCMTH_3PARM
-    static const INT32 Molodensky =         (8192 + 2);     //cs_DTCMTH_MOLOD
-    static const INT32 AbridgedMolodensky = (8192 + 3);     //cs_DTCMTH_AMOLO
-    static const INT32 Geocentric =         (8192 + 4);     //cs_DTCMTH_GEOCT
-    static const INT32 FourParameter =      (8192 + 5);     //cs_DTCMTH_4PARM
-    static const INT32 SixParameter =       (8192 + 6);     //cs_DTCMTH_6PARM
-    static const INT32 Bursa =              (8192 + 7);     //cs_DTCMTH_BURSA
-    static const INT32 Frame =              (8192 + 8);     //cs_DTCMTH_FRAME
-    static const INT32 SevenParameter =     (8192 + 9);     //cs_DTCMTH_7PARM
-    static const INT32 MolodenskyBadekas =  (8192 + 10);    //cs_DTCMTH_BDKAS
-
-};
-/// \}
-
-#endif //_MGCOORDINATESYSTEMGEODETICANALYTICALTRANSFORMATIONMETHOD_H_
+//
+//  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 _MGCOORDINATESYSTEMGEODETICANALYTICALTRANSFORMATIONMETHOD_H_
+#define _MGCOORDINATESYSTEMGEODETICANALYTICALTRANSFORMATIONMETHOD_H_
+
+/// \defgroup MgCoordinateSystemGeodeticAnalyticalTransformationMethod MgCoordinateSystemGeodeticAnalyticalTransformationMethod
+/// \ingroup Coordinate_System_classes
+/// \{
+
+///////////////////////////////////////////////////////////////
+/// \brief
+/// This class defines the currently supported transformation methods for
+/// analytical geodetic transformations as they can be read via the
+/// MgCoordinateSystemGeodeticTransformDefDictionary. That is, the constants
+/// defined below are only valid for MgCoordinateSystemGeodeticTransformDef instances
+/// of type MgCoordinateSystemGeodeticTransformDefType.Analytical.
+///
+class MG_GEOMETRY_API MgCoordinateSystemGeodeticAnalyticalTransformationMethod
+{
+PUBLISHED_API:
+
+    static const INT32 None = 0;
+
+    static const INT32 ThreeParameter =     (8192 + 1);     //cs_DTCMTH_3PARM
+    static const INT32 Molodensky =         (8192 + 2);     //cs_DTCMTH_MOLOD
+    static const INT32 AbridgedMolodensky = (8192 + 3);     //cs_DTCMTH_AMOLO
+    static const INT32 Geocentric =         (8192 + 4);     //cs_DTCMTH_GEOCT
+    static const INT32 FourParameter =      (8192 + 5);     //cs_DTCMTH_4PARM
+    static const INT32 SixParameter =       (8192 + 6);     //cs_DTCMTH_6PARM
+    static const INT32 Bursa =              (8192 + 7);     //cs_DTCMTH_BURSA
+    static const INT32 Frame =              (8192 + 8);     //cs_DTCMTH_FRAME
+    static const INT32 SevenParameter =     (8192 + 9);     //cs_DTCMTH_7PARM
+    static const INT32 MolodenskyBadekas =  (8192 + 10);    //cs_DTCMTH_BDKAS
+
+};
+/// \}
+
+#endif //_MGCOORDINATESYSTEMGEODETICANALYTICALTRANSFORMATIONMETHOD_H_


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

Modified: trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticInterpolationTransformDefParams.h
===================================================================
--- trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticInterpolationTransformDefParams.h	2010-09-21 08:36:03 UTC (rev 5169)
+++ trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticInterpolationTransformDefParams.h	2010-09-21 14:52:39 UTC (rev 5170)
@@ -1,115 +1,115 @@
-//  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 _MGCOORDINATESYSTEMGEODETICINTERPOLATIONTRANSFORMDEFPARAMS_H_
-#define _MGCOORDINATESYSTEMGEODETICINTERPOLATIONTRANSFORMDEFPARAMS_H_
-
-/// \defgroup MgCoordinateSystemGeodeticInterpolationTransformDefParams MgCoordinateSystemGeodeticInterpolationTransformDefParams
-/// \ingroup Coordinate_System_classes
-/// \{
-
-////////////////////////////////////////////////////////////////
-/// \brief
-/// This class holds all parameters that are specific to grid-file based transformation. That is,
-/// where the actual datum shift value for a coordinate is determined by interpolating between grid point values
-/// as defined in the respective grid file(s).
-///
-class MG_GEOMETRY_API MgCoordinateSystemGeodeticInterpolationTransformDefParams : public MgCoordinateSystemGeodeticTransformDefParams
-{
-    DECLARE_CLASSNAME(MgCoordinateSystemGeodeticInterpolationTransformDefParams)
-
-PUBLISHED_API:
-		
-    //BEGIN: struct csGeodeticXfromParmsFile
-
-    ///////////////////////////////////////////////////////////////////////////
-    /// \brief
-    /// Sets the grid files to be used by this transformation. See the description for
-    /// gridFiles parameter.
-    /// 
-    /// \param gridFiles
-    /// A (possibly empty) ordered(!) collection of MgCoordinateSystemGeodeticTransformGridFile objects.
-    /// The order of the elements contained in the collection is important, because this
-    /// instructs the underlying API in which order to use the grid files, e.g. in case of an overlap.
-    /// 
-    /// \remarks
-    /// The caller is responsible for disposing the collection of grid files. That is,
-    /// this parameter object will not take ownership of the collection passed in.
-    virtual void SetGridFiles(MgDisposableCollection* gridFiles) = 0;
-    
-    ///////////////////////////////////////////////////////////////////////////
-    /// \brief
-    /// Returns an ordered, non-live collection MgCoordinateSystemGeodeticTransformGridFile elements
-    /// currently used by this parameter object. Changing the collection does NOT
-    /// have an affect on this parent parameter instance. Instead, any API client
-    /// has to modify the collection and then set it back via SetGridFiles.
-    /// The list returned can be an empty but will never be NULL.
-    ///
-    /// \remarks
-    /// The caller is responsible for disposing the collection of grid files being returned
-    /// here.
-    virtual MgDisposableCollection* GetGridFiles() = 0;
-			
-    ///////////////////////////////////////////////////////////////////////////
-    /// \brief
-    /// Returns the name of the transformation to fallback to in case the transformation using the
-    /// defined grid files doesn't succeed.
-    ///
-    /// \return
-    /// Returns the name of the fallback transformation. Can be empty if no such fallback transformation
-    /// is defined.
-    /// 
-    virtual STRING GetFallback() = 0;
-
-    ///////////////////////////////////////////////////////////////////////////
-    /// \brief
-    /// Sets the name of the transformation to fallback to, if the transformation could not
-    /// be performed using the grid files defined.
-    ///
-    /// \param fallbackTransformation
-    /// Name of the transformation to fallback to.
-    virtual void SetFallback(CREFSTRING fallbackTransformation) = 0;
-
-    ///////////////////////////////////////////////////////////////////////////
-    /// \brief
-    /// Creates a new, empty MgCoordinateSystemGeodeticTransformGridFile object
-    /// that can be added to the collection set via SetGridFiles.
-    /// 
-    /// \return
-    /// Returns a new, unitialized MgCoordinateSystemGeodeticTransformGridFile instance
-    /// The caller is resonsible for disposing the object if no longer needed.
-    virtual MgCoordinateSystemGeodeticTransformGridFile* NewGridFile() = 0;
-
-     //END: struct csGeodeticXfromParmsFile
-
-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_CoordinateSystemGeodeticInterpolationTransformDefParams;
-
-};
-
-/// \}
-
+//  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 _MGCOORDINATESYSTEMGEODETICINTERPOLATIONTRANSFORMDEFPARAMS_H_
+#define _MGCOORDINATESYSTEMGEODETICINTERPOLATIONTRANSFORMDEFPARAMS_H_
+
+/// \defgroup MgCoordinateSystemGeodeticInterpolationTransformDefParams MgCoordinateSystemGeodeticInterpolationTransformDefParams
+/// \ingroup Coordinate_System_classes
+/// \{
+
+////////////////////////////////////////////////////////////////
+/// \brief
+/// This class holds all parameters that are specific to grid-file based transformation. That is,
+/// where the actual datum shift value for a coordinate is determined by interpolating between grid point values
+/// as defined in the respective grid file(s).
+///
+class MG_GEOMETRY_API MgCoordinateSystemGeodeticInterpolationTransformDefParams : public MgCoordinateSystemGeodeticTransformDefParams
+{
+    DECLARE_CLASSNAME(MgCoordinateSystemGeodeticInterpolationTransformDefParams)
+
+PUBLISHED_API:
+		
+    //BEGIN: struct csGeodeticXfromParmsFile
+
+    ///////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Sets the grid files to be used by this transformation. See the description for
+    /// gridFiles parameter.
+    /// 
+    /// \param gridFiles
+    /// A (possibly empty) ordered(!) collection of MgCoordinateSystemGeodeticTransformGridFile objects.
+    /// The order of the elements contained in the collection is important, because this
+    /// instructs the underlying API in which order to use the grid files, e.g. in case of an overlap.
+    /// 
+    /// \remarks
+    /// The caller is responsible for disposing the collection of grid files. That is,
+    /// this parameter object will not take ownership of the collection passed in.
+    virtual void SetGridFiles(MgDisposableCollection* gridFiles) = 0;
+    
+    ///////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Returns an ordered, non-live collection MgCoordinateSystemGeodeticTransformGridFile elements
+    /// currently used by this parameter object. Changing the collection does NOT
+    /// have an affect on this parent parameter instance. Instead, any API client
+    /// has to modify the collection and then set it back via SetGridFiles.
+    /// The list returned can be an empty but will never be NULL.
+    ///
+    /// \remarks
+    /// The caller is responsible for disposing the collection of grid files being returned
+    /// here.
+    virtual MgDisposableCollection* GetGridFiles() = 0;
+			
+    ///////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Returns the name of the transformation to fallback to in case the transformation using the
+    /// defined grid files doesn't succeed.
+    ///
+    /// \return
+    /// Returns the name of the fallback transformation. Can be empty if no such fallback transformation
+    /// is defined.
+    /// 
+    virtual STRING GetFallback() = 0;
+
+    ///////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Sets the name of the transformation to fallback to, if the transformation could not
+    /// be performed using the grid files defined.
+    ///
+    /// \param fallbackTransformation
+    /// Name of the transformation to fallback to.
+    virtual void SetFallback(CREFSTRING fallbackTransformation) = 0;
+
+    ///////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Creates a new, empty MgCoordinateSystemGeodeticTransformGridFile object
+    /// that can be added to the collection set via SetGridFiles.
+    /// 
+    /// \return
+    /// Returns a new, unitialized MgCoordinateSystemGeodeticTransformGridFile instance
+    /// The caller is resonsible for disposing the object if no longer needed.
+    virtual MgCoordinateSystemGeodeticTransformGridFile* NewGridFile() = 0;
+
+     //END: struct csGeodeticXfromParmsFile
+
+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_CoordinateSystemGeodeticInterpolationTransformDefParams;
+
+};
+
+/// \}
+
 #endif //_MGCOORDINATESYSTEMGEODETICINTERPOLATIONTRANSFORMDEFPARAMS_H_
\ No newline at end of file


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

Modified: trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticMultipleRegressionTransformDefParams.h
===================================================================
--- trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticMultipleRegressionTransformDefParams.h	2010-09-21 08:36:03 UTC (rev 5169)
+++ trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticMultipleRegressionTransformDefParams.h	2010-09-21 14:52:39 UTC (rev 5170)
@@ -1,103 +1,103 @@
-//  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 _MGCOORDINATESYSTEMGEODETICMULTIPLEREGRESSIONTRANSFORMDEFPARAMS_H_
-#define _MGCOORDINATESYSTEMGEODETICMULTIPLEREGRESSIONTRANSFORMDEFPARAMS_H_
-
-/// \defgroup MgCoordinateSystemGeodeticMultipleRegressionTransformDefParams MgCoordinateSystemGeodeticMultipleRegressionTransformDefParams
-/// \ingroup Coordinate_System_classes
-/// \{
-
-////////////////////////////////////////////////////////////////
-/// \brief
-/// This class holds all parameters that are specific to the multiple regression transformation method.
-///
-class MG_GEOMETRY_API MgCoordinateSystemGeodeticMultipleRegressionTransformDefParams : public MgCoordinateSystemGeodeticTransformDefParams
-{
-    DECLARE_CLASSNAME(MgCoordinateSystemGeodeticMultipleRegressionTransformDefParams)
-
-PUBLISHED_API:
-
-    //BEGIN: struct csGeodeticXformParmsDmaMulReg
-
-    //virtual UINT32 GetPhiBitmap(INT32 index) = 0; // range [0..3]; long compiles as 32 bit in MS VC;
-    //virtual void SetPhiBitmap(INT32 index, UINT32 value) = 0; //long compiles as 32 bit in MS VC;
-
-    //virtual UINT32 GetLambdaBitmap(INT32 index) = 0; // range [0..3]; long compiles as 32 bit in MS VC;
-    //virtual void SetLambdaBitmap(INT32 index, UINT32 value) = 0; //long compiles as 32 bit in MS VC;
-    //
-    //virtual UINT32 GetHeightBitmap(INT32 index) = 0; // range [0..3]; long compiles as 32 bit in MS VC;
-    //virtual void SetHeightBitmap(INT32 index, UINT32 value) = 0; //long compiles as 32 bit in MS VC;
-
-    virtual double GetValidation() = 0;
-    virtual void SetValidation(double validation) = 0;
-
-    virtual double GetTestPhi() = 0;
-    virtual void SetTestPhi(double testPhi) = 0;
-
-    virtual double GetTestLambda() = 0;
-    virtual void SetTestLambda(double testLambda) = 0;
-    		
-    virtual double GetDeltaPhi() = 0;
-    virtual void SetDeltaPhi(double deltaPhi) = 0;
-
-    virtual double GetDeltaLambda() = 0;
-    virtual void SetDeltaLambda(double deltaLambda) = 0;
-
-    virtual double GetDeltaHeight() = 0;
-    virtual void SetDeltaHeight(double deltaHeight) = 0;
-			
-    virtual double GetPhiOffset() = 0;
-    virtual void SetPhiOffset(double phiOffset) = 0;
-
-    virtual double GetLambdaOffset() = 0;
-    virtual void SetLambdaOffset(double lambdaOffset) = 0;
-    
-    virtual double GetNormalizationScale() = 0;
-    virtual void SetNormalizationScale(double NormalizationScale) = 0;
-
-    virtual double GetCoefficientPhi(INT32 index) = 0; // range [0..104]
-    virtual void SetCoefficientPhi(INT32 index, double value) = 0;
-    
-    virtual double GetCoefficientLambda(INT32 index) = 0; // range [0..104]
-    virtual void SetCoefficientLambda(INT32 index, double value) = 0;
-
-    virtual double GetCoefficientHeight(INT32 index) = 0; // range [0..104]
-    virtual void SetCoefficientHeight(INT32 index, double value) = 0;
-
-    //END: struct csGeodeticXformParmsDmaMulReg
-
-    virtual INT32 GetTransformationMethod() = 0;
-    virtual void SetTransformationMethod(INT32 mulRegTransformationMethod) = 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_CoordinateSystemGeodeticMultipleRegressionTransformDefParams;
-
-};
-
-/// \}
-
+//  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 _MGCOORDINATESYSTEMGEODETICMULTIPLEREGRESSIONTRANSFORMDEFPARAMS_H_
+#define _MGCOORDINATESYSTEMGEODETICMULTIPLEREGRESSIONTRANSFORMDEFPARAMS_H_
+
+/// \defgroup MgCoordinateSystemGeodeticMultipleRegressionTransformDefParams MgCoordinateSystemGeodeticMultipleRegressionTransformDefParams
+/// \ingroup Coordinate_System_classes
+/// \{
+
+////////////////////////////////////////////////////////////////
+/// \brief
+/// This class holds all parameters that are specific to the multiple regression transformation method.
+///
+class MG_GEOMETRY_API MgCoordinateSystemGeodeticMultipleRegressionTransformDefParams : public MgCoordinateSystemGeodeticTransformDefParams
+{
+    DECLARE_CLASSNAME(MgCoordinateSystemGeodeticMultipleRegressionTransformDefParams)
+
+PUBLISHED_API:
+
+    //BEGIN: struct csGeodeticXformParmsDmaMulReg
+
+    //virtual UINT32 GetPhiBitmap(INT32 index) = 0; // range [0..3]; long compiles as 32 bit in MS VC;
+    //virtual void SetPhiBitmap(INT32 index, UINT32 value) = 0; //long compiles as 32 bit in MS VC;
+
+    //virtual UINT32 GetLambdaBitmap(INT32 index) = 0; // range [0..3]; long compiles as 32 bit in MS VC;
+    //virtual void SetLambdaBitmap(INT32 index, UINT32 value) = 0; //long compiles as 32 bit in MS VC;
+    //
+    //virtual UINT32 GetHeightBitmap(INT32 index) = 0; // range [0..3]; long compiles as 32 bit in MS VC;
+    //virtual void SetHeightBitmap(INT32 index, UINT32 value) = 0; //long compiles as 32 bit in MS VC;
+
+    virtual double GetValidation() = 0;
+    virtual void SetValidation(double validation) = 0;
+
+    virtual double GetTestPhi() = 0;
+    virtual void SetTestPhi(double testPhi) = 0;
+
+    virtual double GetTestLambda() = 0;
+    virtual void SetTestLambda(double testLambda) = 0;
+    		
+    virtual double GetDeltaPhi() = 0;
+    virtual void SetDeltaPhi(double deltaPhi) = 0;
+
+    virtual double GetDeltaLambda() = 0;
+    virtual void SetDeltaLambda(double deltaLambda) = 0;
+
+    virtual double GetDeltaHeight() = 0;
+    virtual void SetDeltaHeight(double deltaHeight) = 0;
+			
+    virtual double GetPhiOffset() = 0;
+    virtual void SetPhiOffset(double phiOffset) = 0;
+
+    virtual double GetLambdaOffset() = 0;
+    virtual void SetLambdaOffset(double lambdaOffset) = 0;
+    
+    virtual double GetNormalizationScale() = 0;
+    virtual void SetNormalizationScale(double NormalizationScale) = 0;
+
+    virtual double GetCoefficientPhi(INT32 index) = 0; // range [0..104]
+    virtual void SetCoefficientPhi(INT32 index, double value) = 0;
+    
+    virtual double GetCoefficientLambda(INT32 index) = 0; // range [0..104]
+    virtual void SetCoefficientLambda(INT32 index, double value) = 0;
+
+    virtual double GetCoefficientHeight(INT32 index) = 0; // range [0..104]
+    virtual void SetCoefficientHeight(INT32 index, double value) = 0;
+
+    //END: struct csGeodeticXformParmsDmaMulReg
+
+    virtual INT32 GetTransformationMethod() = 0;
+    virtual void SetTransformationMethod(INT32 mulRegTransformationMethod) = 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_CoordinateSystemGeodeticMultipleRegressionTransformDefParams;
+
+};
+
+/// \}
+
 #endif //_MGCOORDINATESYSTEMGEODETICMULTIPLEREGRESSIONTRANSFORMDEFPARAMS_H_
\ No newline at end of file


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

Modified: trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticMultipleRegressionTransformationMethod.h
===================================================================
--- trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticMultipleRegressionTransformationMethod.h	2010-09-21 08:36:03 UTC (rev 5169)
+++ trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticMultipleRegressionTransformationMethod.h	2010-09-21 14:52:39 UTC (rev 5170)
@@ -1,45 +1,45 @@
-//
-//  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 _MGCOORDINATESYSTEMGEODETICMULTIPLEREGRESSIONTRANSFORMATIONMETHOD_H_
-#define _MGCOORDINATESYSTEMGEODETICMULTIPLEREGRESSIONTRANSFORMATIONMETHOD_H_
-
-/// \defgroup MgCoordinateSystemGeodeticMultipleRegressionTransformationMethod MgCoordinateSystemGeodeticMultipleRegressionTransformationMethod
-/// \ingroup Coordinate_System_classes
-/// \{
-
-///////////////////////////////////////////////////////////////
-/// \brief
-/// This class defines the currently supported transformation methods for
-/// multiple regression geodetic transformations as they can be read via the
-/// MgCoordinateSystemGeodeticTransformDefDictionary. That is, the constants
-/// defined below are only valid for MgCoordinateSystemGeodeticTransformDef instances
-/// of type MgCoordinateSystemGeodeticTransformDefType.MultipleRegression.
-///
-class MG_GEOMETRY_API MgCoordinateSystemGeodeticMultipleRegressionTransformationMethod
-{
-PUBLISHED_API:
-
-    static const INT32 None = 0;
-
-    static const INT32 MultipleRegression =     (20480 + 1); //cs_DTCMTH_MULRG
-    static const INT32 GeneralPolynomialEpsg =  (20480 + 2); //cs_DTCMTH_PLYNM
-
-};
-/// \}
-
-#endif //_MGCOORDINATESYSTEMGEODETICMULTIPLEREGRESSIONTRANSFORMATIONMETHOD_H_
+//
+//  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 _MGCOORDINATESYSTEMGEODETICMULTIPLEREGRESSIONTRANSFORMATIONMETHOD_H_
+#define _MGCOORDINATESYSTEMGEODETICMULTIPLEREGRESSIONTRANSFORMATIONMETHOD_H_
+
+/// \defgroup MgCoordinateSystemGeodeticMultipleRegressionTransformationMethod MgCoordinateSystemGeodeticMultipleRegressionTransformationMethod
+/// \ingroup Coordinate_System_classes
+/// \{
+
+///////////////////////////////////////////////////////////////
+/// \brief
+/// This class defines the currently supported transformation methods for
+/// multiple regression geodetic transformations as they can be read via the
+/// MgCoordinateSystemGeodeticTransformDefDictionary. That is, the constants
+/// defined below are only valid for MgCoordinateSystemGeodeticTransformDef instances
+/// of type MgCoordinateSystemGeodeticTransformDefType.MultipleRegression.
+///
+class MG_GEOMETRY_API MgCoordinateSystemGeodeticMultipleRegressionTransformationMethod
+{
+PUBLISHED_API:
+
+    static const INT32 None = 0;
+
+    static const INT32 MultipleRegression =     (20480 + 1); //cs_DTCMTH_MULRG
+    static const INT32 GeneralPolynomialEpsg =  (20480 + 2); //cs_DTCMTH_PLYNM
+
+};
+/// \}
+
+#endif //_MGCOORDINATESYSTEMGEODETICMULTIPLEREGRESSIONTRANSFORMATIONMETHOD_H_


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

Modified: trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticPath.h
===================================================================
--- trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticPath.h	2010-09-21 08:36:03 UTC (rev 5169)
+++ trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticPath.h	2010-09-21 14:52:39 UTC (rev 5170)
@@ -1,143 +1,143 @@
-//
-//  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 _MGCOORDINATESYSTEMGEODETICPATH_H_
-#define _MGCOORDINATESYSTEMGEODETICPATH_H_
-
-/// \defgroup MgCoordinateSystemGeodeticPath MgCoordinateSystemGeodeticPath
-/// \ingroup Coordinate_System_classes
-/// \{
-
-////////////////////////////////////////////////////////////////
-/// \brief
-/// A geodetic (transformation) path allows to concatenate multiple
-/// geodetic transformations. For example, converting between 2 datums
-/// cannot be achieved by doing 1 datum shift only but requires to
-/// do 1 or more datums shifts in between.
-///
-class MG_GEOMETRY_API MgCoordinateSystemGeodeticPath : public MgGuardDisposable
-{
-    DECLARE_CLASSNAME(MgCoordinateSystemGeodeticPath)
-
-PUBLISHED_API:
-
-    //properties
-
-    virtual STRING GetPathName()=0;
-    virtual void SetPathName(CREFSTRING)=0;
-    
-    virtual STRING GetDescription()=0;  /// __get
-    virtual void SetDescription(CREFSTRING)=0;
-    
-    virtual STRING GetGroup()=0;  /// __get
-    virtual void SetGroup(CREFSTRING)=0;
-    
-    virtual STRING GetSource()=0;  /// __get
-    virtual void SetSource(CREFSTRING)=0;
-    
-    virtual STRING GetTargetDatum()=0;  /// __get
-    virtual void SetTargetDatum(CREFSTRING)=0;
-
-    virtual STRING GetSourceDatum()=0;  /// __get
-    virtual void SetSourceDatum(CREFSTRING)=0;
-
-    virtual double GetAccuracy()=0; /// __get
-    virtual void SetAccuracy(double accuracy)=0;
-
-    virtual bool GetIsReversible()=0;
-    virtual void SetIsReversible(bool isReversible)=0;
-
-    virtual INT32 GetEpsgCode()=0;
-    virtual void SetEpsgCode(INT32 epsgCode)=0;
-    
-    virtual INT32 GetEpsgVariant()=0;
-    virtual void SetEpsgVariant(INT32 epsgVariant)=0;
-
-    ///////////////////////////////////////////////////////////////////////////
-    /// \brief
-    /// Returns an ordered collection of MgCoordinateSystemGeodeticPathElement objects
-    /// that form this geodetic transformation path. See remarks.
-    /// 
-    /// \return
-    /// Returns a (possibly empty) collection of MgCoordinateSystemGeodeticPathElement instances.
-    /// The caller is responsible for disposing the collection being returned.
-    ///
-    /// \remarks
-    /// Changing the collection being returned has no affect on this parent geodetic
-    /// path instance. Instead, the collection can be modified and then re-set via
-    /// SetPathElements.
-    virtual MgDisposableCollection* GetPathElements() = 0;
-    
-    ///////////////////////////////////////////////////////////////////////////
-    /// \brief
-    /// Sets the individual transformation steps that form this geodetic transformation
-    /// path.
-    /// 
-    /// \remarks
-    /// The caller is responsible for disposing the collection passed in, i.e.
-    /// this geodetic path instance will not take ownership of the elements.
-    virtual void SetPathElements(MgDisposableCollection* pathElements) = 0;
-    
-    virtual bool IsProtected() = 0;
-    virtual bool IsValid() = 0;
-
-    ///////////////////////////////////////////////////////////////////////////
-    /// \brief
-    /// Creates a new, unitialized MgCoordinateSystemGeodeticPathElement instance.
-    /// Calling this method does not affect the underlying dictionary file.
-    /// Typically, an API client will retrieve new objects through this method
-    /// so they can be added to the collection of path elements that can be set
-    /// via SetPathElements.
-    ///
-    /// \return
-    /// Returns a new MgCoordinateSystemGeodeticPathElement instance. The caller is responsible
-    /// for disposing the object being returned.
-    virtual MgCoordinateSystemGeodeticPathElement* NewPathElement() = 0;
-
-    ///////////////////////////////////////////////////////////////////////////
-    /// \brief
-    /// Creates a deep clone of this geodetic path. That is, the cloned object
-    /// will also have its geodetic path element information cloned.
-    ///
-    /// \return
-    /// Returns a new MgCoordinateSystemGeodeticPath object that is an exact clone
-    /// of this MgCoordinateSystemGeodeticPath instance. The caller is responsible for
-    /// disposing the object being returned.
-    ///
-    /// \remarks:
-    /// The returned MgCoordinateSystemGeodeticPath instance will have its protected flag
-    /// unset. However, all other properties like name etc will be the same. Any caller will
-    /// have to change such values before trying to write the cloned instance into
-    /// the dictionary file.
-    virtual MgCoordinateSystemGeodeticPath* CreateClone() = 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_CoordinateSystemGeodeticPath;
-};
-/// \}
-
-#endif //_MGCOORDINATESYSTEMGEODETICPATH_H_
+//
+//  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 _MGCOORDINATESYSTEMGEODETICPATH_H_
+#define _MGCOORDINATESYSTEMGEODETICPATH_H_
+
+/// \defgroup MgCoordinateSystemGeodeticPath MgCoordinateSystemGeodeticPath
+/// \ingroup Coordinate_System_classes
+/// \{
+
+////////////////////////////////////////////////////////////////
+/// \brief
+/// A geodetic (transformation) path allows to concatenate multiple
+/// geodetic transformations. For example, converting between 2 datums
+/// cannot be achieved by doing 1 datum shift only but requires to
+/// do 1 or more datums shifts in between.
+///
+class MG_GEOMETRY_API MgCoordinateSystemGeodeticPath : public MgGuardDisposable
+{
+    DECLARE_CLASSNAME(MgCoordinateSystemGeodeticPath)
+
+PUBLISHED_API:
+
+    //properties
+
+    virtual STRING GetPathName()=0;
+    virtual void SetPathName(CREFSTRING)=0;
+    
+    virtual STRING GetDescription()=0;  /// __get
+    virtual void SetDescription(CREFSTRING)=0;
+    
+    virtual STRING GetGroup()=0;  /// __get
+    virtual void SetGroup(CREFSTRING)=0;
+    
+    virtual STRING GetSource()=0;  /// __get
+    virtual void SetSource(CREFSTRING)=0;
+    
+    virtual STRING GetTargetDatum()=0;  /// __get
+    virtual void SetTargetDatum(CREFSTRING)=0;
+
+    virtual STRING GetSourceDatum()=0;  /// __get
+    virtual void SetSourceDatum(CREFSTRING)=0;
+
+    virtual double GetAccuracy()=0; /// __get
+    virtual void SetAccuracy(double accuracy)=0;
+
+    virtual bool GetIsReversible()=0;
+    virtual void SetIsReversible(bool isReversible)=0;
+
+    virtual INT32 GetEpsgCode()=0;
+    virtual void SetEpsgCode(INT32 epsgCode)=0;
+    
+    virtual INT32 GetEpsgVariant()=0;
+    virtual void SetEpsgVariant(INT32 epsgVariant)=0;
+
+    ///////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Returns an ordered collection of MgCoordinateSystemGeodeticPathElement objects
+    /// that form this geodetic transformation path. See remarks.
+    /// 
+    /// \return
+    /// Returns a (possibly empty) collection of MgCoordinateSystemGeodeticPathElement instances.
+    /// The caller is responsible for disposing the collection being returned.
+    ///
+    /// \remarks
+    /// Changing the collection being returned has no affect on this parent geodetic
+    /// path instance. Instead, the collection can be modified and then re-set via
+    /// SetPathElements.
+    virtual MgDisposableCollection* GetPathElements() = 0;
+    
+    ///////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Sets the individual transformation steps that form this geodetic transformation
+    /// path.
+    /// 
+    /// \remarks
+    /// The caller is responsible for disposing the collection passed in, i.e.
+    /// this geodetic path instance will not take ownership of the elements.
+    virtual void SetPathElements(MgDisposableCollection* pathElements) = 0;
+    
+    virtual bool IsProtected() = 0;
+    virtual bool IsValid() = 0;
+
+    ///////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Creates a new, unitialized MgCoordinateSystemGeodeticPathElement instance.
+    /// Calling this method does not affect the underlying dictionary file.
+    /// Typically, an API client will retrieve new objects through this method
+    /// so they can be added to the collection of path elements that can be set
+    /// via SetPathElements.
+    ///
+    /// \return
+    /// Returns a new MgCoordinateSystemGeodeticPathElement instance. The caller is responsible
+    /// for disposing the object being returned.
+    virtual MgCoordinateSystemGeodeticPathElement* NewPathElement() = 0;
+
+    ///////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Creates a deep clone of this geodetic path. That is, the cloned object
+    /// will also have its geodetic path element information cloned.
+    ///
+    /// \return
+    /// Returns a new MgCoordinateSystemGeodeticPath object that is an exact clone
+    /// of this MgCoordinateSystemGeodeticPath instance. The caller is responsible for
+    /// disposing the object being returned.
+    ///
+    /// \remarks:
+    /// The returned MgCoordinateSystemGeodeticPath instance will have its protected flag
+    /// unset. However, all other properties like name etc will be the same. Any caller will
+    /// have to change such values before trying to write the cloned instance into
+    /// the dictionary file.
+    virtual MgCoordinateSystemGeodeticPath* CreateClone() = 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_CoordinateSystemGeodeticPath;
+};
+/// \}
+
+#endif //_MGCOORDINATESYSTEMGEODETICPATH_H_


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

Modified: trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticPathDictionary.h
===================================================================
--- trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticPathDictionary.h	2010-09-21 08:36:03 UTC (rev 5169)
+++ trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticPathDictionary.h	2010-09-21 14:52:39 UTC (rev 5170)
@@ -1,76 +1,76 @@
-//
-//  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 _MGCOORDINATESYSTEMGEODETICPATHDICTIONARY_H_
-#define _MGCOORDINATESYSTEMGEODETICPATHDICTIONARY_H_
-
-/// \defgroup MgCoordinateSystemGeodeticPathDictionary MgCoordinateSystemGeodeticPathDictionary
-/// \ingroup Coordinate_System_classes
-/// \{
-
-////////////////////////////////////////////////////////////////
-/// \brief
-/// The MgCoordinateSystemGeodeticPathDictionary provides access to all geodetic transformation path
-/// definitions as defined in the dictionary file this instance reads from / writes to.
-///
-class MG_GEOMETRY_API MgCoordinateSystemGeodeticPathDictionary : public MgCoordinateSystemDictionaryBase
-{
-    DECLARE_CLASSNAME(MgCoordinateSystemGeodeticPathDictionary)
-
-PUBLISHED_API:
-
-    ///////////////////////////////////////////////////////////////////////////
-    /// \brief
-    /// Creates a new, empty geodetic path object that has to be filled by an API client. This
-    /// method does not create a new entry in the dictionary. The caller is responsible
-    /// for disposing the object being returned.
-    /// 
-    /// \return
-    /// Return a new, in-memory geodetic path object. No content is written to disk
-    /// when this method executes.
-    ///
-    virtual MgCoordinateSystemGeodeticPath* NewGeodeticPath()=0;
-
-    ///////////////////////////////////////////////////////////////////////////
-    /// \brief
-    /// Returns the geodetic path object where the name is equal to the parameter
-    /// pathName. The caller is responsible for disposing the object.
-    /// 
-    /// \param pathName
-    /// The name of the geodetic path to look up in the dictionary. Must not be an empty string.
-    /// 
-    /// \return
-    /// Return the geodetic path if found. Otherwise NULL.
-    ///
-    virtual MgCoordinateSystemGeodeticPath* GetGeodeticPath(CREFSTRING pathName)=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_CoordinateSystemGeodeticPathDictionary;
-};
-/// \}
-
-#endif //_MGCOORDINATESYSTEMGEODETICPATHDICTIONARY_H_
+//
+//  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 _MGCOORDINATESYSTEMGEODETICPATHDICTIONARY_H_
+#define _MGCOORDINATESYSTEMGEODETICPATHDICTIONARY_H_
+
+/// \defgroup MgCoordinateSystemGeodeticPathDictionary MgCoordinateSystemGeodeticPathDictionary
+/// \ingroup Coordinate_System_classes
+/// \{
+
+////////////////////////////////////////////////////////////////
+/// \brief
+/// The MgCoordinateSystemGeodeticPathDictionary provides access to all geodetic transformation path
+/// definitions as defined in the dictionary file this instance reads from / writes to.
+///
+class MG_GEOMETRY_API MgCoordinateSystemGeodeticPathDictionary : public MgCoordinateSystemDictionaryBase
+{
+    DECLARE_CLASSNAME(MgCoordinateSystemGeodeticPathDictionary)
+
+PUBLISHED_API:
+
+    ///////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Creates a new, empty geodetic path object that has to be filled by an API client. This
+    /// method does not create a new entry in the dictionary. The caller is responsible
+    /// for disposing the object being returned.
+    /// 
+    /// \return
+    /// Return a new, in-memory geodetic path object. No content is written to disk
+    /// when this method executes.
+    ///
+    virtual MgCoordinateSystemGeodeticPath* NewGeodeticPath()=0;
+
+    ///////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Returns the geodetic path object where the name is equal to the parameter
+    /// pathName. The caller is responsible for disposing the object.
+    /// 
+    /// \param pathName
+    /// The name of the geodetic path to look up in the dictionary. Must not be an empty string.
+    /// 
+    /// \return
+    /// Return the geodetic path if found. Otherwise NULL.
+    ///
+    virtual MgCoordinateSystemGeodeticPath* GetGeodeticPath(CREFSTRING pathName)=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_CoordinateSystemGeodeticPathDictionary;
+};
+/// \}
+
+#endif //_MGCOORDINATESYSTEMGEODETICPATHDICTIONARY_H_


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

Modified: trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticPathElement.h
===================================================================
--- trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticPathElement.h	2010-09-21 08:36:03 UTC (rev 5169)
+++ trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticPathElement.h	2010-09-21 14:52:39 UTC (rev 5170)
@@ -1,55 +1,55 @@
-//
-//  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 _MGCOORDINATESYSTEMGEODETICPATHELEMENT_H_
-#define _MGCOORDINATESYSTEMGEODETICPATHELEMENT_H_
-
-/// \defgroup MgCoordinateSystemGeodeticPathElement MgCoordinateSystemGeodeticPathElement
-/// \ingroup Coordinate_System_classes
-/// \{
-
-////////////////////////////////////////////////////////////////
-/// \brief
-/// A geodetic transformation path element describes a single transformation step within a series
-/// of concatenated steps that eventually form a geodetic (transformation) path.
-///
-class MG_GEOMETRY_API MgCoordinateSystemGeodeticPathElement : public MgGuardDisposable
-{
-    DECLARE_CLASSNAME(MgCoordinateSystemGeodeticPathElement)
-
-PUBLISHED_API:
-
-    virtual STRING GetTransformName() = 0;
-    virtual void SetTransformName(CREFSTRING) = 0;
-
-    virtual bool GetIsInversed() = 0;
-    virtual void SetIsInversed(bool) = 0;
-
-    virtual bool IsValid() = 0;
-    virtual bool IsProtected() = 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_CoordinateSystemGeodeticPathElement;
-};
-
-/// \}
-
+//
+//  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 _MGCOORDINATESYSTEMGEODETICPATHELEMENT_H_
+#define _MGCOORDINATESYSTEMGEODETICPATHELEMENT_H_
+
+/// \defgroup MgCoordinateSystemGeodeticPathElement MgCoordinateSystemGeodeticPathElement
+/// \ingroup Coordinate_System_classes
+/// \{
+
+////////////////////////////////////////////////////////////////
+/// \brief
+/// A geodetic transformation path element describes a single transformation step within a series
+/// of concatenated steps that eventually form a geodetic (transformation) path.
+///
+class MG_GEOMETRY_API MgCoordinateSystemGeodeticPathElement : public MgGuardDisposable
+{
+    DECLARE_CLASSNAME(MgCoordinateSystemGeodeticPathElement)
+
+PUBLISHED_API:
+
+    virtual STRING GetTransformName() = 0;
+    virtual void SetTransformName(CREFSTRING) = 0;
+
+    virtual bool GetIsInversed() = 0;
+    virtual void SetIsInversed(bool) = 0;
+
+    virtual bool IsValid() = 0;
+    virtual bool IsProtected() = 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_CoordinateSystemGeodeticPathElement;
+};
+
+/// \}
+
 #endif
\ No newline at end of file


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

Modified: trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticTransformDef.h
===================================================================
--- trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticTransformDef.h	2010-09-21 08:36:03 UTC (rev 5169)
+++ trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticTransformDef.h	2010-09-21 14:52:39 UTC (rev 5170)
@@ -1,178 +1,178 @@
-//  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 _MGCOORDINATESYSTEMGEODETICTRANSFORMDEF_H_
-#define _MGCOORDINATESYSTEMGEODETICTRANSFORMDEF_H_
-
-/// \defgroup MgCoordinateSystemGeodeticTransformDef MgCoordinateSystemGeodeticTransformDef
-/// \ingroup Coordinate_System_classes
-/// \{
-
-////////////////////////////////////////////////////////////////
-/// \brief
-/// An instance of this class describes a geodetic transformation with all its parameters
-/// as it is defined in the dictionary file. The actual transformation operation
-/// is performed by the MgCoordinateSystemGeodeticTransformation objects
-/// that's being returned by the CreateTransformation method.
-///
-class MG_GEOMETRY_API MgCoordinateSystemGeodeticTransformDef : public MgGuardDisposable
-{
-    DECLARE_CLASSNAME(MgCoordinateSystemGeodeticTransformDef)
-
-PUBLISHED_API:
-
-    //BEGIN: struct cs_GeodeticTransform_
-
-    virtual STRING GetTransformName() = 0;
-    virtual void SetTransformName(CREFSTRING name) = 0;
-
-    virtual STRING GetSourceDatum() = 0;
-    virtual void SetSourceDatum(CREFSTRING datumKey) = 0;
-
-    virtual STRING GetTargetDatum() = 0;
-    virtual void SetTargetDatum(CREFSTRING datumKey) = 0;
-
-    virtual STRING GetGroup() = 0;
-    virtual void SetGroup(CREFSTRING group) = 0;
-
-    virtual STRING GetDescription() = 0;
-    virtual void SetDescription(CREFSTRING description) = 0;
-
-    virtual STRING GetSource() = 0;
-    virtual void SetSource(CREFSTRING source) = 0;
-
-    virtual INT32 GetEpsgCode() = 0;
-    virtual void SetEpsgCode(INT32 epsgCode) = 0;
-
-    virtual INT32 GetEpsgVariation() = 0;
-    virtual void SetEpsgVariation(INT32 epsgVariation) = 0;
-
-    virtual bool GetInverseSupported() = 0;
-    virtual void SetInverseSupported(bool inverseSupported) = 0;
-
-    virtual INT32 GetMaxIterations() = 0;
-    virtual void SetMaxIterations(INT32 maxIterations) = 0;
-	
-    virtual double GetConvergenceValue() = 0;
-    virtual void SetConvergenceValue(double convergenceValue) = 0;
-	
-    virtual double GetErrorValue() = 0;
-    virtual void SetErrorValue(double errorValue) = 0;
-	
-    virtual double GetAccuracy() = 0;
-    virtual void SetAccuracy(double accuracy) = 0;
-    
-    //END: struct cs_GeodeticTransform_
-
-    virtual bool IsProtected() = 0;
-    virtual bool IsValid() = 0;
-    
-    ////////////////////////////////////////////////////////////////
-    /// \brief
-    /// Returns the type of this geodetic transformation (as defined by MgCoordinateSystemGeodeticTransformDefType).
-    /// The type defines the parameters that are being returned by the GetParameters method.
-    virtual INT32 GetTransformDefType() = 0;
-    
-    ////////////////////////////////////////////////////////////////
-    /// \brief
-    /// Returns the extended parameters object valid for this transformation definition. See remarks.
-    /// Depending on the type returned by GetTransformDefType(), this method returns one of the following:
-    /// 
-    /// \li NULL if this is a NULL transformation
-    /// \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
-    ///
-    /// \return
-    /// Returns the extended parameters (or NULL) object for this transformation object. The
-    /// caller is responsible for disposing the object being returned. See remarks.
-    /// 
-    /// \remarks
-    /// If a caller needs to change the parameters of a transformation, the values
-    /// have to be changed on the object being returned here and then written
-    /// back via SetParameters. Setting the values on the parameters object 
-    /// has no affect on this transformation definition.
-    virtual MgCoordinateSystemGeodeticTransformDefParams* GetParameters() = 0;
-    
-    ////////////////////////////////////////////////////////////////
-    /// \brief
-    /// Sets the extended parameters for this transformation.
-    /// 
-    /// \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.
-    /// 
-    /// \remarks
-    /// The instance passed in has to be disposed by the caller, i.e. this transformation
-    /// object will not take ownership of it.
-    virtual void SetParameters(MgCoordinateSystemGeodeticTransformDefParams* parameters) = 0;
-
-    ///////////////////////////////////////////////////////////////////////////
-    /// \brief
-    /// Creates a deep clone of this geodetic transformation. That is, the cloned object
-    /// will also have its extended parameters cloned.
-    ///
-    /// \return
-    /// Returns a new MgCoordinateSystemGeodeticTransformDef object that is an exact clone
-    /// of this MgCoordinateSystemGeodeticTransformDef instance. The caller is responsible for
-    /// disposing the object being returned.
-    ///
-    /// \remarks
-    /// The returned MgCoordinateSystemGeodeticTransformDef instance will have its protected flag
-    /// unset. However, all other properties like name etc will be the same. Any caller will
-    /// have to change such values before trying to write the cloned instance into
-    /// the dictionary file.
-    virtual MgCoordinateSystemGeodeticTransformDef* CreateClone() = 0;
-    
-    ///////////////////////////////////////////////////////////////////////////
-    /// \brief
-    /// Creates a new MgCoordinateSystemGeodeticTransformation object that
-    /// can be used to perform the actual transformation this transformation
-    /// definition describes. This method will fail with an exception,
-    /// if this is the NONE transformation.
-    ///
-    /// \param createInverse
-    /// If true, the MgCoordinateSystemGeodeticTransformation being returned will
-    /// perform the inverse of the transformation as defined in the dictionary file. That is,
-    /// it will convert from the actual target datum to the source datum. Note, that not all
-    /// transformations are invertible. This method will fail with an exception then.
-    /// If false, this method will return a MgCoordinateSystemGeodeticTransformation
-    /// instance that performs the default forward datum transformation.
-    ///
-    /// \return
-    /// Returns the MgCoordinateSystemGeodeticTransformation that performs the actual
-    /// datum transformation as described by this definition instance. The caller
-    /// is reponsible for disposing the object being returned.
-    virtual MgCoordinateSystemGeodeticTransformation* CreateTransformation(bool createInverse) = 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_CoordinateSystemGeodeticTransformDef;
-};
-
-/// \}
-
+//  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 _MGCOORDINATESYSTEMGEODETICTRANSFORMDEF_H_
+#define _MGCOORDINATESYSTEMGEODETICTRANSFORMDEF_H_
+
+/// \defgroup MgCoordinateSystemGeodeticTransformDef MgCoordinateSystemGeodeticTransformDef
+/// \ingroup Coordinate_System_classes
+/// \{
+
+////////////////////////////////////////////////////////////////
+/// \brief
+/// An instance of this class describes a geodetic transformation with all its parameters
+/// as it is defined in the dictionary file. The actual transformation operation
+/// is performed by the MgCoordinateSystemGeodeticTransformation objects
+/// that's being returned by the CreateTransformation method.
+///
+class MG_GEOMETRY_API MgCoordinateSystemGeodeticTransformDef : public MgGuardDisposable
+{
+    DECLARE_CLASSNAME(MgCoordinateSystemGeodeticTransformDef)
+
+PUBLISHED_API:
+
+    //BEGIN: struct cs_GeodeticTransform_
+
+    virtual STRING GetTransformName() = 0;
+    virtual void SetTransformName(CREFSTRING name) = 0;
+
+    virtual STRING GetSourceDatum() = 0;
+    virtual void SetSourceDatum(CREFSTRING datumKey) = 0;
+
+    virtual STRING GetTargetDatum() = 0;
+    virtual void SetTargetDatum(CREFSTRING datumKey) = 0;
+
+    virtual STRING GetGroup() = 0;
+    virtual void SetGroup(CREFSTRING group) = 0;
+
+    virtual STRING GetDescription() = 0;
+    virtual void SetDescription(CREFSTRING description) = 0;
+
+    virtual STRING GetSource() = 0;
+    virtual void SetSource(CREFSTRING source) = 0;
+
+    virtual INT32 GetEpsgCode() = 0;
+    virtual void SetEpsgCode(INT32 epsgCode) = 0;
+
+    virtual INT32 GetEpsgVariation() = 0;
+    virtual void SetEpsgVariation(INT32 epsgVariation) = 0;
+
+    virtual bool GetInverseSupported() = 0;
+    virtual void SetInverseSupported(bool inverseSupported) = 0;
+
+    virtual INT32 GetMaxIterations() = 0;
+    virtual void SetMaxIterations(INT32 maxIterations) = 0;
+	
+    virtual double GetConvergenceValue() = 0;
+    virtual void SetConvergenceValue(double convergenceValue) = 0;
+	
+    virtual double GetErrorValue() = 0;
+    virtual void SetErrorValue(double errorValue) = 0;
+	
+    virtual double GetAccuracy() = 0;
+    virtual void SetAccuracy(double accuracy) = 0;
+    
+    //END: struct cs_GeodeticTransform_
+
+    virtual bool IsProtected() = 0;
+    virtual bool IsValid() = 0;
+    
+    ////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Returns the type of this geodetic transformation (as defined by MgCoordinateSystemGeodeticTransformDefType).
+    /// The type defines the parameters that are being returned by the GetParameters method.
+    virtual INT32 GetTransformDefType() = 0;
+    
+    ////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Returns the extended parameters object valid for this transformation definition. See remarks.
+    /// Depending on the type returned by GetTransformDefType(), this method returns one of the following:
+    /// 
+    /// \li NULL if this is a NULL transformation
+    /// \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
+    ///
+    /// \return
+    /// Returns the extended parameters (or NULL) object for this transformation object. The
+    /// caller is responsible for disposing the object being returned. See remarks.
+    /// 
+    /// \remarks
+    /// If a caller needs to change the parameters of a transformation, the values
+    /// have to be changed on the object being returned here and then written
+    /// back via SetParameters. Setting the values on the parameters object 
+    /// has no affect on this transformation definition.
+    virtual MgCoordinateSystemGeodeticTransformDefParams* GetParameters() = 0;
+    
+    ////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Sets the extended parameters for this transformation.
+    /// 
+    /// \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.
+    /// 
+    /// \remarks
+    /// The instance passed in has to be disposed by the caller, i.e. this transformation
+    /// object will not take ownership of it.
+    virtual void SetParameters(MgCoordinateSystemGeodeticTransformDefParams* parameters) = 0;
+
+    ///////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Creates a deep clone of this geodetic transformation. That is, the cloned object
+    /// will also have its extended parameters cloned.
+    ///
+    /// \return
+    /// Returns a new MgCoordinateSystemGeodeticTransformDef object that is an exact clone
+    /// of this MgCoordinateSystemGeodeticTransformDef instance. The caller is responsible for
+    /// disposing the object being returned.
+    ///
+    /// \remarks
+    /// The returned MgCoordinateSystemGeodeticTransformDef instance will have its protected flag
+    /// unset. However, all other properties like name etc will be the same. Any caller will
+    /// have to change such values before trying to write the cloned instance into
+    /// the dictionary file.
+    virtual MgCoordinateSystemGeodeticTransformDef* CreateClone() = 0;
+    
+    ///////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Creates a new MgCoordinateSystemGeodeticTransformation object that
+    /// can be used to perform the actual transformation this transformation
+    /// definition describes. This method will fail with an exception,
+    /// if this is the NONE transformation.
+    ///
+    /// \param createInverse
+    /// If true, the MgCoordinateSystemGeodeticTransformation being returned will
+    /// perform the inverse of the transformation as defined in the dictionary file. That is,
+    /// it will convert from the actual target datum to the source datum. Note, that not all
+    /// transformations are invertible. This method will fail with an exception then.
+    /// If false, this method will return a MgCoordinateSystemGeodeticTransformation
+    /// instance that performs the default forward datum transformation.
+    ///
+    /// \return
+    /// Returns the MgCoordinateSystemGeodeticTransformation that performs the actual
+    /// datum transformation as described by this definition instance. The caller
+    /// is reponsible for disposing the object being returned.
+    virtual MgCoordinateSystemGeodeticTransformation* CreateTransformation(bool createInverse) = 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_CoordinateSystemGeodeticTransformDef;
+};
+
+/// \}
+
 #endif //_MGCOORDINATESYSTEMGEODETICTRANSFORMDEF_H_
\ No newline at end of file


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

Modified: trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticTransformDefDictionary.h
===================================================================
--- trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticTransformDefDictionary.h	2010-09-21 08:36:03 UTC (rev 5169)
+++ trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticTransformDefDictionary.h	2010-09-21 14:52:39 UTC (rev 5170)
@@ -1,77 +1,77 @@
-//  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 _MGCOORDINATESYSTEMGEODETICTRANSFORMDEFDICTIONARY_H_
-#define _MGCOORDINATESYSTEMGEODETICTRANSFORMDEFDICTIONARY_H_
-
-
-/// \defgroup MgCoordinateSystemGeodeticTransformDefDictionary MgCoordinateSystemGeodeticTransformDefDictionary
-/// \ingroup Coordinate_System_classes
-/// \{
-
-////////////////////////////////////////////////////////////////
-/// \brief
-/// The MgCoordinateSystemGeodeticTransformDefDictionary provides access to all geodetic transformation
-/// definitions as defined in the dictionary file this instance reads from / writes to.
-///
-class MG_GEOMETRY_API MgCoordinateSystemGeodeticTransformDefDictionary : public MgCoordinateSystemDictionaryBase
-{
-    DECLARE_CLASSNAME(MgCoordinateSystemGeodeticTransformDefDictionary)
-
-PUBLISHED_API:
-    
-    ///////////////////////////////////////////////////////////////////////////
-    /// \brief
-    /// Creates a new, empty geodetic transformation definition object that has to be filled by an API client. This
-    /// method does not create a new entry in the dictionary. The caller is responsible
-    /// for disposing the object being returned.
-    /// 
-    /// \return
-    /// Return a new, in-memory geodetic transformation definition object. No content is written to disk
-    /// when this method executes.
-    ///
-    virtual MgCoordinateSystemGeodeticTransformDef* NewGeodeticTransformationDef(INT32 transformationDefType) = 0;
-
-    ///////////////////////////////////////////////////////////////////////////
-    /// \brief
-    /// Returns the geodetic transformation definition object where the name is equal to the parameter
-    /// pathName. The caller is responsible for disposing the object.
-    /// 
-    /// \param transformationName
-    /// The name of the geodetic transformation to look up in the dictionary. Must not be an empty string.
-    /// 
-    /// \return
-    /// Return the geodetic transformation if found. Otherwise NULL.
-    ///
-    virtual MgCoordinateSystemGeodeticTransformDef* GetGeodeticTransformationDef(CREFSTRING transformationName)=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_CoordinateSystemGeodeticTransformDefDictionary;
-};
-
-/// \}
-
+//  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 _MGCOORDINATESYSTEMGEODETICTRANSFORMDEFDICTIONARY_H_
+#define _MGCOORDINATESYSTEMGEODETICTRANSFORMDEFDICTIONARY_H_
+
+
+/// \defgroup MgCoordinateSystemGeodeticTransformDefDictionary MgCoordinateSystemGeodeticTransformDefDictionary
+/// \ingroup Coordinate_System_classes
+/// \{
+
+////////////////////////////////////////////////////////////////
+/// \brief
+/// The MgCoordinateSystemGeodeticTransformDefDictionary provides access to all geodetic transformation
+/// definitions as defined in the dictionary file this instance reads from / writes to.
+///
+class MG_GEOMETRY_API MgCoordinateSystemGeodeticTransformDefDictionary : public MgCoordinateSystemDictionaryBase
+{
+    DECLARE_CLASSNAME(MgCoordinateSystemGeodeticTransformDefDictionary)
+
+PUBLISHED_API:
+    
+    ///////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Creates a new, empty geodetic transformation definition object that has to be filled by an API client. This
+    /// method does not create a new entry in the dictionary. The caller is responsible
+    /// for disposing the object being returned.
+    /// 
+    /// \return
+    /// Return a new, in-memory geodetic transformation definition object. No content is written to disk
+    /// when this method executes.
+    ///
+    virtual MgCoordinateSystemGeodeticTransformDef* NewGeodeticTransformationDef(INT32 transformationDefType) = 0;
+
+    ///////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Returns the geodetic transformation definition object where the name is equal to the parameter
+    /// pathName. The caller is responsible for disposing the object.
+    /// 
+    /// \param transformationName
+    /// The name of the geodetic transformation to look up in the dictionary. Must not be an empty string.
+    /// 
+    /// \return
+    /// Return the geodetic transformation if found. Otherwise NULL.
+    ///
+    virtual MgCoordinateSystemGeodeticTransformDef* GetGeodeticTransformationDef(CREFSTRING transformationName)=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_CoordinateSystemGeodeticTransformDefDictionary;
+};
+
+/// \}
+
 #endif //_MGCOORDINATESYSTEMGEODETICTRANSFORMDEFDICTIONARY_H_
\ No newline at end of file


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

Modified: trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticTransformDefParams.h
===================================================================
--- trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticTransformDefParams.h	2010-09-21 08:36:03 UTC (rev 5169)
+++ trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticTransformDefParams.h	2010-09-21 14:52:39 UTC (rev 5170)
@@ -1,58 +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 _MGCOORDINATESYSTEMGEODETICTRANSFORMDEFPARAMS_H_
-#define _MGCOORDINATESYSTEMGEODETICTRANSFORMDEFPARAMS_H_
-
-/// \defgroup MgCoordinateSystemGeodeticTransformDefParams MgCoordinateSystemGeodeticTransformDefParams
-/// \ingroup Coordinate_System_classes
-/// \{
-
-////////////////////////////////////////////////////////////////
-/// \brief
-/// Common base class for all geodetic transformation parameters.
-///
-class MG_GEOMETRY_API MgCoordinateSystemGeodeticTransformDefParams : public MgGuardDisposable
-{
-    DECLARE_CLASSNAME(MgCoordinateSystemGeodeticTransformDefParams)
-
-PUBLISHED_API:
-
-    ////////////////////////////////////////////////////////////////
-    /// \brief
-    /// Checks, whether this transformation parameter object's content is considered (technically) valid.
-    /// That is, even if this method returns true, the transformation might still fail due to
-    /// other reasons, e.g. a grid file does not exist.
-    ///
-    /// \return
-    /// Returns true, if this parameter object is considered valid. Otherwise false.
-    virtual bool IsValid() = 0;
-    
-    ////////////////////////////////////////////////////////////////
-    /// \brief
-    /// Checks, whether this transformation object is protected, i.e. any attempts to change its
-    /// content will fail. All definitions contained in the dictionaries at compile time
-    /// are protected by default.
-    ///
-    /// \return
-    /// Returns true, if this parameter object is read-only. Otherwise false.
-    virtual bool IsProtected() = 0;
-
-};
-
-/// \}
-
+//  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 _MGCOORDINATESYSTEMGEODETICTRANSFORMDEFPARAMS_H_
+#define _MGCOORDINATESYSTEMGEODETICTRANSFORMDEFPARAMS_H_
+
+/// \defgroup MgCoordinateSystemGeodeticTransformDefParams MgCoordinateSystemGeodeticTransformDefParams
+/// \ingroup Coordinate_System_classes
+/// \{
+
+////////////////////////////////////////////////////////////////
+/// \brief
+/// Common base class for all geodetic transformation parameters.
+///
+class MG_GEOMETRY_API MgCoordinateSystemGeodeticTransformDefParams : public MgGuardDisposable
+{
+    DECLARE_CLASSNAME(MgCoordinateSystemGeodeticTransformDefParams)
+
+PUBLISHED_API:
+
+    ////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Checks, whether this transformation parameter object's content is considered (technically) valid.
+    /// That is, even if this method returns true, the transformation might still fail due to
+    /// other reasons, e.g. a grid file does not exist.
+    ///
+    /// \return
+    /// Returns true, if this parameter object is considered valid. Otherwise false.
+    virtual bool IsValid() = 0;
+    
+    ////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Checks, whether this transformation object is protected, i.e. any attempts to change its
+    /// content will fail. All definitions contained in the dictionaries at compile time
+    /// are protected by default.
+    ///
+    /// \return
+    /// Returns true, if this parameter object is read-only. Otherwise false.
+    virtual bool IsProtected() = 0;
+
+};
+
+/// \}
+
 #endif _MGCOORDINATESYSTEMGEODETICTRANSFORMDEFPARAMS_H_
\ No newline at end of file


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

Modified: trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticTransformDefType.h
===================================================================
--- trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticTransformDefType.h	2010-09-21 08:36:03 UTC (rev 5169)
+++ trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticTransformDefType.h	2010-09-21 14:52:39 UTC (rev 5170)
@@ -1,63 +1,63 @@
-//
-//  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 _MGCOORDINATESYSTEMGEODETICTRANSFORMDEFTYPE_H_
-#define _MGCOORDINATESYSTEMGEODETICTRANSFORMDEFTYPE_H_
-
-/// \defgroup MgCoordinateSystemGeodeticTransformDefType MgCoordinateSystemGeodeticTransformDefType
-/// \ingroup Coordinate_System_classes
-/// \{
-
-///////////////////////////////////////////////////////////////
-/// \brief
-/// This class contains the constants for all current transformation definition types.
-/// 
-class MG_GEOMETRY_API MgCoordinateSystemGeodeticTransformDefType
-{
-
-PUBLISHED_API:
-
-    ///////////////////////////////////////////////////////////////
-    /// \brief
-    /// The transformation definition describes the NONE transformation. That is, that
-    /// transformation doesn't actually perform a datum shift but is basically a NOOP.
-    static const INT32 None = 0;
-    
-    ///////////////////////////////////////////////////////////////
-    /// \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;
-    
-    ///////////////////////////////////////////////////////////////
-    /// \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;
-    
-    ///////////////////////////////////////////////////////////////
-    /// \brief
-    /// The transformation definition describes a transformation that
-    /// uses a multiple regression calculation to perform the actual datum shift.
-    static const INT32 MultipleRegression = 4;
-};
-
-/// \}
-
+//
+//  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 _MGCOORDINATESYSTEMGEODETICTRANSFORMDEFTYPE_H_
+#define _MGCOORDINATESYSTEMGEODETICTRANSFORMDEFTYPE_H_
+
+/// \defgroup MgCoordinateSystemGeodeticTransformDefType MgCoordinateSystemGeodeticTransformDefType
+/// \ingroup Coordinate_System_classes
+/// \{
+
+///////////////////////////////////////////////////////////////
+/// \brief
+/// This class contains the constants for all current transformation definition types.
+/// 
+class MG_GEOMETRY_API MgCoordinateSystemGeodeticTransformDefType
+{
+
+PUBLISHED_API:
+
+    ///////////////////////////////////////////////////////////////
+    /// \brief
+    /// The transformation definition describes the NONE transformation. That is, that
+    /// transformation doesn't actually perform a datum shift but is basically a NOOP.
+    static const INT32 None = 0;
+    
+    ///////////////////////////////////////////////////////////////
+    /// \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;
+    
+    ///////////////////////////////////////////////////////////////
+    /// \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;
+    
+    ///////////////////////////////////////////////////////////////
+    /// \brief
+    /// The transformation definition describes a transformation that
+    /// uses a multiple regression calculation to perform the actual datum shift.
+    static const INT32 MultipleRegression = 4;
+};
+
+/// \}
+
 #endif //_MGCOORDINATESYSTEMGEODETICTRANSFORMDEFTYPE_H_
\ No newline at end of file


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

Modified: trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticTransformGridFile.h
===================================================================
--- trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticTransformGridFile.h	2010-09-21 08:36:03 UTC (rev 5169)
+++ trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticTransformGridFile.h	2010-09-21 14:52:39 UTC (rev 5170)
@@ -1,94 +1,94 @@
-//  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 _MGCOORDINATESYSTEMGEODETICTRANSFORMGRIDFILE_H_
-#define _MGCOORDINATESYSTEMGEODETICTRANSFORMGRIDFILE_H_
-
-/// \defgroup MgCoordinateSystemGeodeticTransformGridFile MgCoordinateSystemGeodeticTransformGridFile
-/// \ingroup Coordinate_System_classes
-/// \{
-
-////////////////////////////////////////////////////////////////
-/// \brief
-/// The MgCoordinateSystemGeodeticInterpolationTransformDefParams parameter class requires
-/// instances of MgCoordinateSystemGeodeticTransformGridFile to be set via its
-/// SetGridFiles method. An MgCoordinateSystemGeodeticTransformGridFile object simply describes
-/// the grid file rather than containing the (grid file) information itself.
-///
-class MG_GEOMETRY_API MgCoordinateSystemGeodeticTransformGridFile : public MgGuardDisposable
-{
-    DECLARE_CLASSNAME(MgCoordinateSystemGeodeticTransformGridFile)
-
-PUBLISHED_API:
-
-    ////////////////////////////////////////////////////////////////
-    /// \brief
-    /// Returns the format of the grid file as a constant value as defined in
-    /// MgCoordinateSystemGeodeticTransformGridFileFormat.
-    ///
-    /// \return
-    /// Returns the file format as an INT32 value.
-    virtual INT32 GetFileFormat() = 0;
-    
-    ////////////////////////////////////////////////////////////////
-    /// \brief
-    /// Sets this file's format. Has to be constant
-    /// as defined by MgCoordinateSystemGeodeticTransformGridFileFormat.
-    virtual void SetFileFormat(INT32 gridFileFormat) = 0;
-
-    ////////////////////////////////////////////////////////////////
-    /// \brief
-    /// When used within a geodetic transformation that defines a source and a target
-    /// datum, this flag instructs the API whether to consider the grid file's content
-    /// to be the inverse of the actual conversion direction.
-    /// 
-    /// \return
-    /// Returns true, if the grid file provides information to transform between
-    /// 2 datums in the inversed direction to what's actually specified in
-    /// the parent transformation definition.
-    virtual bool GetIsInverseDirection() = 0;
-    
-    ////////////////////////////////////////////////////////////////
-    /// \brief
-    /// Sets the flag, whether this grid file carries the information
-    /// to perform a datum transformation in the inversed direction
-    /// to what's specified in the parent transformation definition.
-    virtual void SetIsInverseDirection(bool isInverseDirection) = 0;
-
-    virtual STRING GetFileName() = 0;
-    virtual void SetFileName(CREFSTRING fileName) = 0;
-
-    virtual bool IsProtected() = 0;
-    virtual bool IsValid() = 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_CoordinateSystemGeodeticTransformGridFile;
-
-};
-
-/// \}
-
+//  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 _MGCOORDINATESYSTEMGEODETICTRANSFORMGRIDFILE_H_
+#define _MGCOORDINATESYSTEMGEODETICTRANSFORMGRIDFILE_H_
+
+/// \defgroup MgCoordinateSystemGeodeticTransformGridFile MgCoordinateSystemGeodeticTransformGridFile
+/// \ingroup Coordinate_System_classes
+/// \{
+
+////////////////////////////////////////////////////////////////
+/// \brief
+/// The MgCoordinateSystemGeodeticInterpolationTransformDefParams parameter class requires
+/// instances of MgCoordinateSystemGeodeticTransformGridFile to be set via its
+/// SetGridFiles method. An MgCoordinateSystemGeodeticTransformGridFile object simply describes
+/// the grid file rather than containing the (grid file) information itself.
+///
+class MG_GEOMETRY_API MgCoordinateSystemGeodeticTransformGridFile : public MgGuardDisposable
+{
+    DECLARE_CLASSNAME(MgCoordinateSystemGeodeticTransformGridFile)
+
+PUBLISHED_API:
+
+    ////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Returns the format of the grid file as a constant value as defined in
+    /// MgCoordinateSystemGeodeticTransformGridFileFormat.
+    ///
+    /// \return
+    /// Returns the file format as an INT32 value.
+    virtual INT32 GetFileFormat() = 0;
+    
+    ////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Sets this file's format. Has to be constant
+    /// as defined by MgCoordinateSystemGeodeticTransformGridFileFormat.
+    virtual void SetFileFormat(INT32 gridFileFormat) = 0;
+
+    ////////////////////////////////////////////////////////////////
+    /// \brief
+    /// When used within a geodetic transformation that defines a source and a target
+    /// datum, this flag instructs the API whether to consider the grid file's content
+    /// to be the inverse of the actual conversion direction.
+    /// 
+    /// \return
+    /// Returns true, if the grid file provides information to transform between
+    /// 2 datums in the inversed direction to what's actually specified in
+    /// the parent transformation definition.
+    virtual bool GetIsInverseDirection() = 0;
+    
+    ////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Sets the flag, whether this grid file carries the information
+    /// to perform a datum transformation in the inversed direction
+    /// to what's specified in the parent transformation definition.
+    virtual void SetIsInverseDirection(bool isInverseDirection) = 0;
+
+    virtual STRING GetFileName() = 0;
+    virtual void SetFileName(CREFSTRING fileName) = 0;
+
+    virtual bool IsProtected() = 0;
+    virtual bool IsValid() = 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_CoordinateSystemGeodeticTransformGridFile;
+
+};
+
+/// \}
+
 #endif //_MGCOORDINATESYSTEMGEODETICTRANSFORMGRIDFILE_H_
\ No newline at end of file


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

Modified: trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticTransformGridFileFormat.h
===================================================================
--- trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticTransformGridFileFormat.h	2010-09-21 08:36:03 UTC (rev 5169)
+++ trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemGeodeticTransformGridFileFormat.h	2010-09-21 14:52:39 UTC (rev 5170)
@@ -1,44 +1,44 @@
-//
-//  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 _MGCOORDINATESYSTEMGEODETICTRANSFORMGRIDFILEFORMAT_H_
-#define _MGCOORDINATESYSTEMGEODETICTRANSFORMGRIDFILEFORMAT_H_
-
-/// \defgroup MgCoordinateSystemGeodeticTransformGridFileFormat MgCoordinateSystemGeodeticTransformGridFileFormat
-/// \ingroup Coordinate_System_classes
-/// \{
-
-////////////////////////////////////////////////////////////////
-/// \brief
-/// This class contains the constants for all currently supported grid file formats.
-///
-class MG_GEOMETRY_API MgCoordinateSystemGeodeticTransformGridFileFormat
-{
-PUBLISHED_API:
-
-    static const INT32 None = 0;
-    static const INT32 NTv1 = 1;
-    static const INT32 NTv2 = 2;
-    static const INT32 NADCON = 3;
-    static const INT32 RGF = 4;
-    static const INT32 PAR = 5;
-    static const INT32 ATS77 = 6;
-};
-
-/// \}
-
+//
+//  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 _MGCOORDINATESYSTEMGEODETICTRANSFORMGRIDFILEFORMAT_H_
+#define _MGCOORDINATESYSTEMGEODETICTRANSFORMGRIDFILEFORMAT_H_
+
+/// \defgroup MgCoordinateSystemGeodeticTransformGridFileFormat MgCoordinateSystemGeodeticTransformGridFileFormat
+/// \ingroup Coordinate_System_classes
+/// \{
+
+////////////////////////////////////////////////////////////////
+/// \brief
+/// This class contains the constants for all currently supported grid file formats.
+///
+class MG_GEOMETRY_API MgCoordinateSystemGeodeticTransformGridFileFormat
+{
+PUBLISHED_API:
+
+    static const INT32 None = 0;
+    static const INT32 NTv1 = 1;
+    static const INT32 NTv2 = 2;
+    static const INT32 NADCON = 3;
+    static const INT32 RGF = 4;
+    static const INT32 PAR = 5;
+    static const INT32 ATS77 = 6;
+};
+
+/// \}
+
 #endif //_MGCOORDINATESYSTEMGEODETICTRANSFORMGRIDFILEFORMAT_H_
\ No newline at end of file


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



More information about the mapguide-commits mailing list