[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