Issue 120569

Summary: Fup to #119443# one point connector line custom shapes with line width are not well handled when used as 3D shapes
Product: Impress Reporter: Armin Le Grand <Armin.Le.Grand>
Component: open-importAssignee: Armin Le Grand <Armin.Le.Grand>
Status: CLOSED FIXED QA Contact:
Severity: Normal    
Priority: P3 CC: lijiany, lijianyuan1983
Version: 4.0.0-dev   
Target Milestone: 4.0.0   
Hardware: All   
OS: All   
Issue Type: DEFECT Latest Confirmation in: ---
Developer Difficulty: ---
Description Flags
A continue patch for this issue. Fix wire frame issue.
lijianyuan1983: review? (Armin.Le.Grand)
Shape.ppt none

Description Armin Le Grand 2012-08-14 10:28:15 UTC
ALG: Tis is a follow-up to #119443. A line imported from PPT as single point connector is nt handled well when 3D is applied. As test file please refer to the one from the original task. The effect is that line width is ignored and only a hairline is used for 3D rendering.
Comment 1 Armin Le Grand 2012-08-14 10:28:32 UTC
ALG: Taking over.
Comment 2 Armin Le Grand 2012-08-15 08:30:00 UTC
ALG: Problem is that the SdrObjects used to create the visual representation for the custom shape are not converted further when e.g. only lines, but line style is used (e.g. line width like here). It is hard to achieve since it's not enough to do that further conversion, but also properties need to be adapted (e.g. line color to fill color and others). This is tricky since a single SfxItemSet is being used for handling all visualisation SdrObjects.
In principle the custom shape visualization would need to be reworked to create primitives. We already can convert primitives to SdrObjects if the custom shape should be 'broken', visualisation is faster, easier and better and attribute handling, too. A custom shape could create a high-level primitive and the custom shape engine stuff could be implemented in decompositions.
For now, I'll have to find a tricky way to do this.
Comment 3 Armin Le Grand 2012-08-15 10:45:17 UTC
ALG: Changed to do the needed conversions, works as well as currently possible. 

- The first shape has an extra PPT-setting for wireframe, to support that it would need to be imported.
- The others show some edge rounding, it also would need to be imported, but principally we support that (see our own 3D objects). It would be easier to support this if the process would be changed to primitive usage.
- Error in PPT: The third shape (gray) is not shown transparent despite it is set to 50% transparence.

Checking in current solution.
Comment 4 SVN Robot 2012-08-15 10:58:34 UTC
"alg" committed SVN revision 1373329 into trunk:
#120569# Enhanced 3D visualisation of line custom shapes
Comment 5 Armin Le Grand 2012-08-15 10:59:02 UTC
ALG: Committed as rev 1373329, done.
Comment 6 Jianyuan Li 2012-08-21 05:24:12 UTC
Created attachment 79023 [details]
A continue patch for this issue. Fix wire frame issue.

This patch will fix wire frame issue. Please help review. Thanks.
The wire color is darker than origin. Seems core set the color like that. Any suggestions?
Comment 7 Jianyuan Li 2012-08-21 11:51:51 UTC
An regression is caused by the change in revision 1373329. Import the sample file "Shape.ppt". All Shape 3D effects are lost. Please help check. Thanks.
Comment 8 Jianyuan Li 2012-08-21 11:52:32 UTC
Created attachment 79036 [details]
Comment 9 Jianyuan Li 2012-08-21 11:54:18 UTC
Reopen to fix the regression issue.
Comment 10 SVN Robot 2012-08-22 14:18:08 UTC
"alg" committed SVN revision 1376067 into trunk:
#120569# Corrected 3D object creations
Comment 11 Armin Le Grand 2012-08-22 14:26:40 UTC
ALG: Found; it is a mix of factors. When the 2D objects get created as base for 3D, more than one object gets created, e.g. for the smiley face. These were handled before the original fix by converting to 3D, but with XLINE_NONE style, thus were never seen. With the fix, these were converted to filled polygons when the line had a width, so got visible. It should only be changed to contour when it's a single object in the 2d representation.
Also, this conversion should only be done for non-filled shapes, so first need to check the fill style.
Changed this (and some smaller things), also added the nice extension that drawing::ShadeMode_DRAFT is known, thanks to Jianyuan Li!
Comment 12 Yan Ji 2012-08-28 07:00:34 UTC
Verified against rev r1377620 on windows 7. The problem is fixed.