Changes between Initial Version and Version 1 of MapGuideRfc35


Ignore:
Timestamp:
Sep 12, 2007, 8:49:10 AM (17 years ago)
Author:
brucedechant
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • MapGuideRfc35

    v1 v1  
     1= !MapGuide RFC 35 - Coordinate System API Cleanup =
     2
     3This page contains an change request (RFC) for the !MapGuide Open Source project. 
     4More !MapGuide RFCs can be found on the [wiki:MapGuideRfcs RFCs] page.
     5
     6
     7== Status ==
     8 
     9||RFC Template Version||(1.0)||
     10||Submission Date||Sep 11, 2007||
     11||Last Modified||Bruce Dechant [[Timestamp]]||
     12||Author||Bruce Dechant||
     13||RFC Status||draft||
     14||Implementation Status||under development||
     15||Proposed Milestone||2.0||
     16||Assigned PSC guide(s)||(when determined)||
     17||'''Voting History'''||none||
     18 
     19== Overview ==
     20
     21This RFC contains a proposal for cleaning up the exiting coordinate system API.
     22
     23== Motivation ==
     24
     25The existing coordinate system API as written is not very convenient to use as a library with 3rd party applications or even with MapGuide. It also has an inconsistent design for what the coordinate system factory can create. This can be addressed by cleaning up the architecture via the use of interfaces and therefore create a usable library that can be easily shared.
     26
     27== Proposed Solution ==
     28
     29The existing coordinate system API architecture will be cleaned up to use interfaces instead of wrapper classes. The coordinate system factory will be updated to create all coordinate system objects (coordinate systems, transforms and measures) instead of the mixture of having to use the factory for some stuff but not all.
     30
     31New factory Method for creating a coordinate system transform object:
     32
     33MgCoordinateSystemTransform* GetTransform(MgCoordinateSystem* pSource, MgCoordinateSystem* pTarget)
     34
     35Measure will be accessed directly from an existing coordinate system object:
     36MgCoordinateSystemMeasure* GetMeasure()
     37
     38== Implications ==
     39
     40All of the existing coordinate system APIs will remain and be backwards compatible with only the following 2 exceptions:
     41
     42MgCoordinateSystemTransform  constructor will be removed.
     43MgCoordinateSystemMeasure constructor will be removed.
     44
     45The above 2 objects will instead be created via the updated coordinate system factory.
     46
     47== Test Plan ==
     48
     49Ensure APIs behave as before.
     50
     51== Funding/Resources ==
     52
     53Funding and resources to be supplied by Autodesk.