[mapguide-trac] #757: Polygon features are drawn wrong when not completely in the window (part 2)

MapGuide Open Source trac_mapguide at osgeo.org
Wed Nov 12 14:52:21 EST 2008


#757: Polygon features are drawn wrong when not completely in the window (part 2)
----------------------------+-----------------------------------------------
 Reporter:  waltweltonlair  |         Owner:  waltweltonlair
     Type:  defect          |        Status:  assigned      
 Priority:  high            |     Milestone:  2.1           
Component:  General         |       Version:  2.0.2         
 Severity:  minor           |    Resolution:                
 Keywords:                  |   External_id:  1130374       
----------------------------+-----------------------------------------------
Comment (by waltweltonlair):

 Feature processing now occurs as follows:
  * get the unclipped geometry from the feature reader
  * call the adapter's Stylize method with the unclipped geometry
  * each adapter computes the required clip offset
  * each adapter clips the feature geometry, taking into account any offset
  * each adapter applies the style to the clipped geometry

 The following code changes have been made:

  * !DefaultStylizer.cpp
    * removed clipping code in StylizeVLHelper
    * pass in the unmodified feature geometry to the Stylize call on the
 adapter

  * !PolygonAdapter.h
  * !PolygonAdapter.cpp
  * !PolylineAdapter.h
  * !PolylineAdapter.cpp
  * !PointAdapter.h
  * !PointAdapter.cpp
    * added code in Stylize to compute the clip offset from the style
    * added code in Stylize to clip using the offset

  * !GeometryAdapter.h
  * !GeometryAdapter.cpp
    * added a !GetClipOffset method which computes the necessary offset for
 a given RS_LineStroke
    * the method takes into account line width and decorations

  * SE_SymbolDefProxies.h
  * !LineBuffer.cpp
  * !StylizationDefs.h
  * !StylizationEngine.h
  * SE_LineBuffer.cpp
  * SE_LineRenderer.h
    * replaced #defines of numbers with 'const' declarations
    * moved most declarations into !StylizationDefs.h

  * !StylizationEngine.cpp
    * minor cleanup

 I also fixed a problem in !PointAdapter.  The !StartFeature notification
 was not being done in the case where a label is used as the symbol.

 Finally, I updated the FENCELINE1 rendering code in AGGRenderer and
 GDRenderer to use up to 64 segments for approximating circular
 decorations.

-- 
Ticket URL: <https://trac.osgeo.org/mapguide/ticket/757#comment:2>
MapGuide Open Source <http://mapguide.osgeo.org/>
MapGuide Open Source Internals


More information about the mapguide-trac mailing list