Issue 76201 - Cross-fading is faulty for certain custom shapes
Summary: Cross-fading is faulty for certain custom shapes
Status: CLOSED FIXED
Alias: None
Product: Draw
Classification: Application
Component: code (show other issues)
Version: OOo 2.2
Hardware: All All
: P3 Trivial (vote)
Target Milestone: OOo 2.3
Assignee: wolframgarten
QA Contact: issues@graphics
URL:
Keywords: oooqa
Depends on:
Blocks:
 
Reported: 2007-04-09 11:56 UTC by Regina Henschel
Modified: 2007-05-21 08:57 UTC (History)
2 users (show)

See Also:
Issue Type: DEFECT
Latest Confirmation in: ---
Developer Difficulty: ---


Attachments
example (19.83 KB, application/vnd.oasis.opendocument.graphics)
2007-04-09 11:57 UTC, Regina Henschel
no flags Details

Note You need to log in before you can comment on or make changes to this issue.
Description Regina Henschel 2007-04-09 11:56:54 UTC
Take a "cloud" and a "heart" from the Symbol Shapes tool bar.
Make a cross-fading with a few steps.
Notice, that the intermediate shapes have an additional cloud shape, which is
combined with the cross-fading shape and leads to wholes in the shape.
The error doesn't occur, if you set the borderline to invisible or set the
filling to none.
Comment 1 Regina Henschel 2007-04-09 11:58:00 UTC
Created attachment 44288 [details]
example
Comment 2 ace_dent 2007-04-09 17:53:02 UTC
Confirmed OOo2.2, WinXP PC.
Also problems with several other custom shapes. E.g. Circle>Circle-pie.
Comment 3 ace_dent 2007-04-09 17:57:45 UTC
Changing title- more general problem. Cheers.
Comment 4 wolframgarten 2007-04-11 08:57:52 UTC
Reproducible. Reassigned.
Comment 5 Armin Le Grand 2007-04-11 11:48:03 UTC
AW: Took a look. Problem is that the AutoShape creates a group of two polygons
when converted to path object. This can be seen when converting the cloud to
curve (e.g.). The result is a group of two objects, one filled and one the
outline. This explains what happens when the cross fade is done. Under that
cirumstances, the cross fade is correct.
What has changed is that the conversion of the cloud from an autoshape to a
polygon object produces a object group now. This is done in svx in
EnhancedCustomShape2d::CreateSubPath(...). There, bForceCreateTwoObjects
controls if two objects need to be created for fill and outline. This is the
case when the autoshape is filled and has a non-closed outline.
For the cloud the polygon is not closed -> two objects are created.
Why did it work different in 2.1? Investigation shows that in 2.1 the
CreateSubPath method used the old XPolygon and XPolyPolygon classes, but
converted to B2DPolyPolygon for the closed thest. That conversion  includes the
old-polygon-is-closed-convention-test for first and last points are equal. This
conversion closed the created path, so bForceCreateTwoObjects worked correct.
So the assumtion is that the created polygon follows the old convention nad
needs to be checked after creation (first and last point equal -> closed).
Adding this for test...
Comment 6 Armin Le Grand 2007-04-11 12:28:02 UTC
AW: Works.
AW: Also took a look at circle to pie segment. It crashed in my 2.1 version (!).
Converting the pie to polygon showed a group object. Checking showed that
SortFilledObjectsToBackByDefault() forces for the pie segment creation of a
group. This was already in 2.1. I do not know the reasons, maybe SJ knows...
Comment 7 Armin Le Grand 2007-04-11 12:30:45 UTC
AW: In m145 it does not crash, but still the pie is converted to a group of two
objects. Why? Asking SJ...
Comment 8 Armin Le Grand 2007-04-11 12:56:54 UTC
AW: Asked SJ. The pie segment as MS autoshape falls on ID 100. SJ says there is
a conflict on that spot with other MS autoshapes with the same ID, so it is
necessary to create an object group (not for the pie, but for others). I submit
a follow-up bug for that.
AW: Created #i76256# for this, SJ is informed.
AW: For the pie example, we have no change -> no regression. The other cases
will be fixed using the basegfx::tools::checkClosed fix. Adding that fix.
Comment 9 Armin Le Grand 2007-04-11 13:09:29 UTC
AW: Okay, done.
Comment 10 Armin Le Grand 2007-04-17 10:20:43 UTC
AW: Target to 2.3
Comment 11 Armin Le Grand 2007-04-20 09:59:34 UTC
AW->WG: Please verify.
- new draw
- custom shapes (e.g. cloud and heart)
- edit/cross fading...
Comment 12 wolframgarten 2007-04-23 13:15:57 UTC
Verified in CWS.
Comment 13 kpalagin 2007-05-04 11:15:17 UTC
Wolfram,
please specify CWS "name" or milestone when it will be integrated in master.
Thanks.
Comment 14 wolframgarten 2007-05-04 12:01:40 UTC
The CWS name is aw048. It should be integrated into OOo2.3.
Comment 15 wolframgarten 2007-05-21 08:53:58 UTC
Tested in master m212. Closed.
Comment 16 wolframgarten 2007-05-21 08:57:11 UTC
.