Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 316248

Summary: 3D Area chart is not drawn correctly
Product: z_Archived Reporter: mindan xu <mindan.xu>
Component: BIRTAssignee: Heng Li <liheeng>
Status: RESOLVED FIXED QA Contact: Xiaoying Gu <bluesoldier>
Severity: normal    
Priority: P3 CC: bluesoldier, liheeng, Lionel.wyl
Version: unspecified   
Target Milestone: 2.6.2   
Hardware: PC   
OS: Windows XP   
Whiteboard: Obsolete
Attachments:
Description Flags
Report
none
Screenshot none

Description mindan xu CLA 2010-06-09 03:27:19 EDT
Description:
3D Area Chart is not drawn correctly.

Build number:
2.6.0.v20100609-0630

Steps to reproduce:
1. Preview a report design in HTML. 

Expected result:
The two series are drawn correctly.

Actual result:
Part of the second series covers the first (see the screenshot).

Error log:
N/A
Comment 1 mindan xu CLA 2010-06-09 03:27:59 EDT
Created attachment 171492 [details]
Report
Comment 2 mindan xu CLA 2010-06-09 03:28:46 EDT
Created attachment 171493 [details]
Screenshot
Comment 3 Yulin Wang CLA 2010-06-12 04:51:55 EDT
Could you tell me which build version has the correct result?
I don't think this is a regression because there's no change to that.
Comment 4 Heng Li CLA 2011-01-07 03:30:24 EST
This is caused by some bugs in 3D chart: 1. The polygon rendering order between series and axis-wall has error in some special angle. 2. The polygon rendering order between grid line of axis-wall and series has error. 3. Since 3D chart uses Painter's algorithm and it just supports convex hull. Some polygons of 3D chart is not separated into simple convex plane, this makes error order result for polygon rendering. 4. Since some polygons in 3D chart may cross with each other, to make each side of chart series can be displayed in user view, every crossing polygon must be separated into two polygons to avoid error rendering.
The solutions:
1. Fixed the error in rendering order computation for 3d polygons.
2. Simplified the polygon rendering order computation, not compute the rendering order for all polygons of series and all grid lines of axis-wall. Because each series is an entity and grid lines of axis-wall are still in axis-wall, just select a polygon for each series and three axes-walls to compute the rendering order.
3. Separated complex polygon into simple convex polygon.
4. Separated crossing polygon into two polygons.