4progress.tex 4.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. \section{Features}\label{sec:features}
  2. The following features are either planned (\planned), under construction (\progress) or done (\done):
  3. \begin{itemize}
  4. \item[\done] Reading a graph from an input file as described in section~\ref{sec:inputFileFormat}.
  5. \item[\done] Creating random graphs for testing purposes.
  6. \begin{itemize}
  7. \item[\done] Saving those randomly created graphs.
  8. \end{itemize}
  9. \item[\done] Drawing a graph with specified node sizes and positions.
  10. \item[\done] Running the node placement algorithm by Brandes and Köpf~\cite{brandes_fast_2001}.
  11. \begin{itemize}
  12. \item[\done] Calculating the conflicts between edges.
  13. \begin{itemize}
  14. \item[\done] Differentiating between dummy nodes and non-dummy nodes.
  15. \end{itemize}
  16. \item[\done] Calculating the blocks.
  17. \item[\done] Compacting the layout.
  18. \item[\done] Combining the layouts.
  19. \end{itemize}
  20. \item[\done] Illustrating the progress while the algorithm is running in the form of
  21. \begin{itemize}
  22. \item[\done] Drawing the nodes at their current position.
  23. \begin{itemize}
  24. \item[\done] Hovering the mose over a node to highlight it in all layouts.
  25. \item[\done] Drawing the nodes in the color of their blocks.
  26. \item[\done] Drawing a colored background to show the class assignments.
  27. \item[\done] Drawing dummy nodes differently from other nodes.
  28. \end{itemize}
  29. \item[\done] Drawing the edges just as plain straight lines.
  30. \begin{itemize}
  31. \item[\done] Drawing the conflicted edges in a different color.
  32. \end{itemize}
  33. \item[\planned] Drawing the edges of the block graph (yet another color, low priority).
  34. \item[\done] Drawing the four extremal layouts and the combined layout separately.
  35. \begin{itemize}
  36. \item[\done] Optionally, drawing the only the extremal layout the algorithm is currently working on.
  37. \end{itemize}
  38. \item[\done] Showing pseudocode and the position where the algorithm currently is.
  39. \begin{itemize}
  40. \item[\done] Clicking on the pseudocode to set a breakpoint at (not \reserved{goto}) a specific location.
  41. \item[\done] Customizing the font size of the code.
  42. \end{itemize}
  43. \item[\done] Showing a legend to explain the shapes and colors.
  44. \item[\done] Showing tooltips when hovering over code lines and nodes in the graph that show the state of the variables.
  45. \end{itemize}
  46. \item[\done] Running the algorithm step by step manually.
  47. \item[\done] Running the algorithm step by step with configurable delay (\enquote{automatic execution}).
  48. \item[\done] Running the algorithm only on the expanded parts of the source code (\enquote{step overrun}).
  49. \begin{itemize}
  50. \item[\done] Right clicking the code to expand or collapse all lines up to a specified level.
  51. \end{itemize}
  52. \item[\done] Using debugger-like commands such as \enquote{step into}, \enquote{step over}, \enquote{step out}.
  53. \item[\done] Running the algorithm backwards, both manually and automatic, using \enquote{step backwards into}, \enquote{step backwards over}, \enquote{step backwards out}.
  54. \item[\done] Adding buttons and other graphical elements to support the user interface (low priority, see figure~\ref{fig:sketch}).
  55. Currently there is only keyboard input (cf.\ section~\ref{sec:userInterface}).
  56. \begin{itemize}
  57. \item[\done] Displaying the buttons.
  58. \item[\done] Making all the buttons work.
  59. \end{itemize}
  60. \item[\done] Working with hierarchical graphs.
  61. \item[\done] Scaling the display with the (adjustable) window size.
  62. \item[\planned] Working with disconnected graphs (cf.\ section~\ref{sec:assumptions}), either by modifying the algorithm or by processing the connected components one by one (low priority).
  63. \item[\done] Creating ElkNode~\cite{noauthor_elk:_2018} objects from LayeredGraphNode (\ref{sec:graph}) objects.
  64. \item[\planned] Creating LayeredGraphNode (\ref{sec:graph}) objects from ElkNode~\cite{noauthor_elk:_2018} objects (low priority).
  65. \end{itemize}
  66. \section{Known Issues}\label{sec:knownIssues}
  67. Only the most important unsolved issues are listed here.
  68. For a complete list, see \url{http://gogs.koljastrohm-games.com/GraphDrawer/NodeShuffler/issues}.
  69. \begin{itemize}
  70. \item[\done] The most important issues were solved.
  71. \end{itemize}