summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/engine/abstract3drenderer.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Add possibility to scale custom items according to data rangesMiikka Heikkinen2014-09-081-16/+44
| | | | | | | | Proper behavior of volume objects that are shown only partially will be added in a separate patch later. Change-Id: I1fcd98faa6c4a7d09e3fef1645ed9816ff54654f Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
* ES2 gradient support for static optimizationMika Salmela2014-09-041-4/+12
| | | | | Change-Id: I3d5d5d006a26225a3a7ab5795fceb97630db0011 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
* Remove undeclared identifierMika Salmela2014-09-031-4/+0
| | | | | | Task-number: QTRD-3303 Change-Id: I8f43df8f0d90997c05ffaf93e451a52baacefa63 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
* Make volume items draw after regular custom itemsMiikka Heikkinen2014-09-031-155/+171
| | | | | | | | | Since volume items typically contain transparencies, make them draw after regular custom items, which are less likely to be transparent. Change-Id: Id7c48b6c77d7ed8654b72923d7dccf4158c9c088 Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
* Add option to use low definition volume shader.Miikka Heikkinen2014-09-021-22/+45
| | | | | | | | Low definition volume shader samples the texture at even intervals, so it will sometimes skip texels, causing flickering. Change-Id: Iee6cb0e8893498b89ce1a40f34701a53d100283e Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
* Pixel perfect volume shaderMiikka Heikkinen2014-09-011-6/+6
| | | | | | | | | Now the volume should render with pixel perfect accuracy. The drawback is that it is significantly slower than the old approximate solution. Change-Id: I4df7e9a28a27b56150c71a85a4c1fb69a215dabc Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
* Diffuse and specular color for static optimizationMika Salmela2014-08-271-8/+25
| | | | | Change-Id: I2c51ba06c6af9193a70f4a268dfd2fbd6c6910b3 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
* Fix build issue with Qt 5.2.1Miikka Heikkinen2014-08-271-1/+1
| | | | | | | | | | | | | | QImage is not a QObject, and therefore QImage::Format doesn't seem to be a supported type for a Q_PROPERTY, either. At least this was the case in Qt 5.2.1. In Qt 5.3.1 this worked. In any case, worked around the issue by removing textureFormat as a property. This shouldn't be an issue, since texture cannot meaningfully be manipulated from QML anyway. Also fixed some compile warnings. Change-Id: I257c1502d3340c49c24085fb8bf2e6176d875215 Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
* Reflection API addedTomi Korpipää2014-08-261-44/+34
| | | | | | | Task-number: QTRD-3287 Change-Id: I6c06b8fe025e0f1f87be00be906cab0e1f18a19f Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
* Add alpha multiplier to QCustom3DVolume apiMiikka Heikkinen2014-08-251-0/+10
| | | | | | Change-Id: I856c4166513f6d6f7b73fd52bc46d52ab1b8fdff Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com> Reviewed-by: Mika Salmela <mika.salmela@digia.com>
* Make volume shading sample once per texture layer.Miikka Heikkinen2014-08-191-0/+12
| | | | | | Change-Id: Ia3a13e2cb8d7dcf744a55dcb827f5cb436a043c4 Reviewed-by: Mika Salmela <mika.salmela@digia.com> Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
* Implement volume rendering supportMiikka Heikkinen2014-08-181-14/+162
| | | | | | | | New subclass of QCustom3DItem, QCustom3DVolume is provided. The documentation for the example will be done in a separate commit. Change-Id: Idb3fdb0654c6bec7606ca012b75852a5a8412397 Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
* Enable camera targeting.Miikka Heikkinen2014-08-061-14/+21
| | | | | | | | | | | | | | | Also fix custom item positioning in absolute mode as it was completely broken in bars and z-coord was flipped in others. Clarified Q3DObject::position property usage, namely that it is reserved for internal use for now. Some refactoring also done. Task-number: QTRD-2567 Change-Id: I5da65b83a2f8ecf20f8fd054e59748278ef1a714 Reviewed-by: Titta Heikkala <titta.heikkala@digia.com> Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
* Fix labels and grid lines changing size when aspect ratio is changedMiikka Heikkinen2014-07-021-13/+12
| | | | | | | | | | | Since shaders needed fixing anyway for surface because of this, also implements the support for object gradients for surface, which was missing. Task-number: QTRD-2666 Task-number: QTRD-3211 Change-Id: I0c5da7fdfef308a96ec0bae4750fd22035da4e82 Reviewed-by: Mika Salmela <mika.salmela@digia.com>
* Added horizontal aspect ratio property for abstract graphsMiikka Heikkinen2014-07-011-0/+9
| | | | | | | | Value 0.0 indicates automatic scaling (the default). Task-number: QTRD-3192 Change-Id: I5e4cc1b7a03c0ba811e2ed3916a440906429af57 Reviewed-by: Mika Salmela <mika.salmela@digia.com>
* Adjust background margins based on angular labels and titleMiikka Heikkinen2014-06-301-1/+38
| | | | | | | | Also separated the vertical and horizontal background margins. Task-number: QTRD-3184 Change-Id: I988217d4df7749585dd85b5ea8f3f50254dca6ad Reviewed-by: Mika Salmela <mika.salmela@digia.com>
* Fix polar axis title positioningMiikka Heikkinen2014-06-271-3/+20
| | | | | | Task-number: QTRD-3184 Change-Id: I366f41b928e06931784c6ff74e9b6b8a52414e3f Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
* Add radialLabelOffset property for graphsMiikka Heikkinen2014-06-261-0/+6
| | | | | | | | | This property indicates where radial labels of the polar chart are drawn Task-number: QTRD-3184 Change-Id: I1500e67da5e578b90d679876130c2d56c1d08039 Reviewed-by: Mika Salmela <mika.salmela@digia.com>
* Add flipHorizontalGrid property for surfaceMiikka Heikkinen2014-06-261-7/+15
| | | | | | | | | | | | This property allows drawind the horizontal grid and axis labels on top of the graph rather than on the bottom. This is useful when surface graph is used for 2D spectrograms in orthographic mode, as otherwise the grid is covered by the surface itself. Particularly relevant for polar plots of the same. Task-number: QTRD-3184 Change-Id: I9dbcdbfc754e13af52d2cf31a1d9991ef4b241f7 Reviewed-by: Mika Salmela <mika.salmela@digia.com>
* Polar graph support, phase oneMiikka Heikkinen2014-06-261-6/+146
| | | | | | | | | | - Polar property for toggling the polar mode - Example added. Example docs will be added in another patch once all of the functionality the example needs has been implemented. - Only surface graph supports polar so far. Scatter to be added later. Change-Id: I54d36f764ac1771ac88f73a5f3a2142f2309f6e8 Reviewed-by: Mika Salmela <mika.salmela@digia.com>
* Bars: Moved bar, background and grid line drawing to separate methodsTomi Korpipää2014-06-241-4/+38
| | | | | | | + Added floor reflection support in ifdefs Change-Id: I1060aee1bc8f7a0360ad01675c36c0f1a2120f1c Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
* Fix missing axis titles with zero rotation and fixed titlesMiikka Heikkinen2014-06-061-2/+1
| | | | | Change-Id: I026578b224772fe9d96f6f7789e253d433690091 Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
* Scatter perf improvementMika Salmela2014-06-051-0/+6
| | | | | | | Task-number: QTRD-3148 Change-Id: I2c9efa84184819aaac123ee29685bc3a9e35bfe6 Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
* Clean up Tomi Korpipää2014-06-041-3/+5
| | | | | | | Task-number: QTRD-3149 Change-Id: I37ae7bc7e88b7d8a2c81585333ab87e7fcb8fcc0 Change-Id: I37ae7bc7e88b7d8a2c81585333ab87e7fcb8fcc0 Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
* Clean up renderersTomi Korpipää2014-06-031-6/+0
| | | | | | | Task-number: QTRD-3149 Change-Id: I71b9b7533ad3730d0d203c3d07e66d824b690fbb Reviewed-by: Titta Heikkala <titta.heikkala@digia.com> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
* Fix various issuesMiikka Heikkinen2014-06-021-2/+2
| | | | | Change-Id: I4a6d4775f3ca578370a9ce23491bddcb0f5486ec Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
* Added CustomLabelItemTomi Korpipää2014-05-281-12/+88
| | | | | | Task-number: QTRD-3135 Change-Id: Ie13c7ab5cbfca2eef88ed4ca17eaf46f2aeb4788 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
* Optionally show axis titles on the graphMiikka Heikkinen2014-05-271-2/+250
| | | | | | Task-number: QTRD-2961 Change-Id: I6a344156bd29fa8fb1ede0546af4d0e67e5e2db4 Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
* Added API for changing data aspect ratioTomi Korpipää2014-05-261-8/+25
| | | | | | Task-number: QTRD-3144 Change-Id: I9acd1be13083d7fbbed840882260a60f46c5f698 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
* Update custom item translation when axes change, if needed Tomi Korpipää2014-05-221-0/+16
| | | | | | | Task-number: QTRD-3129 Change-Id: If7e28778ca7fd628159d37ee74ae2afb8d941e53 Change-Id: If7e28778ca7fd628159d37ee74ae2afb8d941e53 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
* Cache ObjectHelper instancesMiikka Heikkinen2014-05-221-0/+1
| | | | | | Task-number: QTRD-2792 Change-Id: I90d83bd9b73a0f337fd26f1b92000e72b3ec0607 Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
* Added support for custom items with absolute coordinatesTomi Korpipää2014-05-211-11/+21
| | | | | | Task-number: QTRD-3122 Change-Id: Iefd4c4adad45721ed3519bdcecbbfa1e97039f08 Reviewed-by: Mika Salmela <mika.salmela@digia.com>
* Do not draw custom items outside axis ranges Tomi Korpipää2014-05-201-1/+10
| | | | | | | | Task-number: QTRD-3057 Change-Id: Icb8904fa0a1c009985ac21ee6fa51eefda81d9cc Change-Id: Icb8904fa0a1c009985ac21ee6fa51eefda81d9cc Reviewed-by: Titta Heikkala <titta.heikkala@digia.com> Reviewed-by: Mika Salmela <mika.salmela@digia.com>
* Added property for disabling shadows on custom itemsTomi Korpipää2014-05-191-1/+6
| | | | | | Task-number: QTRD-3093 Change-Id: Ia24a1bc657af1bb1a528581e1f65fb50277e6874 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
* Implement axis label autorotationMiikka Heikkinen2014-05-191-0/+8
| | | | | | Task-number: QTRD-2857 Change-Id: I158abb75272813cf7eb5d4b419e24325389d940e Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
* Optimized custom item addition/removalTomi Korpipää2014-05-191-18/+28
| | | | | | Task-number: QTRD-3056 Change-Id: I653d8aeec797b76c19d9b542391b79e9370e7501 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
* Dirty bits to custom item Tomi Korpipää2014-05-161-1/+48
| | | | | | | Task-number: QTRD-3082 Change-Id: I1503b067edcc677904ca16c1501109187809f98b Change-Id: I1503b067edcc677904ca16c1501109187809f98b Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
* Added visible flag and possibility to release ownership of custom itemTomi Korpipää2014-05-141-0/+4
| | | | | | Task-number: QTRD-3080 Change-Id: I198930c48fe9bce6a158406aff5fbf31272b9afe Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
* Added option to use orthographic projectionTomi Korpipää2014-05-141-1/+2
| | | | | | | Task-number: QTRD-3078 Change-Id: I07ebc2b7edd542cd28e405dfc80282f18b7a7314 Reviewed-by: Mika Salmela <mika.salmela@digia.com> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
* Use blending for custom items only when neededTomi Korpipää2014-05-141-5/+14
| | | | | | | Task-number: QTRD-3077 Change-Id: I2406a8fd133943379a5cb1c1c2961a419ef9315f Reviewed-by: Titta Heikkala <titta.heikkala@digia.com> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
* CustomDataItem made into a public classTomi Korpipää2014-05-121-5/+20
| | | | | | Task-number: QTRD-3055 Change-Id: I1e449df7c1bcb48fc639dbae579e2e1499c9ef2b Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
* Value axis reversing supportMiikka Heikkinen2014-05-081-0/+8
| | | | | | | Task-number: QTRD-2428 Change-Id: I51b3a1f8f974d5b72b36ee1188b7557539b9609b Reviewed-by: Titta Heikkala <titta.heikkala@digia.com> Reviewed-by: Mika Salmela <mika.salmela@digia.com>
* Fix texture cleanup.Miikka Heikkinen2014-04-281-9/+2
| | | | | | | | | Make deleteTexture also zero the pointer and do the check if deletion is needed, as those are required anyway on the caller side in most cases. Change-Id: Ia12102c97a647127230db2518c32f81322ce6743 Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
* Fixed crash on exit Tomi Korpipää2014-04-251-1/+2
| | | | | | | | Task-number: QTRD-3052 Change-Id: I05b09df72534e5eae803d58e330b2a8045f47038 Change-Id: I05b09df72534e5eae803d58e330b2a8045f47038 Reviewed-by: Titta Heikkala <titta.heikkala@digia.com>
* Color problem fixed Tomi Korpipää2014-04-241-1/+1
| | | | | | | | | | | Task-number: QTRD-3001 Changed all colors to QVector4Ds to avoid mixups with vec4 and vec3 colors in shaders. Change-Id: I8b44b4d711befca900dd35b3386881f7c31d7dd5 Change-Id: I8b44b4d711befca900dd35b3386881f7c31d7dd5 Reviewed-by: Mika Salmela <mika.salmela@digia.com>
* Add custom item support, part 2Tomi Korpipää2014-04-161-2/+118
| | | | | | | | | Task-number: QTRD-2866 + Added custom item rendering Change-Id: If24400fed7c0467d8ebbd554d6e4df3ec5a205f3 Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
* Add custom item support, part 1Tomi Korpipää2014-04-151-1/+19
| | | | | | | | | | | | | | Task-number: QTRD-2866 + Added API for adding and removing custom items + Added custom data and custom render items + Added shaders for textured objects + Added custom item rendering draft to scatter + Fixed some shaders - to be continued in part 2 Change-Id: I9735fd02fc9e86ae486cca4c06f6d7f2a4b0b7da Reviewed-by: Mika Salmela <mika.salmela@digia.com>
* Optimize multiple series rendering.Miikka Heikkinen2014-04-101-26/+57
| | | | | | | | | | | | | | Cache all series instead of just the visible ones on all graphs instead of just surface. Changes to one series now trigger data update to only the affected series, which should significantly improve performance in these cases. Task-number: QTRD-2600 Task-number: QTRD-2957 Change-Id: I6db7c689108fce8d25aace6682a193936d6f0eaf Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
* Introduce fps measurement via propertiesMiikka Heikkinen2014-04-041-29/+0
| | | | | | | Task-number: QTRD-2134 Change-Id: I181ee6c784b998886c2292b7548e16ce75d86458 Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
* Axis label dragging support, part 2Tomi Korpipää2014-04-031-0/+1
| | | | | | | | | | | Task-number: QTRD-2367 + Added emitting selection signals + Added an example about creating an input handler for axis label dragging - Snapshot for example docs to be taken Change-Id: I641f4feb9e31c32023727b1c7c695324923accc4 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>