Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Generate dot file #73

Open
hzeller opened this issue Jan 15, 2020 · 6 comments
Open

Generate dot file #73

hzeller opened this issue Jan 15, 2020 · 6 comments
Labels
enhancement New feature or request

Comments

@hzeller
Copy link
Collaborator

hzeller commented Jan 15, 2020

Low prio.

Nice to have: since we know all the dependencies, we can also generate a dot-file to create a gigantic graph using graphviz. We can use that when visualizing or explaining things.

Typically straight-forward to generate (emit all the nodes and edges, the rest happens automatically), but not clear how useful it would be though, large graphs tend to be ... large.

@hzeller hzeller added the enhancement New feature or request label Jan 15, 2020
@mithro
Copy link
Collaborator

mithro commented Jan 15, 2020

Doxygen could generate this potentially from the C++ code.

@Nic30
Copy link

Nic30 commented May 26, 2020

Do you mean the dot for class diagram or the dot for nodes described using UHDM? For visualization of hardware it is much better to use ELK as it can generate much better layered graphs.

e.g. I am using it in d3-hwschematic

@hzeller
Copy link
Collaborator Author

hzeller commented May 26, 2020

Interesting, I didn't know about ELK. That looks indeed very nice!

@Nic30
Copy link

Nic30 commented May 26, 2020

adaptagrams can do the same thing and it may better for your project as it is C++.

@hzeller
Copy link
Collaborator Author

hzeller commented Jul 6, 2020

First experiment: directly generating a graphiz output of the hierarchy as described in the yaml files without too much tweaking does not result in an overly useful output yet.
(I've left out the BaseClass to reduce arrow-clutter, but then this resulted in the ones directly extending BaseClass to show up on the right of the graph. Anyway, just an visualization experiment at this point)

model

@hzeller
Copy link
Collaborator Author

hzeller commented Sep 17, 2021

I created another dot file with the current model; Color coded obj is blue, class green and groups red. Since rendering groups as separate nodes will make it more messy, I just printed all the groups a class or object is member of in the red box.

The amount of objects and the way graphviz auto-renders the edges makes it look a bit messy; ideally the edges would just be rendered with a 'bar connect'
bar
Anyway, some tool that is more specifically suited for this hierarchical representation should be chosen. Haven't looked at the tool @Nic30 proposed above yet.

Here is a PNG of that. To see any details, you'd have to open it in a separate tab possibly.

Easier to look at as SVG (but github doesn't allow to upload as attachment, hence zipped): below attached two versions of this and a horizontal version (nicer to read, but requires more horizontal scrolling) as SVG.
left-right

left-right.svg.gz
top-bottom.svg.gz

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants