Hi Fang,

I looked at your changes and here are my suggestions

in Writer::Impl_writePolyPolygon you use the method parameter rPolyPoly.
You should not do it as it is not clipped. You should only use aPolyPoly
as it contains the already clipped polygon. Else you loose the clipping.
The following code in Impl_writePolyPolygon seems to be wrong by using
both aPolyPoly and aPolyPolgon which was created with unclipped
rPolyPoly. This needs a rework.

Also I would love to see that the minimum point is stored inside the
maShapeIds. The usage of the maIdMinPointMap here seems overly complex.
It would be much simpier to store the minimum point inside the
sequential maShapeIds vector.

The changes to Writer::Impl_WriteText look good, but please remove
the now unused "PolyPolygon PolyPoygon".

In swfwriter2.cxx please remove the second implementation of the
FillStyle::operator== that you committed as a comment.

In swfwriter.hxx please remove the "using namespace" lines. The
using clause is not to be used in headers. In this special case
it is not a big problem but it may later lead to confusions. So
please never ever put a using clause inside a header file.

Please also study

http://en.wikipedia.org/wiki/Hungarian_notation

to find out why "maMinPoint" is a bad name for a local variable.

Also the new Writer::placeshape( ..., B2DPoint nB2DPoint, .... ) does
not fit into that naming scheme. It is also a nice thing to use constant
references for method parameters that are bigger than a pointer.

Now the changes in Writer::defineShape look a bit weird to me.
First of all, each stl container has a "bool empty()" method which is a
tad faster than "if( container.begin() != container.end() )"

A little performance tip, if it would be meaningful to erase the
duplicate shape id's, you could have used the iterator returned
from "unique" as the new end iterator in the following while loop.
Since maShapeIds is cleared at the end of the method anyway, it would
be a waste of performance to physically delete the duplicate entries
first. But as said for the Impl_writePolyPolygon, I would put the
minimum point information inside the maShapeIds vector so the code
will become much simpler.

Please note that the file "tools/inc/poly.hxx" was moved on the
master cvs to "tools/inc/tools/poly.hxx". So before the cws
can be integrated, it must be resynched and the changes made
to "tools/inc/poly.hxx" must be manually transfered to
"tools/inc/tools/poly.hxx".

Regards,
Christian





Fang Yaqiong wrote:
> Hi Christian,
> I have created the cws,its ID is 5598, name is "flashexport01", milestone is 
> "m205".
> I submit a issue about it, it is issue 80199
> I add two modules on this cws, they are "filter" and "tools"
> The files I have modified are:
> filter/source/flash/swfwrite.hxx   add class PolyPolygonCacheKey
> filter/source/flash/swfwrite.cxx   add class PolyPolygonCacheKey
> filter/source/flash/swfwrite1.cxx  add a cache for complex charactors
> filter/source/flash/swfwrite2.cxx  add operator == for class FillStyle
> tools/inc/poly.hxx                     add operator < for class PolyPolygon
> tools/source/generic/poly2.cxx    add operator < for class PolyPolygon
> 
> Looking forward to your suggestions.
> 
> Sincerely,
> Fang
> 
> 
> 
> 
> 
> Fang Yaqiong
> 2007-08-02

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to