Implement TAttMarker::GetMarkerShape() method - #22977
Open
linev wants to merge 12 commits into
Open
Conversation
linev
marked this pull request as draft
July 31, 2026 13:31
linev
force-pushed
the
marker_shape
branch
2 times, most recently
from
July 31, 2026 13:55
87737ac to
e662b27
Compare
Test Results 22 files 22 suites 3d 1h 30m 48s ⏱️ For more details on these failures, see this check. Results for commit 2598179. ♻️ This comment has been updated with latest results. |
couet
approved these changes
Aug 3, 2026
Member
Author
|
It is still draft, I want to use introduced method in all other places - MacOS, GL, SVG, ... |
Better format header and implementation files
For configured marker style and size returns marker shape - dot, circle, fillcircle, polyline, fillarea, segments. Such method should be used in all graphical classes where marker should be painted
For several shapes provide alternative with triangles to correctly work in GL or with image dump. Probably for all filled shapes can add support with triangles - while simple renderer has problem to correctly fill complex polygons
These are complex markers with many lines crossing so rely on the fact that rendering engine can correctly detect fillarea is not possible. Has to be supported in all engines where they used
Replace same code, direcly cast TPoint to XPoint
Code is very similar to X11. The only difference TPoint can not be used instead GdkPoint, therefore need copy
Use scaling factor Now is not necessary to implement individual marker shapes - just 5 different shapes to cover all markers. Main advantage - adding new marker types will not require changing code in graphicals engines
Here special mode with triangles is activated It is required while GL now always capable to fill crossing lines patterns correctly
Now all variants handled in central static method.
TAttMarker::GetMarkerShape() method
Prefer triangles generation while fImage not always able to correctly fill complex polygon
Drawing of circle with semi-transparent color does not work. Before many ellipses were drawn - without filling and with line width 1 Now just create polygon and fill it. It is much better than before
linev
marked this pull request as ready for review
August 4, 2026 16:31
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Implement in
TAttMarker::GetMarkerShape()functionality to return shape points for all supported marker types.Provided are 7 different types:
kShapeDotkShapeCirclekShapeFilledCirclekShapePolyLinekShapeFilledAreakShapeSegmentskShapeTrianglesSome of the markers like
39or41always provided as triangles, other marker types converted into triangles only ifBool_t prefer_trianglesargument is true. This done for support ofGLor image dump which are not able to correctly fill complex polygon.Following classes now uses new method:
TGX11TGWin32TQuartz- removing multiple auxiliary methods fromQuartzMarker.hTGLPadPainter- removing multiple auxiliary methods fromTGLPadUtils.hTImageDump- with better workaround for filled circleWill be immediately used in
TQt6Canvas