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

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Fri Dec 7 08:47:01 PST 2012


Author: jng
Date: 2012-12-07 08:47:01 -0800 (Fri, 07 Dec 2012)
New Revision: 7246

Modified:
   trunk/MgDev/Common/Geometry/ArcSegment.h
   trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystem.h
   trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemCatalog.h
   trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemCategory.h
   trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemCategoryDictionary.h
   trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemCodeFormat.h
   trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemDatum.h
   trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemDatumDictionary.h
   trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemDictionary.h
   trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemDictionaryBase.h
   trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemDictionaryUtility.h
   trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemEllipsoid.h
   trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemEllipsoidDictionary.h
   trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemErrorCode.h
Log:
#2097: More API commentary for MgGeometry

Modified: trunk/MgDev/Common/Geometry/ArcSegment.h
===================================================================
--- trunk/MgDev/Common/Geometry/ArcSegment.h	2012-12-07 16:27:01 UTC (rev 7245)
+++ trunk/MgDev/Common/Geometry/ArcSegment.h	2012-12-07 16:47:01 UTC (rev 7246)
@@ -46,6 +46,10 @@
     DECLARE_CLASSNAME(MgArcSegment)
 
 PUBLISHED_API:
+    ///////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the component type of this arc segment
+    ///
     /// <!-- Syntax in .Net, Java, and PHP -->
     /// \htmlinclude DotNetSyntaxTop.html
     /// virtual int GetComponentType();
@@ -79,6 +83,10 @@
     ///
     virtual MgCoordinate* GetControlCoordinate(); /// __get
 
+    ///////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the start coordinate of this arc segment
+    ///
     /// <!-- Syntax in .Net, Java, and PHP -->
     /// \htmlinclude DotNetSyntaxTop.html
     /// virtual MgCoordinate GetStartCoordinate();
@@ -92,6 +100,10 @@
     ///
     virtual MgCoordinate* GetStartCoordinate(); /// __get, __inherited
 
+    ///////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the end coordinate of this arc segment
+    ///
     /// <!-- Syntax in .Net, Java, and PHP -->
     /// \htmlinclude DotNetSyntaxTop.html
     /// virtual MgCoordinate GetEndCoordinate();
@@ -105,6 +117,10 @@
     ///
     virtual MgCoordinate* GetEndCoordinate(); /// __get, __inherited
 
+    ///////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the dimension of this arc segment
+    ///
     /// <!-- Syntax in .Net, Java, and PHP -->
     /// \htmlinclude DotNetSyntaxTop.html
     /// virtual int GetDimension();
@@ -118,6 +134,10 @@
     ///
     virtual INT32 GetDimension();  /// __get, __inherited
 
+    ///////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets whether this arc segment is empty
+    ///
     /// <!-- Syntax in .Net, Java, and PHP -->
     /// \htmlinclude DotNetSyntaxTop.html
     /// virtual bool IsEmpty();
@@ -131,6 +151,10 @@
     ///
     virtual bool IsEmpty();
 
+    ///////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets whether this arc segment is closed
+    ///
     /// <!-- Syntax in .Net, Java, and PHP -->
     /// \htmlinclude DotNetSyntaxTop.html
     /// virtual bool IsClosed();

Modified: trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystem.h
===================================================================
--- trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystem.h	2012-12-07 16:27:01 UTC (rev 7245)
+++ trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystem.h	2012-12-07 16:47:01 UTC (rev 7246)
@@ -32,26 +32,277 @@
     DECLARE_CLASSNAME(MgCoordinateSystem)
 
 PUBLISHED_API:
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the type of the coordinate system: arbitrary, geographic, or projected. 
+    ///
+    /// \return
+    /// One of the values defined in MgCoordinateSystemType. 
+    ///
     virtual INT32 GetType()=0;  /// __get
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Converts the specified MgCoordinate in lon/lat units to coordinate system units
+    ///
+    /// \param lonLat (MgCoordinate)
+    /// The MgCoordinate in lon/lat units
+    ///
+    /// \return
+    /// The converted MgCoordinate in coordinate system units
+    ///
     virtual MgCoordinate* ConvertFromLonLat(MgCoordinate* lonLat)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Converts the specified MgCoordinate in coordinate system units to lon/lat units
+    ///
+    /// \param coordinate (MgCoordinate)
+    /// The MgCoordinate in coordinate system units
+    ///
+    /// \return
+    /// The converted MgCoordinate in lon/lat units
+    ///
     virtual MgCoordinate* ConvertToLonLat(MgCoordinate* coordinate)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Converts the given value in coordinate system units to meters
+    ///
+    /// \param units (double)
+    /// The value in coordinate system units
+    ///
+    /// \return
+    /// The converted value in meters
+    ///
     virtual double ConvertCoordinateSystemUnitsToMeters(double units)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Converts the given value in meters to coordinate system units
+    ///
+    /// \param meters (double)
+    /// The value in meters
+    ///
+    /// \return
+    /// The converted value in coordinate system unit
+    ///
     virtual double ConvertMetersToCoordinateSystemUnits(double meters)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Measures the euclidean distance between two coordinates in coordinate system units. 
+    ///
+    /// \param coord1 (MgCoordinate)
+    /// The first coordinate
+    /// \param coord2 (MgCoordinate)
+    /// The second coordinate
+    ///
+    /// \return
+    /// The euclidean distance from coord1 to coord2 in coordinate system units.
+    ///
     virtual double MeasureEuclideanDistance(MgCoordinate* coord1, MgCoordinate* coord2)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Measures the euclidean distance between (x1, y1) and (x2, y2) in coordinate system units. 
+    ///
+    /// \param x1
+    /// The first X coordinate
+    /// \param y1
+    /// The first Y coordinate
+    /// \param x2
+    /// The second X coordinate
+    /// \param y2
+    /// The second Y coordinate
+    ///
+    /// \return
+    /// The euclidean distance from (x1, y1) to (x2, y2) in coordinate system units.
+    ///
     virtual double MeasureEuclideanDistance(double x1, double y1, double x2, double y2)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Measures the great circle distance between two coordinates in coordinate system units
+    ///
+    /// \param coord1 (MgCoordinate)
+    /// The first coordinate
+    /// \param coord2 (MgCoordinate)
+    /// The second coordinate
+    ///
+    /// \return
+    /// The great circle distance from coord1 to coord2 in coordinate system units
+    ///
     virtual double MeasureGreatCircleDistance(MgCoordinate* coord1, MgCoordinate* coord2)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Measures the distance between two coordinates (x1, y1) and (x2, y2) in coordinate system units
+    ///
+    /// \param x1
+    /// The first X coordinate
+    /// \param y1
+    /// The first Y coordinate
+    /// \param x2
+    /// The second X coordinate
+    /// \param y2
+    /// The second Y coordinate
+    ///
+    /// \return
+    /// The great circle distance from (x1, y1) to (x2, y2) in coordinate system units
+    ///
     virtual double MeasureGreatCircleDistance(double x1, double y1, double x2, double y2)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the angle with respect to North of a vector formed by two coordinates
+    ///
+    /// \param coord1 (MgCoordinate)
+    /// The first coordinate
+    /// \param coord2 (MgCoordinate)
+    /// The second coordinate
+    ///
+    /// \return
+    /// The azimuth (Angle with respect to North) of the vector formed by coord1 and coord2
+    ///
+    /// \remarks
+    /// This method is specific to a geographic coordinate system. The angle is positive moving clockwise from North and negative moving counterclockwise from North. If the first coordinate is above and to the left of the second, or below and to the left, the movement is clockwise. If the first coordinate is above and to the right, or below and to the right, the movement is counterclockwise
+    ///
     virtual double GetAzimuth(MgCoordinate* coord1, MgCoordinate* coord2)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the angle with respect to North of a vector formed by two coordinate
+    ///
+    /// \param x1
+    /// The first X coordinate
+    /// \param y1
+    /// The first Y coordinate
+    /// \param x2
+    /// The second X coordinate
+    /// \param y2
+    /// The second Y coordinate
+    ///
+    /// \return
+    /// The azimuth (Angle with respect to the North) of the vector formed by (x1, y1) and (x2, y2)
+    ///
+    /// \remarks
+    /// This method is specific to a geographic coordinate system. The angle is positive moving clockwise from North and negative moving counterclockwise from North. If the first coordinate is above and to the left of the second, or below and to the left, the movement is clockwise. If the first coordinate is above and to the right, or below and to the right, the movement is counterclockwise
+    ///
     virtual double GetAzimuth(double x1, double y1, double x2, double y2)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Computes a coordinate a given distance along a vector that is defined by a starting coordinate and an azimuth (Angle with respect to North). 
+    ///
+    /// \param coord (MgCoordinate)
+    /// An MgCoordinate object in coordinate system
+    /// units that represents the start of the
+    /// vector.
+    /// \param azimuth (double)
+    /// An azimuth (Angle with respect to the North)
+    /// that defines the direction of the vector.
+    /// \param distance (double)
+    /// The distance along the vector to the desired
+    /// coordinate in meters.
+    ///
+    /// \return
+    /// An MgCoordinate that lies the given distance along the vector.
+    ///
+    /// \remarks
+    /// This method is specific to a geographic coordinate system. The values contained in the given and returned coordinates are in units native to the coordinate system as specified in the <name> parameter in the UNIT[] clause of the coordinate system WKT. The azimuth is always in decimal degrees, and the distance is always in meters
+    ///
     virtual MgCoordinate* GetCoordinate(MgCoordinate* coord, double azimuth, double distance)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Computes a coordinate a given distance along a vector that is defined by a starting (x, y) coordinate and an azimuth (Angle with respect to North). 
+    ///
+    /// \param xStart (double)
+    /// The x value in coordinate system units of the
+    /// starting coordinate.
+    /// \param yStart (double)
+    /// The y value in coordinate system units of the
+    /// starting coordinate.
+    /// \param azimuth (double)
+    /// An azimuth (Angle with respect to the North)
+    /// that defines the direction of the vector.
+    /// \param distance (double)
+    /// The distance along the vector to the desired
+    /// coordinate in meters.
+    ///
+    /// \return
+    /// An MgCoordinate that lies the given distance along the vector.
+    ///
+    /// \remarks
+    /// This method is specific to a geographic coordinate system. The values contained in the given and returned coordinates are in units native to the coordinate system as specified in the <name> parameter in the UNIT[] clause of the coordinate system WKT. The azimuth is always in decimal degrees, and the distance is always in meters
+    ///
     virtual MgCoordinate* GetCoordinate(double xStart, double yStart, double azimuth, double distance)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the OGC WKT string representation of the coordinate system. 
+    ///
+    /// \return
+    /// The OGC WKT string. 
+    ///
     virtual STRING ToString()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the coordinate system units
+    ///
+    /// \return
+    /// The coordinate system units string
+    ///
     virtual STRING GetUnits()=0;  /// __get
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the factor used to convert coordinate system units to meters
+    ///
+    /// \return
+    /// The factor used to convert coordinate system units to meters 
+    ///
     virtual double GetUnitScale()=0;  /// __get
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the minimum X value. 
+    ///
+    /// \return
+    /// The coordinate system minimum X value
+    ///
     virtual double GetMinX()=0;  /// __get
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the minimum Y value. 
+    ///
+    /// \return
+    /// The coordinate system minimum Y value
+    ///
     virtual double GetMinY()=0;  /// __get
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the maximum X value
+    ///
+    /// \return
+    /// The coordinate system maximum X value
+    ///
     virtual double GetMaxX()=0;  /// __get
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the maximum Y value
+    ///
+    /// \return
+    /// The coordinate system maximum Y value
+    ///
     virtual double GetMaxY()=0;  /// __get
+
     ///////////////////////////////////////////////////////////////////////////////////////////////
     /// \brief
     /// Returns the CS-Map coordinate system code
@@ -63,25 +314,135 @@
     /// This method used to be called GetCode prior to MapGuide Open Source 2.2 / MapGuide Enterprise 2011 / AutoCAD Map3D 2011
     ///
     virtual STRING GetCsCode()=0;  /// __get
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Returns the description of this coordinate system
+    ///
+    /// \return
+    /// The description of this coordinate system
+    ///
     virtual STRING GetDescription()=0;  /// __get
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Returns the projection of this coordinate system
+    ///
+    /// \return
+    /// The projection of this coordinate system
+    ///
     virtual STRING GetProjection()=0;  /// __get
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Returns the projection description of this coordinate system
+    ///
+    /// \return
+    /// The projection description of this coordinate system
+    ///
     virtual STRING GetProjectionDescription()=0;  /// __get
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Returns the datum of this coordinate system
+    ///
+    /// \remarks
+    /// The returned value comes from the first parameter (<name>) of the DATUM[] clause in the coordinate system WKT. See \ref WKTofSRS .
+    ///
+    /// \return
+    /// The coordinate system datum string
+    ///
     virtual STRING GetDatum()=0;  /// __get
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Returns the datum description of this coordinate system
+    ///
+    /// \return
+    /// The datum description string of this coordinate system
+    ///
     virtual STRING GetDatumDescription()=0;  /// __get
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Returns the ellipsoid of this coordinate system
+    ///
+    /// \return
+    /// The ellipsoid string of this coordinate system
+    ///
     virtual STRING GetEllipsoid()=0;  /// __get
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Returns the ellipsoid description of this coordinate system
+    ///
+    /// \return
+    /// The ellipsoid description string of this coordinate system
+    ///
     virtual STRING GetEllipsoidDescription()=0;  /// __get
 
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the EPSG code of this coordinate system
+    ///
+    /// \return
+    /// The EPSG code of this coordinate system
+    ///
     /// \since 2.3
+    ///
     virtual INT32 GetEpsgCode (void)=0;  /// __get
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the SRID code of this coordinate system
+    ///
+    /// \return
+    /// The SRID code of this coordinate system
+    ///
     /// \since 2.3
+    ///
     virtual INT32 GetSridCode (void)=0;  /// __get
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the EPSG quadrant of this coordinate system
+    ///
+    /// \return
+    /// The EPSG quadrant of this coordinate system
+    ///
     /// \since 2.3
+    ///
     virtual INT16 GetEpsgQuadrant (void)=0;   /// __get
 
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the measure object of this coordinate system
+    ///
+    /// \return
+    /// The MgCoordinateSystemMeasure object of this coordinate system
+    ///
     /// \since 2.0
+    ///
     virtual MgCoordinateSystemMeasure* GetMeasure()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the categories of this coordinate system
+    ///
+    /// \return
+    /// The MgStringCollection containing the cateogories for this coordinate system
+    ///
     virtual MgStringCollection* GetCategories()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the associated coordinate system catalog for this coordinate system
+    ///
+    /// \return
+    /// The associated MgCoordinateSystemCatalog object
+    ///
     virtual MgCoordinateSystemCatalog* GetCatalog()=0;
+
     ///////////////////////////////////////////////////////////////////////////////////////////////
     /// \brief
     /// Sets the CS-Map coordinate system code for this coordinate system
@@ -93,6 +454,7 @@
     /// This method used to be called SetCode prior to MapGuide Open Source 2.2 / MapGuide Enterprise 2011 / AutoCAD Map3D 2011
     ///
     virtual void SetCsCode(CREFSTRING sCode)=0;
+
     ///////////////////////////////////////////////////////////////////////////////////////////////
     /// \brief
     /// Checks whether the given CS-Map coordinate system code is a legal one
@@ -104,47 +466,357 @@
     /// This method used to be called IsLegalCode prior to MapGuide Open Source 2.2 / MapGuide Enterprise 2011 / AutoCAD Map3D 2011
     ///
     virtual bool IsLegalCsCode(CREFSTRING sCode)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Checks whether this coordinate system is a valid one
+    ///
+    /// \return
+    /// true if this coordinate system is a valid one. false otherwise
+    ///
     virtual bool IsValid()=0;
     virtual bool IsUsable(MgCoordinateSystemCatalog *pCatalog)=0;
     virtual bool IsSameAs(MgGuardDisposable *pDef)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Sets the description of this coordinate system
+    ///
+    /// \param sDesc (String/string)
+    /// The description of this coordinate system
+    ///
     virtual void SetDescription(CREFSTRING sDesc)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Checks whether this description is legal for this coordinate system
+    ///
+    /// \param sDesc (String/string)
+    /// The description to check
+    ///
+    /// \return
+    /// true if the given description is a legal one, false otherwise
+    ///
     virtual bool IsLegalDescription(CREFSTRING sDesc)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the group of this coordinate system
+    ///
+    /// \return
+    /// The group of this coordinate system
+    ///
     virtual STRING GetGroup()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Sets the group of this coordinate system
+    ///
+    /// \param sGroup (String/string)
+    /// The group
+    ///
     virtual void SetGroup(CREFSTRING sGroup)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Checks whether this group is legal for this coordinate system
+    ///
+    /// \param sGroup (String/string)
+    /// The group to check
+    ///
+    /// \return
+    /// true if the given group is a legal one, false otherwise
+    ///
     virtual bool IsLegalGroup(CREFSTRING sGroup)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the source of this coordinate system
+    ///
+    /// \return
+    /// The source of this coordinate system
+    ///
     virtual STRING GetSource()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Sets the source of this coordinate system
+    ///
+    /// \param sSource (String/string)
+    /// The source
+    ///
     virtual void SetSource(CREFSTRING sSource)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Checks whether this source is legal for this coordinate system
+    ///
+    /// \param sSource (String/string)
+    /// The source to check
+    ///
+    /// \return
+    /// true if the given source is a legal one, false otherwise
+    ///
     virtual bool IsLegalSource(CREFSTRING sSource)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Checks whether this coordinate system is protected
+    ///
+    /// \return
+    /// true if this coordinate system is protected. false otherwise
+    ///
     virtual bool IsProtected()=0;
     virtual INT16 GetAge()=0;
     virtual void SetProtectMode(bool bIsProtected)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Checks whether this coordinate system is encrypted
+    ///
+    /// \return
+    /// true if this coordinate system is encrypted. false otherwise
+    ///
     virtual bool IsEncrypted()=0;
     virtual void SetEncryptMode(bool bIsEncrypted)=0;
     virtual MgCoordinateSystemEnumInteger32* GetErrors()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the location of this coordinate system
+    ///
+    /// \return
+    /// The location of this coordinate system
+    ///
     virtual STRING GetLocation()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Sets the location of this coordinate system
+    ///
+    /// \param sLoc (String/string)
+    /// The location
+    ///
     virtual void SetLocation(CREFSTRING sLoc)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Checks whether this location is legal for this coordinate system
+    ///
+    /// \param sSource (String/string)
+    /// The location to check
+    ///
+    /// \return
+    /// true if the given location is a legal one, false otherwise
+    ///
     virtual bool IsLegalLocation(CREFSTRING sLoc)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the country or state of this coordinate system
+    ///
+    /// \return
+    /// The country or state of this coordinate system
+    ///
     virtual STRING GetCountryOrState()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Sets the country or state of this coordinate system
+    ///
+    /// \param sCountryOrState (String/string)
+    /// The country or state
+    ///
     virtual void SetCountryOrState(CREFSTRING sCountryOrState)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Checks whether this country or state is legal for this coordinate system
+    ///
+    /// \param sCountryOrState (String/string)
+    /// The country or state to check
+    ///
+    /// \return
+    /// true if the given country or state is a legal one, false otherwise
+    ///
     virtual bool IsLegalCountryOrState(CREFSTRING sCountryOrState)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets whether this coordinate system is geodetic
+    ///
+    /// \return
+    /// true if this coordinate system is geodetic. false otherwise
+    ///
     virtual bool IsGeodetic()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the projection code of this coordinate system
+    ///
+    /// \return
+    /// The projection code of this coordinate system
+    ///
     virtual INT32 GetProjectionCode()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Sets the projection code for this coordinate system
+    ///
+    /// \param prjType (int)
+    /// The projection code
+    ///
     virtual void SetProjectionCode(INT32  prjType)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the unit code of this coordinate system
+    ///
+    /// \return
+    /// The unit code of this coordinate system
+    ///
     virtual INT32 GetUnitCode()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Sets the unit code for this coordinate system
+    ///
+    /// \param prjType (int)
+    /// The unit code
+    ///
     virtual void SetUnitCode(INT32 unit)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the projection parameter count of this coordinate system
+    ///
+    /// \return
+    /// The projection parameter count of this coordinate system
+    ///
     virtual INT32 GetProjectionParameterCount()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the projection parameter count of this coordinate system at the specified index
+    ///
+    /// \param nIndex (int)
+    /// The index at which to retrieve the projection parameter
+    ///
+    /// \return
+    /// The projection parameter at the given index
+    ///
     virtual double GetProjectionParameter(INT32 nIndex)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Sets the projection parameter of this coordinate system at the specified index
+    ///
+    /// \param nIndex (int)
+    /// The index at which to set the projection parameter
+    /// \param dValue (double)
+    /// The projection parameter value
+    ///
     virtual void SetProjectionParameter(INT32 nIndex, double dValue)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the origin longitude of this coordinate system
+    ///
+    /// \return
+    /// The origin longitude of this coordinate system
+    ///
     virtual double GetOriginLongitude()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Sets the origin longitude for this coordinate system
+    ///
+    /// \param dOrgLng (double)
+    /// The origin longitude
+    ///
     virtual void SetOriginLongitude(double dOrgLng)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the origin latitude of this coordinate system
+    ///
+    /// \return
+    /// The origin latitude of this coordinate system
+    ///
     virtual double GetOriginLatitude()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Sets the origin latitude for this coordinate system
+    ///
+    /// \param dOrgLat (double)
+    /// The origin latitude
+    ///
     virtual void SetOriginLatitude(double dOrgLat)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the X offset of this coordinate system
+    ///
+    /// \return
+    /// The X offset of this coordinate system
+    ///
     virtual double GetOffsetX()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the Y offset of this coordinate system
+    ///
+    /// \return
+    /// The Y offset of this coordinate system
+    ///
     virtual double GetOffsetY()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Sets the X and Y offsets for this coordinate system
+    ///
+    /// \param dXOffset (double)
+    /// The X offset
+    /// \param dYOffset (double)
+    /// The Y offset
+    ///
     virtual void SetOffsets(double dXOffset, double dYOffset)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the scale reduction of this coordinate system
+    ///
+    /// \return
+    /// The scale reduction of this coordinate system
+    ///
     virtual double GetScaleReduction()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Sets the scale reduction for this coordinate system
+    ///
+    /// \param dSclRed (double)
+    /// The scale reduction
+    ///
     virtual void SetScaleReduction(double dSclRed)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the map scale for this coordinate system
+    ///
+    /// \return
+    /// The map scale for this coordinate system
+    ///
     virtual double GetMapScale()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Sets the map scale for this coordinate system
+    ///
+    /// \param dMapScale (double)
+    /// The map scale
+    ///
     virtual void SetMapScale(double dMapScale)=0;
     virtual double GetZeroX()=0;
     virtual double GetZeroY()=0;
@@ -155,7 +827,7 @@
     /// \brief
     /// Returns this system's minimum longitude value in degrees. If not set in the dictionary, 
     /// the value returned here has been calculated by the underlying coordinate system
-    /// transformation engine. 
+    /// transformation engine.
     /// \return
     /// Returns this system's minimum longitude value in degrees. Only returns 0 (if it's not the
     /// actual value) if explicitely set via SetLonLatBounds or CancelLonLatBounds.
@@ -197,10 +869,12 @@
     /// This method must only be called on systems that are not protected.
     /// When setting these values, the coordinate system API will perform the following actions:
     ///
-    /// \li (Re-)enable valid range checking: When converting coordinates, the values are checked to fall
-    ///     in the valid range as specified here
-    /// \li Save the values for later storage: When eventually writing this coordinate system to the
-    ///     dictionary, the values will be written, too.
+    /// <ol>
+    /// <li>(Re-)enable valid range checking: When converting coordinates, the values are checked to fall
+    ///     in the valid range as specified here</li>
+    /// <li>Save the values for later storage: When eventually writing this coordinate system to the
+    ///     dictionary, the values will be written, too.</li>
+    /// </ol>
     ///
     /// \param dLonMin
     /// The minimum longitude value
@@ -226,29 +900,211 @@
     /// Nothing
     virtual void CancelLonLatBounds()=0;
     
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Allows to set the min/max X and Y values in the coordinate system's units that this coordinate system is valid in.
+    /// This method must only be called on systems that are not protected.
+    /// When setting these values, the coordinate system API will perform the following actions:
+    ///
+    /// <ol>
+    /// <li>(Re-)enable valid range checking: When converting coordinates, the values are checked to fall
+    ///     in the valid range as specified here</li>
+    /// <li>Save the values for later storage: When eventually writing this coordinate system to the
+    ///     dictionary, the values will be written, too.</li>
+    /// </ol>
+    ///
+    /// \param dXMin
+    /// The minimum X value
+    /// \param dYMin
+    /// The minimum Y value
+    /// \param dXMax
+    /// The maximum X value
+    /// \param dYMax
+    /// The maximum Y value
+    ///    
+    /// \return
+    /// Nothing
     virtual void SetXYBounds(double dXMin, double dYMin, double dXMax, double dYMax)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Cancels only the range checking for coordinate transformations, if it has been enabled via
+    /// SetXYBounds
+    ///
     virtual void CancelXYBounds()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the quadrant for this coordinate system
+    ///
+    /// \return
+    /// The quadrant for this coordinate system
+    ///
     virtual INT16 GetQuadrant()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Sets the quadrant for this coordinate system
+    ///
+    /// \param sQuad (short/int)
+    /// The quadrant
+    ///
     virtual void SetQuadrant(INT16 sQuad)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the datum definition for this coordinate system
+    ///
+    /// \return
+    /// The datum definition for this coordinate system
+    ///
     virtual MgCoordinateSystemDatum* GetDatumDefinition()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Sets the datum for this coordinate system
+    ///
+    /// \param pDatum (MgCoordinateSystemDatum)
+    /// The datum definition
+    ///
     virtual void SetDatumDefinition(MgCoordinateSystemDatum *pDatum)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the ellipsoid for this coordinate system
+    ///
+    /// \return
+    /// The ellipsoid for this coordinate system
+    ///
     virtual MgCoordinateSystemEllipsoid* GetEllipsoidDefinition()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Sets the ellipsoid definition for this coordinate system
+    ///
+    /// \param pDatum (MgCoordinateSystemEllipsoid)
+    /// The ellipsoid definition
+    ///
     virtual void SetEllipsoidDefinition(MgCoordinateSystemEllipsoid *pEllipsoid)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the given X and Y coordinates are valid within this coordinate system
+    ///
+    /// \param dX (double)
+    /// The X coordinate
+    /// \param dY (double)
+    /// The Y coordinate
+    ///
+    /// \return
+    /// true if the coordinates are valid. false otherwise
+    ///
     virtual bool IsValidXY(double dX, double dY)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the given longitude and latitude coordinates are valid within this coordinate system
+    ///
+    /// \param dLongitude (double)
+    /// The longitude coordinate
+    /// \param dLatitude (double)
+    /// The latitude coordinate
+    ///
+    /// \return
+    /// true if the coordinates are valid. false otherwise
+    ///
     virtual bool IsValidLonLat(double dLongitude, double dLatitude)=0;
 
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Converts the specified MgCoordinate in lon/lat units to coordinate system units
+    ///
+    /// \param lonLatToCoordinate (MgCoordinate)
+    /// The MgCoordinate in lon/lat units that will be converted
+    ///
     virtual void ConvertCoordinateFromLonLat(MgCoordinate* lonLatToCoordinate)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Converts the specified MgCoordinate in coordinate system units to lon/lat units
+    ///
+    /// \param lonLatToCoordinate (MgCoordinate)
+    /// The MgCoordinate in coordinate system units that will be converted
+    ///
     virtual void ConvertCoordinateToLonLat(MgCoordinate* coordinateToLonLat)=0;
 
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Converts the specified coordinates in coordinate system units to lon/lat units
+    ///
+    /// \param dX (double)
+    /// The X coordinate
+    /// \param dY (double)
+    /// The Y coordinate
+    ///
+    /// \return
+    /// The MgCoordinate in lon/lat units
+    ///
     virtual MgCoordinate* ConvertToLonLat(double dX, double dY)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Converts the specified coordinates in coordinate system units to lon/lat units
+    ///
+    /// \param dX (double)
+    /// The X coordinate
+    /// \param dY (double)
+    /// The Y coordinate
+    /// \param dZ (double)
+    /// The Z coordinate
+    ///
+    /// \return
+    /// The MgCoordinate in lon/lat units
+    ///
     virtual MgCoordinate* ConvertToLonLat(double dX, double dY, double dZ)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Converts the specified coordinates in lon/lat units to coordinate system units
+    ///
+    /// \param dLongitude (double)
+    /// The longitude coordinate
+    /// \param dLatitude (double)
+    /// The latitude coordinate
+    ///
+    /// \return
+    /// The MgCoordinate in coordinate system units
+    ///
     virtual MgCoordinate* ConvertFromLonLat(double dLongitude, double dLatitude)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Converts the specified coordinates in lon/lat units to coordinate system units
+    ///
+    /// \param dLongitude (double)
+    /// The longitude coordinate
+    /// \param dLatitude (double)
+    /// The latitude coordinate
+    /// \param dZ (double)
+    /// The Z coordinate
+    ///
+    /// \return
+    /// The MgCoordinate in coordinate system units
+    ///
     virtual MgCoordinate* ConvertFromLonLat(double dLongitude, double dLatitude, double dZ)=0;
 
     virtual double GetConvergence(double dLongitude, double dLatitude)=0;
     virtual double GetScale(double dLongitude, double dLatitude)=0;
     virtual double GetScaleH(double dLongitude, double dLatitude)=0;
     virtual double GetScaleK(double dLongitude, double dLatitude)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets a cloned copy of this coordinate system
+    ///
+    /// \return
+    /// The cloned copy of this coordinate system
+    ///
     virtual MgCoordinateSystem* CreateClone()=0;
 
 INTERNAL_API:

Modified: trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemCatalog.h
===================================================================
--- trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemCatalog.h	2012-12-07 16:27:01 UTC (rev 7245)
+++ trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemCatalog.h	2012-12-07 16:47:01 UTC (rev 7246)
@@ -38,14 +38,48 @@
     lsLoadFailed
 };
 
+///////////////////////////////////////////////////////////////////////////////////////////////
+/// \brief
+/// Defines and manages the physical location of coordinate system data files
+///
 class MgCoordinateSystemCatalog : public MgGuardDisposable
 {
     DECLARE_CLASSNAME(MgCoordinateSystemCatalog)
 
 PUBLISHED_API:
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Sets the default dictionary path and file names
+    ///
     virtual void SetDefaultDictionaryDirAndFileNames()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the default dictionary path
+    ///
+    /// \return
+    /// The default dictionary path
+    ///
     virtual STRING GetDefaultDictionaryDir()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Sets the path where the dictionary files are located
+    ///
+    /// \remarks
+    /// If set to a valid path, this path is used to read dictionary files instead of the default dictionary path
+    /// and the one specified by the MENTOR_DICTIONARY_PATH environment variable
+    ///
     virtual void SetDictionaryDir(CREFSTRING sDirPath)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the current dictionary path
+    ///
+    /// \return
+    /// The current dictionary path
+    ///
     virtual STRING GetDictionaryDir()=0;
 
     ///////////////////////////////////////////////////////////////////////////
@@ -81,20 +115,135 @@
     ///
     virtual STRING GetUserDictionaryDir()=0;
 
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Sets the protection mode
+    ///
+    /// \param nMode (short/int)
+    /// The protection mode
+    ///
     virtual void SetProtectionMode(INT16 nMode)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the protection mode of this catalog
+    ///
+    /// \return
+    /// The protection mode of this catalog
+    ///
     virtual INT16 GetProtectionMode()=0;
 
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the coordinate system category dictionary
+    ///
+    /// \return
+    /// The coordinate system category dictionary
+    ///
     virtual MgCoordinateSystemCategoryDictionary* GetCategoryDictionary()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the coordinate system dictionary
+    ///
+    /// \return
+    /// The coordinate system dictionary
+    ///
     virtual MgCoordinateSystemDictionary* GetCoordinateSystemDictionary()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the coordinate system datum dictionary
+    ///
+    /// \return
+    /// The coordinate system datum dictionary
+    ///
     virtual MgCoordinateSystemDatumDictionary* GetDatumDictionary()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the coordinate system ellipsoid dictionary
+    ///
+    /// \return
+    /// The coordinate system ellipsoid dictionary
+    ///
     virtual MgCoordinateSystemEllipsoidDictionary* GetEllipsoidDictionary()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the coordinate system geodetic path dictionary
+    ///
+    /// \return
+    /// The coordinate system geodetic path dictionary
+    ///
     virtual MgCoordinateSystemGeodeticPathDictionary* GetGeodeticPathDictionary()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the coordinate system geodetic transform definition dictionary
+    ///
+    /// \return
+    /// The coordinate system geodetic transform definition dictionary
+    ///
     virtual MgCoordinateSystemGeodeticTransformDefDictionary* GetGeodeticTransformDefDictionary()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the geodetic transformations for the source and target coordinate system datums
+    ///
+    /// \param pSource (MgCoordinateSystemDatum)
+    /// The source coordinate system datum
+    /// \param pTarget (MgCoordinateSystemDatum)
+    /// The target coordinate system datum
+    ///
+    /// \return
+    /// The collection of MgCoordinateSystemGeodeticTransformation objects
+    ///
     virtual MgDisposableCollection* GetGeodeticTransformations(MgCoordinateSystemDatum* pSource, MgCoordinateSystemDatum *pTarget)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the coordinate system math comparator
+    ///
+    /// \return
+    /// The coordinate system math comparator
+    ///
     virtual MgCoordinateSystemMathComparator* GetMathComparator()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the coordinate system format converter
+    ///
+    /// \return
+    /// The coordinate system format converter
+    ///
     virtual MgCoordinateSystemFormatConverter* GetFormatConverter()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the coordinate system projection information
+    ///
+    /// \return
+    /// The coordinate system projection information
+    ///
     virtual MgCoordinateSystemProjectionInformation* GetProjectionInformation()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the coordinate system unit information
+    ///
+    /// \return
+    /// The coordinate system unit information
+    ///
     virtual MgCoordinateSystemUnitInformation* GetUnitInformation()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the coordinate system dictionary utility
+    ///
+    /// \return
+    /// The coordinate system dictionary utility
+    ///
     virtual MgCoordinateSystemDictionaryUtility* GetDictionaryUtility()=0;
 
     ///////////////////////////////////////////////////////////////////////////

Modified: trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemCategory.h
===================================================================
--- trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemCategory.h	2012-12-07 16:27:01 UTC (rev 7245)
+++ trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemCategory.h	2012-12-07 16:47:01 UTC (rev 7246)
@@ -21,25 +21,112 @@
 class MgCoordinateSystemCatalog;
 class MgCoordinateSystemEnum;
 
+///////////////////////////////////////////////////////////////////////////////////////////////
+/// \brief
+/// Defines a category of coordinate systems
+///
 class MgCoordinateSystemCategory : public MgGuardDisposable
 {
     DECLARE_CLASSNAME(MgCoordinateSystemCategory)
 
 PUBLISHED_API:
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the name of this coordinate system category
+    ///
+    /// \return
+    /// The name of this coordinate system category
+    ///
     virtual STRING GetName()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Sets the name of this coordinate system category
+    ///
+    /// \param sName (String/string)
+    /// The name of this coordinate system category
+    ///
     virtual void SetName(CREFSTRING sName)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Checks whether the given name is legal for this category
+    ///
+    /// \return
+    /// true if the given name is legal. false otherwise
+    /// 
     virtual bool IsLegalName(CREFSTRING sName)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets whether this category is valid
+    ///
+    /// \return
+    /// true if this category is valid
+    /// 
     virtual bool IsValid()=0;
     virtual bool IsUsable(MgCoordinateSystemCatalog *pCatalog)=0;
     virtual bool IsSameAs(MgGuardDisposable *pDef)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Returns a cloned copy of this category
+    ///
+    /// \return
+    /// A cloned copy of this category
+    /// 
     virtual MgCoordinateSystemCategory* CreateClone()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the size of this category
+    ///
+    /// \return
+    /// The size of this category
+    /// 
     virtual UINT32 GetSize()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the coordinate system enumerator for this category
+    ///
+    /// \return
+    /// The coordinate system enumerator
+    /// 
     virtual MgCoordinateSystemEnum* GetEnum()=0;
     virtual void AddCoordinateSystem(CREFSTRING sName)=0;
     virtual void RemoveCoordinateSystem(CREFSTRING sName)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Checks whether this category has the specified coordinate system name
+    ///
+    /// \param sName (String/string)
+    /// The coordinate system name
+    ///
+    /// \return
+    /// true if the specified name exists. false otherwise
+    /// 
     virtual bool HasCoordinateSystem(CREFSTRING sName)=0;
     virtual void Clear()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the coordinate system in this category
+    ///
+    /// \return
+    /// A MgStringCollection containing the names of all coordinate systems in this category
+    /// 
     virtual MgStringCollection* GetCoordinateSystems()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the associated coordinate system catalog
+    ///
+    /// \return
+    /// The associated coordinate system catalog
+    /// 
     virtual MgCoordinateSystemCatalog* GetCatalog()=0;
 
 protected:

Modified: trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemCategoryDictionary.h
===================================================================
--- trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemCategoryDictionary.h	2012-12-07 16:27:01 UTC (rev 7245)
+++ trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemCategoryDictionary.h	2012-12-07 16:47:01 UTC (rev 7246)
@@ -24,7 +24,7 @@
 
 ////////////////////////////////////////////////////////////////
 /// \brief
-/// Basic functionality for the ellipsoid dictionary
+/// Basic functionality for the coordinate system category dictionary
 ///
 
 class MgCoordinateSystemCategoryDictionary : public MgCoordinateSystemDictionaryBase
@@ -32,10 +32,39 @@
     DECLARE_CLASSNAME(MgCoordinateSystemCategoryDictionary)
 
 PUBLISHED_API:
-        virtual MgCoordinateSystemCategory* NewCategory()=0;
-        virtual void Rename(CREFSTRING sOldName, CREFSTRING sNewName)=0;
-        virtual MgCoordinateSystemCategory* GetCategory(CREFSTRING sName)=0;
 
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Creates a new category
+    ///
+    /// \return
+    /// The coordinate system category
+    ///
+    virtual MgCoordinateSystemCategory* NewCategory()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Renames the given category name to new specified category name
+    ///
+    /// \param sOldName (String/string)
+    /// The old category
+    /// \param sNewName (String/string)
+    /// The new category
+    /// 
+    virtual void Rename(CREFSTRING sOldName, CREFSTRING sNewName)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the category of the specified name
+    ///
+    /// \param sName (String/string)
+    /// The category
+    ///
+    /// \return
+    /// The coordinate system category or NULL if not found
+    /// 
+    virtual MgCoordinateSystemCategory* GetCategory(CREFSTRING sName)=0;
+
 protected:
     /////////////////////////////////////////////////////////////////
     /// \brief

Modified: trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemCodeFormat.h
===================================================================
--- trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemCodeFormat.h	2012-12-07 16:27:01 UTC (rev 7245)
+++ trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemCodeFormat.h	2012-12-07 16:47:01 UTC (rev 7246)
@@ -31,13 +31,13 @@
 PUBLISHED_API:
     ///////////////////////////////////////////////////////////////
     /// \brief
+    /// Mentor/CS-Map flavor
     ///
-    ///
     static const INT32 Mentor = 0;
     ///////////////////////////////////////////////////////////////
     /// \brief
+    /// EPSG flavor
     ///
-    ///
     static const INT32 Epsg = 1;
 };
 /// \}

Modified: trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemDatum.h
===================================================================
--- trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemDatum.h	2012-12-07 16:27:01 UTC (rev 7245)
+++ trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemDatum.h	2012-12-07 16:47:01 UTC (rev 7246)
@@ -59,38 +59,255 @@
     /// This method used to be called IsLegalCode prior to MapGuide Open Source 2.2 / MapGuide Enterprise 2011 / AutoCAD Map3D 2011
     ///
     virtual bool IsLegalDtCode(CREFSTRING sCode)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets whether this coordinate system datum is valid
+    ///
+    /// \return
+    /// true if this datum is valid. false otherwise
+    ///
     virtual bool IsValid()=0;
     virtual bool IsUsable(MgCoordinateSystemCatalog *pCatalog)=0;
     virtual bool IsSameAs(MgGuardDisposable *pDef)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the description of this datum
+    ///
+    /// \return
+    /// The description of this datum
+    ///
     virtual STRING GetDescription()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Sets the description of this datum
+    ///
+    /// \param sDesc (String/string)
+    /// The description of this datum
+    ///
     virtual void SetDescription(CREFSTRING sDesc)=0;
+    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Checks whether the given description is legal for this datum
+    ///
+    /// \return
+    /// true if the given description is legal. false otherwise
+    ///
     virtual bool IsLegalDescription(CREFSTRING sDesc)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the group for this datum
+    ///
+    /// \return
+    /// The group for this datum 
+    ///
     virtual STRING GetGroup()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Sets the group for this datum 
+    ///
+    /// \param sGroup (String/string)
+    /// The group for this datum
+    ///
     virtual void SetGroup(CREFSTRING sGroup)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets whether the specified group is legal for this datum 
+    ///
+    /// \return
+    /// true if the specified group is legal. false otherwise
+    ///
     virtual bool IsLegalGroup(CREFSTRING sGroup)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the source of this datum 
+    ///
+    /// \return
+    /// The source of this datum
+    ///
     virtual STRING GetSource()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Sets the source of this datum
+    ///
+    /// \param sSource (String/string)
+    /// The source of this datum
+    ///
     virtual void SetSource(CREFSTRING sSource)=0;
+    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the EPSG code for this datum
+    ///
+    /// \return
+    /// The EPSG code for this datum
+    /// 
     /// \since 2.3
+    ///
     virtual INT16 GetEpsgCode()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Sets the EPSG code for this datum
+    ///
+    /// \param epsgCode (short/int)
+    /// The EPSG code for this datum
+    ///
     virtual void SetEpsgCode(INT16 epsgCode)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets whether the given source is legal for this datum
+    ///
+    /// \return
+    /// true if the given source is legal. false otherwise
+    ///
     virtual bool IsLegalSource(CREFSTRING sSource)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets whether this datum is protected
+    ///
+    /// \return
+    /// true if this datum is protected. false otherwise
+    ///
     virtual bool IsProtected()=0;
     virtual INT16 GetAge()=0;
     virtual void SetProtectMode(bool bIsProtected)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets whether this datum is encrypted
+    ///
+    /// \return
+    /// true if this datum is encrypted. false otherwise
+    ///
     virtual bool IsEncrypted()=0;
     virtual void SetEncryptMode(bool bIsEncrypted)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the location of this datum
+    ///
+    /// \return
+    /// The location of this datum
+    ///
     virtual STRING GetLocation()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Sets the location of this datum
+    ///
+    /// \param sLoc (String/string)
+    /// The location of this datum
+    ///
     virtual void SetLocation(CREFSTRING sLoc)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets whether the given location is valid for this datum
+    ///
+    /// \return
+    /// true if the given location is valid. false otherwise
+    ///
     virtual bool IsLegalLocation(CREFSTRING sLoc)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the country or state for this datum
+    ///
+    /// \return
+    /// The country or state for this datum
+    ///
     virtual STRING GetCountryOrState()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Sets the country or state for this datum
+    ///
+    /// \param sCountryOrState (String/string)
+    /// The country or state for this datum
+    ///
     virtual void SetCountryOrState(CREFSTRING sCountryOrState)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets whether the given country or state is legal for this datum
+    ///
+    /// \return
+    /// true if the given country or state is legal. false otherwise
+    ///
     virtual bool IsLegalCountryOrState(CREFSTRING sCountryOrState)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the ellipsoid for this datum
+    ///
+    /// \return
+    /// The ellipsoid for this datum
+    ///
     virtual STRING GetEllipsoid()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Sets the ellipsoid for this datum
+    ///
+    /// \param sEllipsoid (String/string)
+    /// The ellipsoid
+    ///
     virtual void SetEllipsoid(CREFSTRING sEllipsoid)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the ellipsoid definition for this datum
+    ///
+    /// \return
+    /// The MgCoordinateSystemEllipsoid object
+    ///
     virtual MgCoordinateSystemEllipsoid* GetEllipsoidDefinition()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Sets the ellipsoid definition for this datum
+    ///
+    /// \param pDef (MgCoordinateSystemEllipsoid)
+    /// The coordinate system ellipsoid
+    ///
     virtual void SetEllipsoidDefinition(MgCoordinateSystemEllipsoid *pDef)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Returns a cloned copy of this datum 
+    ///
+    /// \return
+    /// A cloned copy of this datum
+    ///
     virtual MgCoordinateSystemDatum* CreateClone()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets a collection of geodetic transformation between this datum and the specified target datum
+    ///
+    /// \return
+    /// A collection of MgCoordinateSystemGeodeticTransformation objects
+    ///
     virtual MgDisposableCollection* GetGeodeticTransformations(MgCoordinateSystemDatum *pTarget)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the associated coordinate system catalog
+    ///
+    /// \return
+    /// The associated coordinate system catalog
+    ///
     virtual MgCoordinateSystemCatalog* GetCatalog()=0;
 
 INTERNAL_API:

Modified: trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemDatumDictionary.h
===================================================================
--- trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemDatumDictionary.h	2012-12-07 16:27:01 UTC (rev 7245)
+++ trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemDatumDictionary.h	2012-12-07 16:47:01 UTC (rev 7246)
@@ -32,9 +32,24 @@
     DECLARE_CLASSNAME(MgCoordinateSystemDatumDictionary)
 
 PUBLISHED_API:
-        virtual MgCoordinateSystemDatum* NewDatum()=0;
-        virtual MgCoordinateSystemDatum* GetDatum(CREFSTRING sName)=0;
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Creates a new coordinate system datum 
+    ///
+    /// \return
+    /// The MgCoordinateSystemDatum object
+    ///
+    virtual MgCoordinateSystemDatum* NewDatum()=0;
 
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the coordinate system datum matching the specified name 
+    ///
+    /// \return
+    /// The matching MgCoordinateSystemDatum object. NULL if not found
+    ///
+    virtual MgCoordinateSystemDatum* GetDatum(CREFSTRING sName)=0;
+
 protected:
     /////////////////////////////////////////////////////////////////
     /// \brief

Modified: trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemDictionary.h
===================================================================
--- trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemDictionary.h	2012-12-07 16:27:01 UTC (rev 7245)
+++ trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemDictionary.h	2012-12-07 16:47:01 UTC (rev 7246)
@@ -32,9 +32,24 @@
     DECLARE_CLASSNAME(MgCoordinateSystemDictionary)
 
 PUBLISHED_API:
-        virtual MgCoordinateSystem* NewCoordinateSystem()=0;
-        virtual MgCoordinateSystem* GetCoordinateSystem(CREFSTRING sName)=0;
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Creates a new coordinate system
+    ///
+    /// \return
+    /// The MgCoordinateSystem object
+    ///
+    virtual MgCoordinateSystem* NewCoordinateSystem()=0;
 
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the coordinate system that matches the specified name
+    ///
+    /// \return
+    /// The MgCoordinateSystem object. NULL if not found 
+    ///
+    virtual MgCoordinateSystem* GetCoordinateSystem(CREFSTRING sName)=0;
+
 protected:
     /////////////////////////////////////////////////////////////////
     /// \brief

Modified: trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemDictionaryBase.h
===================================================================
--- trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemDictionaryBase.h	2012-12-07 16:27:01 UTC (rev 7245)
+++ trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemDictionaryBase.h	2012-12-07 16:47:01 UTC (rev 7246)
@@ -32,17 +32,113 @@
     DECLARE_CLASSNAME(MgCoordinateSystemDictionaryBase)
 
 PUBLISHED_API:
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the associated coordinate system catalog
+    ///
+    /// \return
+    /// The associated coordinate system catalog
+    ///
     virtual MgCoordinateSystemCatalog* GetCatalog()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the default file name
+    ///
+    /// \return
+    /// The default file name
+    ///
     virtual STRING GetDefaultFileName()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the file name of this dictionary 
+    ///
+    /// \return
+    /// The file name of this dictionary
+    ///
     virtual STRING GetFileName()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Sets the file name of this dictionary
+    ///
+    /// \param sFileName (String/string)
+    /// The file name
+    ///
     virtual void SetFileName(CREFSTRING sFileName)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the path of this dictionary
+    ///
+    /// \return
+    /// The path of this dictionary
+    ///
     virtual STRING GetPath()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the size of this dictionary
+    ///
+    /// \return
+    /// The size of this dictionary
+    ///
     virtual UINT32 GetSize()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Adds the specified definition
+    ///
+    /// \param pDefinition (MgGuardDisposable)
+    /// The definition to add.
+    ///
+    /// \remarks
+    /// Refer to the derived class to determine the type of definition that can be added. For example, for a
+    /// MgCoordinateSystemDatumDictionary, the allowed type of definition is MgCoordinateSystemDatum
+    ///
     virtual void Add(MgGuardDisposable *pDefinition)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Removes a definition by its specified name
+    ///
+    /// \param sName (String/string)
+    /// The name of the definition to remove
+    ///
     virtual void Remove(CREFSTRING sName)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Modifies the specified definition
+    ///
+    /// \param pDefinition (MgGuardDisposable)
+    /// The definition to modify.
+    ///
+    /// \remarks
+    /// Refer to the derived class to determine the type of definition that can be modified. For example, for a
+    /// MgCoordinateSystemDatumDictionary, the allowed type of definition is MgCoordinateSystemDatum
+    ///
     virtual void Modify(MgGuardDisposable *pDefinition)=0;
+
     virtual MgGuardDisposable* Get(CREFSTRING sName)=0; // TODO - this needs to be removed!
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Checks whether the definition of the specified name exists in this dictionary
+    ///
+    /// \return
+    /// true if the definition exists. false otherwise
+    ///
     virtual bool Has(CREFSTRING sName)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the dictionary enumerator
+    ///
+    /// \return
+    /// The dictionary enumerator
+    ///
     virtual MgCoordinateSystemEnum* GetEnum()=0;
 };
 /// \}

Modified: trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemDictionaryUtility.h
===================================================================
--- trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemDictionaryUtility.h	2012-12-07 16:27:01 UTC (rev 7245)
+++ trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemDictionaryUtility.h	2012-12-07 16:47:01 UTC (rev 7246)
@@ -32,10 +32,50 @@
     DECLARE_CLASSNAME(MgCoordinateSystemDictionaryUtility)
 
 PUBLISHED_API:
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the associated coordinate system catalog
+    ///
+    /// \return
+    /// The associated coordinate system catalog
+    ///
     virtual MgCoordinateSystemCatalog* GetCatalog()=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Creates the ellipsoid dictionary in the specified path
+    ///
+    /// \param sDictPathName (String/string)
+    /// The path to create the dictionary in
+    ///
     virtual void CreateEllipsoidDictionary(CREFSTRING sDictPathName)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Creates the datum dictionary in the specified path
+    ///
+    /// \param sDictPathName (String/string)
+    /// The path to create the dictionary in
+    ///
     virtual void CreateDatumDictionary(CREFSTRING sDictPathName)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Creates the coordinate system dictionary in the specified path
+    ///
+    /// \param sDictPathName (String/string)
+    /// The path to create the dictionary in
+    ///
     virtual void CreateCoordsysDictionary(CREFSTRING sDictPathName)=0;
+
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Creates the category dictionary in the specified path
+    ///
+    /// \param sDictPathName (String/string)
+    /// The path to create the dictionary in
+    ///
     virtual void CreateCategoryDictionary(CREFSTRING sDictPathName)=0;
 
 protected:

Modified: trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemEllipsoid.h
===================================================================
--- trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemEllipsoid.h	2012-12-07 16:27:01 UTC (rev 7245)
+++ trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemEllipsoid.h	2012-12-07 16:47:01 UTC (rev 7246)
@@ -18,6 +18,10 @@
 #ifndef _MGCOORDINATESYSTEMELLIPSOID_H_
 #define _MGCOORDINATESYSTEMELLIPSOID_H_
 
+///////////////////////////////////////////////////////////////////////////////////////////////
+/// \brief
+/// Defines a coordinate system ellipsoid
+///
 class MgCoordinateSystemEllipsoid : public MgGuardDisposable
 {
     DECLARE_CLASSNAME(MgCoordinateSystemEllipsoid)

Modified: trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemEllipsoidDictionary.h
===================================================================
--- trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemEllipsoidDictionary.h	2012-12-07 16:27:01 UTC (rev 7245)
+++ trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemEllipsoidDictionary.h	2012-12-07 16:47:01 UTC (rev 7246)
@@ -32,9 +32,24 @@
     DECLARE_CLASSNAME(MgCoordinateSystemEllipsoidDictionary)
 
 PUBLISHED_API:
-        virtual MgCoordinateSystemEllipsoid* NewEllipsoid()=0;
-        virtual MgCoordinateSystemEllipsoid* GetEllipsoid(CREFSTRING sName)=0;
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Creates a new coordinate system ellipsoid
+    ///
+    /// \return
+    /// A MgCoordinateSystemEllipsoid object
+    ///
+    virtual MgCoordinateSystemEllipsoid* NewEllipsoid()=0;
 
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Gets the coordinate system ellipsoid matching the specified name
+    ///
+    /// \return
+    /// A MgCoordinateSystemEllipsoid object. NULL if not found.
+    ///
+    virtual MgCoordinateSystemEllipsoid* GetEllipsoid(CREFSTRING sName)=0;
+
 protected:
     /////////////////////////////////////////////////////////////////
     /// \brief

Modified: trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemErrorCode.h
===================================================================
--- trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemErrorCode.h	2012-12-07 16:27:01 UTC (rev 7245)
+++ trunk/MgDev/Common/Geometry/CoordinateSystem/CoordinateSystemErrorCode.h	2012-12-07 16:47:01 UTC (rev 7246)
@@ -24,74 +24,326 @@
 
 ///////////////////////////////////////////////////////////////
 /// \brief
+/// Defines various error codes returned by the Coordinate System API
 ///
-///
 class MG_GEOMETRY_API MgCoordinateSystemErrorCode
 {
 PUBLISHED_API:
-    static const INT32 AZM      = 201;    // Y axis azimuth specification is invalid.
-    static const INT32 AZMTH    = 202;    // Great circle azimuth value is invalid.
-    static const INT32 LAT      = 203;    // Invalid latitude detected in definition.
-    static const INT32 LATEQU   = 204;    // Latitudes of defining points are equal.
-    static const INT32 LNG      = 205;    // Invalid longitude detected in definition.
-    static const INT32 LNGEQU   = 206;    // First defining point may not be on the equator.
-    static const INT32 MAPSCL   = 207;    // Invalid map scale value detected.
-    static const INT32 MEREQU   = 208;    // Standard meridians are the same.
-    static const INT32 MRCAT    = 209;    // Defining great circle is a parallel, try Mercator.
-    static const INT32 MSCOEF   = 210;    // Invalid coefficient value specified.
-    static const INT32 NOREF    = 211;    // System must be referenced to a datum or an ellipsoid.
-    static const INT32 NOTNRTH  = 212;    // Standard paralells are not ordered correctly.
-    static const INT32 NRTHLAT  = 213;    // Standard parallells are not ordered correctly.
-    static const INT32 NRTHPNT  = 214;    // Point defining Y axis direction incorrectly specified.
-    static const INT32 ORGLAT   = 215;    // Invalid latitude value given for projection origin.
-    static const INT32 ORGLNG   = 216;    // Invalid longitude value given for projection origin.
-    static const INT32 PLL90    = 217;    // Standard parallel location exceeds 90 degrees.
-    static const INT32 PLLEQU   = 218;    // Standard parallel locations are the same.
-    static const INT32 PLLLRG   = 219;    // Standard parallel locations not inbetween poles.
-    static const INT32 PLLREV   = 220;    // Order of standard parallels incorrect.
-    static const INT32 PLLZERO  = 221;    // Standard parallel location is zero.
-    static const INT32 POLDD    = 222;    // Poles are too far apart.
-    static const INT32 POLDUP   = 223;    // Poles are not sufficiently separated.
-    static const INT32 POLLAT   = 224;    // Latitude of pole incorrectly specified.
-    static const INT32 POLLNG   = 225;    // Longitude of pole incorrectly specified.
-    static const INT32 QUAD     = 226;    // Invalid quad specification detected.
-    static const INT32 SCLRED   = 227;    // Invalid scale reduction value encountered.
-    static const INT32 SOTHLAT  = 228;    // Standard parallels are not ordered correctly.
-    static const INT32 STDLAT   = 229;    // Standard parallel is incorrectly specified.
-    static const INT32 STDLNG   = 230;    // Standard meridian specification is invalid.
-    static const INT32 STDPLL   = 231;    // Standard parallel specifications are invalid.
-    static const INT32 STDSOU   = 232;    // Southern parallel is equal to or north of northern.
-    static const INT32 STDWEST  = 233;    // Standard meridian must be east of the central meridian.
-    static const INT32 UNIT     = 234;    // Invalid unit specification detected.
-    static const INT32 INVPRJ   = 235;    // Invalid projection key name detected.
-    static const INT32 INVDTM   = 236;    // Invalid datum name specification detected.
-    static const INT32 INVELP   = 237;    // Invalid ellipsoid name specification detected.
-    static const INT32 LLRNG    = 238;    // Longitude range is too small.
-    static const INT32 RNGORD   = 239;    // Longitude range values out of order.
-    static const INT32 INVQUAD  = 240;    // Invalid quadrant specification given.
-    static const INT32 GEOMM    = 241;    // Invalid invalid geographic useful range detected.
-    static const INT32 CRTMM    = 242;    // Invalid invalid cartesian useful range detected.
-    static const INT32 PLLED    = 243;    // Standard parallels must be equidistant from poles.
-    static const INT32 PLRLAT   = 244;    // Origin latitude is not polar; use oblique form of projection.
-    static const INT32 USEPLR   = 245;    // Origin latitude is polar; use polar form of projection.
-    static const INT32 UTMZON   = 246;    // Invalid value given for UTM zone number.
-    static const INT32 HMISPHR  = 247;    // Invalid hemisphere specification (+1 = north, -1 = south).
-    static const INT32 USESW    = 248;    // Central azimuth is 90, use the Swiss Oblique Mercator.
-    static const INT32 MAX15    = 249;    // Eastern meridian is more than 15 degrees from the central meridian.
-    static const INT32 OBLQPOLE = 250;    // Invalid oblique pole specification.
-    static const INT32 AFFZERO  = 251;    // Denominator of affine is zero.
-    static const INT32 NRDATUM  = 252;    // Non-earth system referenced to a datum.
-    static const INT32 OSTN97   = 253;    // OSTN97.TXT grid shift file could not be located or opened with read access.
-    static const INT32 DENRGN   = 253;    // Invalid region code specified for Danish System 34/45 (1=J, 2=S, 3=B).
-    static const INT32 ELEVEL   = 254;    // Value supplied for elevated ellipsoid is outside acceptable range
-    static const INT32 OSTN02   = 255;    // OSTN02.TXT grid shift file could not be located or opened with read access.
-    static const INT32 TMKRG0   = 256;    // Transverse Mercator Kruger formulation requested with non-zero origin latitude.
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Y axis azimuth specification is invalid.
+    ///
+    static const INT32 AZM      = 201;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Great circle azimuth value is invalid.
+    ///
+    static const INT32 AZMTH    = 202;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Invalid latitude detected in definition.
+    ///
+    static const INT32 LAT      = 203;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Latitudes of defining points are equal.
+    ///
+    static const INT32 LATEQU   = 204;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Invalid longitude detected in definition.
+    ///
+    static const INT32 LNG      = 205;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// First defining point may not be on the equator.
+    ///
+    static const INT32 LNGEQU   = 206;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Invalid map scale value detected.
+    ///
+    static const INT32 MAPSCL   = 207;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Standard meridians are the same.
+    ///
+    static const INT32 MEREQU   = 208;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Defining great circle is a parallel, try Mercator.
+    ///
+    static const INT32 MRCAT    = 209;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Invalid coefficient value specified.
+    ///
+    static const INT32 MSCOEF   = 210;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// System must be referenced to a datum or an ellipsoid.
+    ///
+    static const INT32 NOREF    = 211;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Standard paralells are not ordered correctly.
+    ///
+    static const INT32 NOTNRTH  = 212;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Standard parallells are not ordered correctly.
+    ///
+    static const INT32 NRTHLAT  = 213;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Point defining Y axis direction incorrectly specified.
+    ///
+    static const INT32 NRTHPNT  = 214;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Invalid latitude value given for projection origin.
+    ///
+    static const INT32 ORGLAT   = 215;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Invalid longitude value given for projection origin.
+    ///
+    static const INT32 ORGLNG   = 216;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Standard parallel location exceeds 90 degrees.
+    ///
+    static const INT32 PLL90    = 217;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Standard parallel locations are the same.
+    ///
+    static const INT32 PLLEQU   = 218;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Standard parallel locations not inbetween poles.
+    ///
+    static const INT32 PLLLRG   = 219;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Order of standard parallels incorrect.
+    ///
+    static const INT32 PLLREV   = 220;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Standard parallel location is zero.
+    ///
+    static const INT32 PLLZERO  = 221;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Poles are too far apart.
+    ///
+    static const INT32 POLDD    = 222;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Poles are not sufficiently separated.
+    ///
+    static const INT32 POLDUP   = 223;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Latitude of pole incorrectly specified.
+    ///
+    static const INT32 POLLAT   = 224;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Longitude of pole incorrectly specified.
+    ///
+    static const INT32 POLLNG   = 225;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Invalid quad specification detected.
+    ///
+    static const INT32 QUAD     = 226;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Invalid scale reduction value encountered.
+    ///
+    static const INT32 SCLRED   = 227;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Standard parallels are not ordered correctly.
+    ///
+    static const INT32 SOTHLAT  = 228;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Standard parallel is incorrectly specified.
+    ///
+    static const INT32 STDLAT   = 229;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Standard meridian specification is invalid.
+    ///
+    static const INT32 STDLNG   = 230;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Standard parallel specifications are invalid.
+    ///
+    static const INT32 STDPLL   = 231;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Southern parallel is equal to or north of northern.
+    ///
+    static const INT32 STDSOU   = 232;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Standard meridian must be east of the central meridian.
+    ///
+    static const INT32 STDWEST  = 233;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Invalid unit specification detected.
+    ///
+    static const INT32 UNIT     = 234;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Invalid projection key name detected.
+    ///
+    static const INT32 INVPRJ   = 235;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Invalid datum name specification detected.
+    ///
+    static const INT32 INVDTM   = 236;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Invalid ellipsoid name specification detected.
+    ///
+    static const INT32 INVELP   = 237;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Longitude range is too small.
+    ///
+    static const INT32 LLRNG    = 238;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Longitude range values out of order.
+    ///
+    static const INT32 RNGORD   = 239;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Invalid quadrant specification given.
+    ///
+    static const INT32 INVQUAD  = 240;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Invalid invalid geographic useful range detected.
+    ///
+    static const INT32 GEOMM    = 241;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Invalid invalid cartesian useful range detected.
+    ///
+    static const INT32 CRTMM    = 242;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Standard parallels must be equidistant from poles.
+    ///
+    static const INT32 PLLED    = 243;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Origin latitude is not polar; use oblique form of projection.
+    ///
+    static const INT32 PLRLAT   = 244;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Origin latitude is polar; use polar form of projection.
+    ///
+    static const INT32 USEPLR   = 245;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Invalid value given for UTM zone number.
+    ///
+    static const INT32 UTMZON   = 246;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Invalid hemisphere specification (+1 = north, -1 = south).
+    ///
+    static const INT32 HMISPHR  = 247;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Central azimuth is 90, use the Swiss Oblique Mercator.
+    ///
+    static const INT32 USESW    = 248;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Eastern meridian is more than 15 degrees from the central meridian.
+    ///
+    static const INT32 MAX15    = 249;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Invalid oblique pole specification.
+    ///
+    static const INT32 OBLQPOLE = 250;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Denominator of affine is zero.
+    ///
+    static const INT32 AFFZERO  = 251;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Non-earth system referenced to a datum.
+    ///
+    static const INT32 NRDATUM  = 252;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// OSTN97.TXT grid shift file could not be located or opened with read access.
+    ///
+    static const INT32 OSTN97   = 253;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Invalid region code specified for Danish System 34/45 (1=J, 2=S, 3=B).
+    ///
+    static const INT32 DENRGN   = 253;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Value supplied for elevated ellipsoid is outside acceptable range
+    ///
+    static const INT32 ELEVEL   = 254;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// OSTN02.TXT grid shift file could not be located or opened with read access.
+    ///
+    static const INT32 OSTN02   = 255;    
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Transverse Mercator Kruger formulation requested with non-zero origin latitude.
+    ///
+    static const INT32 TMKRG0   = 256;    
 
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// 
+    ///
     static const INT32 Ok                   = 1000;
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// 
+    ///
     static const INT32 OutOfMemory          = 1001;
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// 
+    ///
     static const INT32 InitializationFailed = 1002;
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// 
+    ///
     static const INT32 ConversionFailed     = 1003;
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// 
+    ///
     static const INT32 NullArgument         = 1004;
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    /// \brief
+    /// 
+    ///
     static const INT32 InvalidArgument      = 1005;
 };
 /// \}



More information about the mapguide-commits mailing list