Commit Graph

47 Commits

Author SHA1 Message Date
Juha
e65a102527 Remove unit Laz_AVL_Tree, a copy of unit AVL_Tree. Not needed with FPC 3.2.x. 2023-07-07 17:39:03 +03:00
Martin
fcd8b1721b LvlGraph: Speed up TMinXGraph. In StoreAsBest only update nodes that changed. This massively speeds up big graphs with several thousand (including hidden) nodes, were StoreAsBest did always copy all those nodes. 2022-01-10 14:33:03 +01:00
Martin
42d6e0bc85 LvlGraph: Ensure work was done, or quit. No endless loop. 2022-01-10 14:33:03 +01:00
Martin
abb908d498 LvlGraph: Reduce "zero-run" switching in favour of shuffling. Do one final big zero-run, if needed. 2022-01-10 14:33:03 +01:00
Martin
f33a15738a LvlGraphOptions: TMinXGraph refactor. Store only nodes that need to be switched in SameSwitchDiffPairs (SwitchDiff > 0 would create new crossings). 2022-01-10 14:33:03 +01:00
Martin
52679121ad LvlGraph: Only shuffle small bits of the graph. This allows to continue on the existing result, but can switch nodes not found by the normal switching. 2022-01-10 14:23:23 +01:00
Martin
b85a49c626 LvlGraph: Fix painting overlays 2022-01-10 14:23:23 +01:00
Martin
46043554e8 TLvlGraph: Refactor MinimizeOverlappings 2022-01-10 14:23:14 +01:00
Martin
a29a791b52 LvlGraph: Add Zoom 2022-01-10 14:11:12 +01:00
Martin
aaa7322d14 LvlGraph: Compute paint-pos once, outside of Paint method. 2022-01-10 14:11:11 +01:00
juha
9219ea531d Move unit GraphMath from LCL to LazUtils. It has no dependencies to GUI.
git-svn-id: trunk@64303 -
2020-12-29 22:56:40 +00:00
mattias
ab4a5849a6 lazcontrols: clean up
git-svn-id: trunk@62109 -
2019-10-22 15:10:30 +00:00
martin
6bb1920582 TLvlGraph: Reduce side effects of curved edge-style on continuous lines.
git-svn-id: trunk@60890 -
2019-04-07 19:52:09 +00:00
martin
98631703d8 TLvlGraph: Straighten the graph. Reduce the up/down movement of edges.
Center Nodes (incl. hidden nodes) according to their siblings in the next/prev level.

git-svn-id: trunk@60889 -
2019-04-07 19:52:08 +00:00
martin
72d4e6d824 TLvlGraph: Option to limit the maximal height of a Level. (height = count of visible / user-created nodes)
git-svn-id: trunk@60888 -
2019-04-07 19:52:06 +00:00
martin
e9367141f8 TLvlGraph: Improve MinimizeCrossings. Switch pairs even if they have SwitchDiff=0
A pair with "SwitchDiff=0" may block surrounding nodes from being switched. After switching, one of the changed neighbouring pairs may be able to reduce further crossings.

git-svn-id: trunk@60887 -
2019-04-07 19:52:05 +00:00
martin
4e2c794836 TLvlGraph: De-duplicate call to MinimizeOverlappings. Incompatible change of OnMinimizeOverlappings:
- added Handled param
- made all param into "var param", so the callback can adjust them

git-svn-id: trunk@60886 -
2019-04-07 19:52:03 +00:00
martin
d83b4c7a53 TLvlGraph: Minimize length of edges
git-svn-id: trunk@60884 -
2019-04-07 19:52:00 +00:00
martin
8924c68247 TLvlGraph: Reduce amount of BackEdges
git-svn-id: trunk@60883 -
2019-04-07 19:51:59 +00:00
martin
6fac9c5998 TLvlGraph: Find unconnected sub-graphs
git-svn-id: trunk@60882 -
2019-04-07 19:51:57 +00:00
martin
19cfa8541b TLvlGraph: Improve circular edges between adjacent Levels
git-svn-id: trunk@60881 -
2019-04-07 19:51:56 +00:00
martin
075f1ff8bc TLvlGraph: Enable routing of BackEdge (circlular edges going backward)
git-svn-id: trunk@60880 -
2019-04-07 19:51:54 +00:00
martin
13a45fd25f TLvlGraph: Fix correctly apply NodeGapBelow. Depends on node above visible.
git-svn-id: trunk@60879 -
2019-04-07 19:51:53 +00:00
martin
5b8832a7b0 TLvlGraph: Adjust node in/out-weights, if edge is destroyed.
git-svn-id: trunk@60878 -
2019-04-07 19:51:52 +00:00
martin
7a5bb3650c TLvlGraph: Avoid crash on empty level
git-svn-id: trunk@60877 -
2019-04-07 19:51:50 +00:00
martin
a807d6cb5a TLvlGraph: fixed hint for 1-to-1 edge
git-svn-id: trunk@60876 -
2019-04-07 19:51:48 +00:00
martin
22a3926b27 TLvlGraph: disabled left-over debug-define
git-svn-id: trunk@60875 -
2019-04-07 19:51:47 +00:00
wp
832ce1039a LazControls: Make TCustomLvlGraphControl respect property Color when painting its background.
git-svn-id: trunk@55993 -
2017-10-07 08:47:58 +00:00
wp
4803801696 LazControls: Add new property CaseSensitive to TLvlGraph (http://www.lazarusforum.de/viewtopic.php?f=18&t=11108).
git-svn-id: trunk@55990 -
2017-10-06 10:57:57 +00:00
ondrej
94b65e57e9 lazcontrols: lvlgraphctrl: high-DPI. Issue #31781
git-svn-id: trunk@54929 -
2017-05-14 15:25:16 +00:00
juha
e800a738ad Copy AVL_Tree from FPC trunk and replace classes in AvgLvlTree and in CodetoolsStructs with it.
The unit in FPC packages will be used directly later.

git-svn-id: trunk@54524 -
2017-04-05 08:34:48 +00:00
mattias
ac5b299301 lazcontrols: TLVLGraphControl initial size, bug #31344
git-svn-id: trunk@54081 -
2017-02-03 16:57:48 +00:00
ondrej
070c78ff20 lazcontrols: move design code from LazControls into LazControlDsgn package
git-svn-id: trunk@52041 -
2016-03-24 07:05:48 +00:00
juha
abe573b42d Initialize variables based on compiler warnings around Lazarus and libs. Contains ToDo items.
git-svn-id: trunk@48481 -
2015-03-24 17:52:23 +00:00
mattias
5bca3443b2 lazcontrols: TCustomLvlGraphControl: use theme
git-svn-id: trunk@46889 -
2014-11-19 16:33:36 +00:00
mattias
e0d5158221 lazcontrols: TLvlGraphControl: accept child controls in designer
git-svn-id: trunk@44214 -
2014-02-23 18:45:22 +00:00
paul
6f63e5d1ef lazcontrols: use FPC resources for component images
git-svn-id: trunk@43037 -
2013-09-29 10:47:28 +00:00
mattias
f07d4394eb lazcontrols: less hints
git-svn-id: trunk@41429 -
2013-05-27 09:09:30 +00:00
juha
ecd140c985 Improve license headers in sources, part 2. Refer to details about license, not copyright. Remove jargon about lack of warranty, it is covered in license already.
git-svn-id: trunk@41389 -
2013-05-25 09:22:25 +00:00
mattias
9f28f08acd lazcontrols: lvlgraph: fixed mem leak
git-svn-id: trunk@40802 -
2013-04-14 12:09:05 +00:00
mattias
4470a5e9f0 lazcontrols: lvlgraph: hint for nodes
git-svn-id: trunk@40751 -
2013-04-08 11:41:07 +00:00
mattias
e287d845f0 lazcontrols: lvlgraph: added GetVisibleSourceNodes, GetVisibleTargetNodes
git-svn-id: trunk@40750 -
2013-04-08 10:52:02 +00:00
mattias
1531418952 lazcontrols: tlvlgraph: faster destroy
git-svn-id: trunk@40746 -
2013-04-08 07:57:48 +00:00
mattias
b1bf50dbfc lazcontrols: tlvlgraph: fixed crash when freing while node is selected
git-svn-id: trunk@40744 -
2013-04-07 22:03:24 +00:00
mattias
7b772d4766 lazcontrols: lvlgraph: fixed singleselect, added property Selected
git-svn-id: trunk@40609 -
2013-03-21 20:41:04 +00:00
mattias
446f84c90a lazcontrols: register TLvlGraphControl
git-svn-id: trunk@40605 -
2013-03-21 19:41:41 +00:00
mattias
bd90241752 lazcontrols: added TLvlGraphControl
git-svn-id: trunk@40584 -
2013-03-18 18:50:49 +00:00