Apache OpenOffice (AOO) Bugzilla – Issue 121237
Region does not completely support B2DPolygons
Last modified: 2013-07-12 16:27:36 UTC
ALG: Checked the Region code in vcl when chekcing another task, found out that the implementation is not complete in various places for supporting double-precision B2DPoly/Polygon definitions.
ALG: Taking over. The region code needs some refactoring anyways. Taking a look...
ALG: - Isolated the original old RegionBand code to own class and files - removed impl stuff, added the four possible contents as shared_ptr - content can be B2DPolyPolygon, PolyPolygon, RegionBand or null region - null region is an internal bool flag now - Removed RegionType define, replaced with simpler methodologies - The three content data build a hierarchy, B2DPolyPolygon is the highest quality (double), PolyPolygon the second (long) and RegionBand the third - All are convertable to each other, with same quality upwards and decresing quality downwards - Operations try to prefer the highest quality internal operation, on demand convert content. That content is buffered and reused in the other shared_ptr's - Removed and globally replaced the BeginEnumRects/GetEnumRects/EndEnumRects mechanism to get a vector of Rectangles and use that; the old one internally copied the RegionBands anyways, probably because getting one after the other lead to consistency problems in some cases. This cannot happen with getting the whole Rectangle vector at one defined time as a whole - Removed a lot unused stuff from RegionBands - Checked on Win and Linux (build and functionality) Doing some more tests...
ALG: Did some more checks and corrections, doing a complete rebuild right now for doing more tests...
ALG: Okay, done. Did more basic tests, looks good. Preparing commit.
"alg" committed SVN revision 1401294 into trunk: #121237# Rework/Cleanup of Region code due to missing complete support for B2...
ALG: Comitted, done.
"alg" committed SVN revision 1402041 into trunk: #121237# Corrected Region export, was missing to write an end marker when Reg...
ALG: Corrected one error in streaming Region, in the case of no RegionBand, the old implementation wrote an end marker (STREAMENTRY_END). This needs to be emulated to stay compatible.
Can't verify from user view.
Latest build is Aoo_Trunk_20121207.1915 Rev.1413470, marked is as verified.
close it