crolando / plano

refactor & augmentation of thedmd's imgui-node-editor blueprint example to be more fleshed out
7 stars 3 forks source link

plano_properties.h #1

Closed adamsepp closed 1 year ago

adamsepp commented 1 year ago

Hi, since I'm using the standard blueprint example up to now, I wanted to have a look at your implementation too. But I'm not sure what else I need. Seems like some file are missing? For example the "plano_properties.h" ?

crolando commented 1 year ago

Hi, thanks for the report. The problem is fixed in #

This was mistakenly added to the "nodos" repository, which is my testbed for the plano middleware.

Nodo might be helpful to you when figuring out the API: it is an example showing how to define node types, register them and load/saving projects. Thanks for trying it out!

Note: there is a makefile floating around but it's out of date now. use the VS project in nodos if you want to build it.

adamsepp commented 1 year ago

Hi, sorry for the late reply... Next week I will continuing testing... Thank you very much! :-D

adamsepp commented 1 year ago

Hi, currently I found more time to dig more into ImGui node editor... Your approach with plano is very nice since I can easily register new types. Also your description in nodos how to create a running project did work directly... :)

Perhaps I need to dig more into it, but I wanted to ask you about the following topic:

Reason: I need to build a system on which I follow the path of the connected nodes and work through them...

adamsepp commented 1 year ago

Perhaps the normal approach is to pass the content to my actual application which interpretes this content then? image

crolando commented 1 year ago

Hi, I'm happy things are going well so far. To answer concisely, these are features that I would like to add to nodos in the future, as it's an obviously critical part of the project. Currently, I am working on project file save/load behaviors (which is stuffed into a branch in my casa project, but I plan on porting to nodos after the implementation is solid).

For now, you will have to write those things. It would be great if you did it in a fork of plano and nodos, or shared your code in your own project if possible.

I want to point you to the plano file "src/handle_interactions.c". around line 75, there is a statement like this:

                else if (isNodeAncestor(endNode,startNode)){
                    showLabel("x Connection would create a loop", ImColor(45, 32, 32, 180));

That "isNodeAncestor" function shows an example on how to do searches between nodes using the links.

As far as I know, you should be able to include internal.h in your project. Then when you create a context, that should expose the internals of "ContextData" in your main file. From there, bob is your uncle. You have access to s_Nodes and s_Links, and then can do all the graph analysis you need.

crolando commented 1 year ago

I can queue these features after the file list/save feature is ready. Your features are not designed, so the implementation will probably add api to Plano

adamsepp commented 1 year ago

Hi, thank you for the info and quick reply! I will most likely do a branch of your code and start to implement theese functions in another thread(s)... (I used to programm RTO systems in C for the last 10 years and C++ only since the last year... So I'm still learning obout best object oriented architectures... Just that you know...) I will update you here about the progress...

adamsepp commented 1 year ago

ok, I created a fork of nodos and will try to work on it next week... nodos experimental

crolando commented 1 year ago

That's good to hear! I wanted to prioritize writing in C specifically for outcomes like this.

adamsepp commented 1 year ago

Hi, I pushed a trial version to plano_experimental and nodo_experimental. Current approach:

crolando commented 1 year ago

Can you please raise a new open issue in this project, so we can track the "let's execute nodes" problem?
Your implementation is pretty large and frankly, it's impressive you wrote so much in a little time. I will need to dedicate a little time to read the code properly to honor your work.

crolando commented 1 year ago

@adamsepp Please continue conversations in issue https://github.com/crolando/plano/issues/2