Changes between Version 1 and Version 2 of GSoC_SVG_Symbols_FIRST_DRAFT_OF_THE_MS-RFC


Ignore:
Timestamp:
Jul 12, 2009, 7:38:14 PM (15 years ago)
Author:
kiranvarma
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • GSoC_SVG_Symbols_FIRST_DRAFT_OF_THE_MS-RFC

    v1 v2  
    33
    44                                          Kiran Anjaneya Varma Alluri
    5                                                 July 12, 2009
    6 1     Overview.
     5  '''                                              July 12, 2009
     61     Overview.'''
    77   Popular tools such as Inkscape generate SVG graphics natively. So far MapServer has not supported
    88the SVG format, which leaves many users with the extra work of converting between formats. This
     
    1010ne vector symbols in
    1111the MapServer symbolset.
    12 2     Method.
     12'''2     Method.'''
    1313The SVG parsing and rendering will be triggered by the following syntax:
    1414     
     
    2222The choice for using a SYMBOL for the task is to allow for the reuse of the SVG symbol easily within
    2323classes.
    24 3     Technical Overview
     24'''3     Technical Overview'''
     25
    2526In order to support the SVG format, we make use of the AGG library. The reasons for going with the
    2627AGG library are:
     
    3233
    3334There are some disadvantages that emerge from using the AGG library. Foremost, the AGG library
    34 has an incomplete SVG speci
    35 cation. To avoid having to reimplement the missing subset of the
    36 speci
    37 cation (which would, without a doubt, be a non-trivial task, and would add to the complexity
     35has an incomplete SVG specification. To avoid having to reimplement the missing subset of the
     36specification (which would, without a doubt, be a non-trivial task, and would add to the complexity
    3837of this RFC), we stick by the following techniques:
    3938   
    4039   1. A modular design is used, where the generation of the intermediate pixmap is done by a single
    41       function so that it can be easily modi
    42 ed to adjust to a dierent library. Thus,using a pixmap
     40      function so that it can be easily modified to adjust to a different library. Thus, using a pixmap
    4341      will allow us to use any rendering library.
    44    2. The unimplemented subset of the SVG speci
    45 cation is clearly provided to users in the documen-
    46       tation to prevent frustration on their side.
    47                                                    1
    48 To implement this functionality, the following steps needs to be accomplished:
     42   2. The unimplemented subset of the SVG specification is clearly provided to users in the Documentation
     43      to prevent frustration on their side.
     44                                                   
     45 To implement this functionality, the following steps needs to be accomplished:
    4946   
    5047   1. Implement an SVG parser. For this, we directly make use of the SVG Viewer example provided
    5148      along with the AGG sources.
    5249   2. Write a single function to render a parsed SVG
    53 le to a pixmap. The pixmap will be an inter-
    54       mediate form that can then be rendered. The pixmap will be stored in cache memory to prevent
     50file to a pixmap. The pixmap will be an intermediate form that can then be rendered. The pixmap will be stored in cache memory to prevent
    5551      having to constantly be rasterized it every time a symbol is drawn.
    56    3. Render the pixmap into the
    57 nal image
    58 le. This will be done using a mixture of the AGG and
    59       GD libraries.
    60    4     Files Added
     52   3. Render the pixmap into the final image
     53file. This will be done using a mixture of the AGG and GD libraries.
     54   
     55'''
     564     Files Added'''
    6157
    6258Finally, the SVG parsing and pixmap generation functions will be stored in source
     
    6965The
    7066files within the above directory include the files for:
    71     • SVG Parsing
    72     • Trigger Function (based on Map
    73 file syntax)
    74     • SVG to Pixmap generation
     67   
     68    • SVG Parsing.
     69   
     70    • Trigger Function (based on '''Map
     71file''' syntax).
     72    • SVG to Pixmap generation.
    7573All
    7674files are within the C++ 'mapserver' namespace.
    77 
    78 5     Documentation
     75'''
     765     Documentation'''
    7977The following documentation needs to be prepared for this project:
    80    1. Missing SVG speci
    81 cation document.
     78   
     79   1. Missing SVG specification document.
    8280   2. Basic usage tutorial with examples.
    8381