Commit Graph
100 Commits
Author SHA1 Message Date
Ian Gulliver 6e82a8a78b Group background 2019-07-09 16:51:26 +00:00
Ian Gulliver 236585f3fb Lines from different pairs running together is really bad 2019-07-09 16:44:07 +00:00
Ian Gulliver 042fa66a1d Avoid group label text with lines 2019-07-09 16:43:33 +00:00
Ian Gulliver 130a208bfc Swap light and dark backgrounds to add offset by preserve contrast 2019-07-09 16:30:42 +00:00
Ian Gulliver 898e234171 Slight background color for nodes 2019-07-09 06:08:50 +00:00
Ian Gulliver 97ada9c2ff Fix diagonal cost 2019-07-09 06:01:10 +00:00
Ian Gulliver 3f015a3540 Encourage link merging 2019-07-09 05:55:04 +00:00
Ian Gulliver cda3cad6f9 Try to preserve pagerank left-to-right flow 2019-07-09 05:36:32 +00:00
Ian Gulliver d4f90eb91d Allow lines to cross but not travel together 2019-07-09 05:24:11 +00:00
Ian Gulliver 91afac2ecc Allow lines to or from the same node to overlap 2019-07-09 04:57:52 +00:00
Ian Gulliver 81540590ef Remove some cruft weights that aren't providing value 2019-07-09 04:29:02 +00:00
Ian Gulliver a68471d1da Draw directional arrows 2019-07-09 04:19:09 +00:00
Ian Gulliver 311c32b2c5 Try to stack like nodes 2019-07-08 03:00:31 +00:00
Ian Gulliver 83ce35c2dd Nevermind, helper function 2019-07-08 02:41:27 +00:00
Ian Gulliver df811ec7fa Pass vector to distanceToWeight, remove some useless affinities 2019-07-08 02:40:43 +00:00
Ian Gulliver bb45fba08f Minimum graph size, center smaller graph 2019-07-08 02:35:40 +00:00
Ian Gulliver d2ec4d45a2 Add TODO 2019-07-08 02:24:23 +00:00
Ian Gulliver abc4b2ce0d Plan shortest links first 2019-07-07 23:49:42 +00:00
Ian Gulliver d3374af802 Add cost to diagonals, actually count cost for the midpoint 2019-07-07 23:39:29 +00:00
Ian Gulliver 119f879479 Very fast bidirectional search for links 2019-07-07 22:47:23 +00:00
Ian Gulliver 6790bf06fd Just stop when we reach the goal, since we always find a min-cost path 2019-07-07 22:32:35 +00:00
Ian Gulliver d0856de6ef Remove getDirect() 2019-07-07 22:30:49 +00:00
Ian Gulliver 975f40b1c4 Switch from sorted array to minheap 2019-07-07 22:28:38 +00:00
Ian Gulliver 39a3d20e73 Util cleanup 2019-07-07 21:47:16 +00:00
Ian Gulliver 7a2ac17344 Simulated minheap 2019-07-07 21:45:15 +00:00
Ian Gulliver 9d84177b78 Fix todo 2019-07-07 21:36:39 +00:00
Ian Gulliver f6dba7bfa7 include lines when finding total size 2019-07-07 21:31:59 +00:00
Ian Gulliver ab28ef5909 Penalize link lines crossing over each other 2019-07-07 21:27:55 +00:00
Ian Gulliver d53e3260a8 Add LayoutLink, start with BFS for line drawing 2019-07-06 20:59:27 +00:00
Ian Gulliver 70b0e88f0d Short-circuit layout evaluation 2019-07-05 16:41:12 +00:00
Ian Gulliver 8857a7dfe5 Simplify nodesByPos fixup 2019-07-05 16:23:05 +00:00
Ian Gulliver 29babaf1e0 Create StringMap 2019-07-05 16:18:22 +00:00
Ian Gulliver 396436aa01 Make LayoutGroup.moveBy() linear time 2019-07-05 06:10:41 +00:00
Ian Gulliver 9331f7b101 Don't build an unused map 2019-07-05 05:51:45 +00:00
Ian Gulliver 37002541d6 Avoid nodesByPos corruption during LayoutGroup.restorePos() due to ordering 2019-07-05 05:50:03 +00:00
Ian Gulliver e26463047a Working, basic line drawing 2019-07-05 04:59:04 +00:00
Ian Gulliver 6543e36378 Contained, auto-resize group labels 2019-07-05 04:09:24 +00:00
Ian Gulliver b4a072c8da Disable some useless interactions 2019-07-04 07:02:05 +00:00
Ian Gulliver 94f28f00cd Tweaks to group border margin 2019-07-04 06:48:43 +00:00
Ian Gulliver b86994093b Draw group borders 2019-07-04 06:42:05 +00:00
Ian Gulliver 9a4e90de51 Drawing protocol for line and group 2019-07-04 06:15:39 +00:00
Ian Gulliver db86cb83d5 Switch to CSS variables for line color 2019-07-04 05:46:00 +00:00
Ian Gulliver 353a209ea1 Fix addLine() 2019-07-04 04:40:46 +00:00
Ian Gulliver 22960e57b0 Remove broken graphviz export 2019-07-03 22:27:40 +00:00
Ian Gulliver 5591ec6f54 Worker pool instead of a single worker 2019-07-03 22:23:41 +00:00
Ian Gulliver 3d0d0d5fd0 render in worker thread 2019-07-03 22:10:36 +00:00
Ian Gulliver 27411817b1 Optimize setTension() CPU usage 2019-07-03 20:00:05 +00:00
Ian Gulliver b066001423 Fix node drops during LayoutGroup movement 2019-07-03 19:33:10 +00:00
Ian Gulliver 0f73c595f4 Avoid useless layout on blur 2019-07-03 18:38:08 +00:00
Ian Gulliver b4316a1eb5 Actually draw! 2019-07-03 18:35:24 +00:00
Ian Gulliver dcc8981693 Refactor checkin: drawing (but not iterating?) 2019-07-03 18:27:32 +00:00
Ian Gulliver b91b92eef3 Broken, but checkpoint editor/graph/layout split 2019-07-03 18:13:11 +00:00
Ian Gulliver 4cc0b09d9b Layout checkout, fix TODO in Collection 2019-07-03 03:36:48 +00:00
Ian Gulliver ccfec376ce Pull out the temporary render hook 2019-07-03 03:24:15 +00:00
Ian Gulliver 4855cdb626 Split classes out of Graph.js 2019-07-03 03:22:42 +00:00
Ian Gulliver df432eeeba Move (copy, so far) all the digraph code in Graph 2019-07-03 03:19:23 +00:00
Ian Gulliver 0daf666fee Redraw graph on all changes 2019-07-03 01:51:13 +00:00
Ian Gulliver 5824f516b0 Split into file-per-class 2019-07-03 01:42:17 +00:00
Ian Gulliver 275c64c00b Add SVG-based line drawing 2019-07-02 07:05:22 +00:00
Ian Gulliver fbbe368d6b Allow subgraphs to move as a unit 2019-07-02 03:21:26 +00:00
Ian Gulliver cafdad54ef Allow moving full groups 2019-07-02 02:52:06 +00:00
Ian Gulliver 4b559a72fc Make iterate() work entirely in terms of offsets 2019-07-02 00:50:29 +00:00
Ian Gulliver 8ad5ad7a5b Start moving functions into Node 2019-07-02 00:23:06 +00:00
Ian Gulliver e685b85b18 Only iterate/reorigin on structure changes 2019-07-01 23:02:45 +00:00
Ian Gulliver 067b9c39fe Add at least one grid space for each link 2019-07-01 22:53:03 +00:00
Ian Gulliver c9c5355b58 Switch to absolute total tension, rather than sum of vectors. 2019-07-01 22:47:23 +00:00
Ian Gulliver 8b29a656bc Larger node font size 2019-07-01 21:35:22 +00:00
Ian Gulliver 42a024da01 Center grid 2019-07-01 21:25:38 +00:00
Ian Gulliver 21dc0b17be Fix initial positions for groups 2019-07-01 21:18:26 +00:00
Ian Gulliver 1dd861b5f7 Only recompute the graph on real structure changes 2019-07-01 21:09:27 +00:00
Ian Gulliver e1b654e16c Fix resize, centering 2019-07-01 20:57:22 +00:00
Ian Gulliver 207a9f7f8f Draw boxes, set font size 2019-07-01 20:53:20 +00:00
Ian Gulliver ae771b554b vi keys, link moves to "i" 2019-07-01 20:29:34 +00:00
Ian Gulliver a0bfb28106 Visual overhaul, dark mode only 2019-07-01 20:27:51 +00:00
Ian Gulliver efdf06c2fc Initial positions consider subgraphs, link weighting is directional 2019-07-01 17:16:29 +00:00
Ian Gulliver d448fa47ac Revert "Switch back to local weighting, so we can do direction weights"
This reverts commit e284b76718.
2019-07-01 16:24:46 +00:00
Ian Gulliver e284b76718 Switch back to local weighting, so we can do direction weights 2019-07-01 16:11:04 +00:00
Ian Gulliver 9f71a996cf Separate subgraphs. Be more aggressive with offsets to try. 2019-07-01 05:24:40 +00:00
Ian Gulliver ee6ad975bd Bucket by subgraph 2019-07-01 05:10:34 +00:00
Ian Gulliver 8ab4b35de8 Make affinity directional again, balance test graph perfectly with constant
twiddling
2019-07-01 04:37:32 +00:00
Ian Gulliver bb3e2ab577 Use total system tension, fix calculation of distance to weight 2019-07-01 03:57:48 +00:00
Ian Gulliver 2fb473e396 Groups repel non-members 2019-07-01 00:45:40 +00:00
Ian Gulliver c23aa378a0 Make distance -> weight conversion modular 2019-06-30 04:36:00 +00:00
Ian Gulliver 8c785a3c7a Working iterative spring model 2019-06-30 02:17:02 +00:00
Ian Gulliver 40d3dddaae Bit more modularization 2019-06-28 17:12:44 +00:00
Ian Gulliver 8463ab0287 Affinity setup and force vector calculation 2019-06-27 04:37:54 +00:00
Ian Gulliver 6c3f2aa09c Fix typo 2019-06-26 19:39:32 +00:00
Ian Gulliver c8cf54350d Draw nodes on the grid 2019-06-26 18:27:52 +00:00
Ian Gulliver 8a458cc4ba Build a grid with proper rows/columns and some aspect ratio sanity 2019-06-26 18:18:21 +00:00
Ian Gulliver 43310a1357 Clean up use of "targets" 2019-06-26 16:50:03 +00:00
Ian Gulliver f6085d0131 Make scroll behavior way more idiomatic 2019-06-26 16:46:01 +00:00
Ian Gulliver d6e34a9506 Move graph to [0,0] origin 2019-06-26 16:44:12 +00:00
Ian Gulliver d1cac0f3af Set initial node positions 2019-06-26 04:44:23 +00:00
Ian Gulliver 64d60ac5c8 Less padding, less width, more outline 2019-06-26 04:25:49 +00:00
Ian Gulliver f063d527e2 Page rank for nodes, to be used for main-axis layout. 2019-06-25 23:34:18 +00:00
Ian Gulliver c1c0473e6a Working graphviz export as a handy reference 2019-06-25 20:23:41 +00:00
Ian Gulliver 59ffc10f5b Start of graphviz export 2019-06-25 19:43:32 +00:00
Ian Gulliver 112a493d14 Don't draw focus based on missing group/link labels. 2019-06-25 19:06:00 +00:00
Ian Gulliver 6021c1b5cc Don't proceed to next node on escape 2019-06-25 17:57:46 +00:00
Ian Gulliver dc525cb638 Persistence across reloads 2019-06-25 17:48:40 +00:00