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

Add new `Graph` widget along with helper `Node` container widget #1104

Merged
merged 2 commits into from Dec 12, 2017

Conversation

Projects
None yet
2 participants
@mitchmindtree
Copy link
Member

mitchmindtree commented Dec 9, 2017

See #1098 for details.

TODO:

  • Add edge add/remove events (see enum EdgeEvent).
  • Add bezier curve widgets and use them as nicer edges.
  • Improve drag behaviour (see #1088).
  • Add ability to passthrough "drag-ability".
  • Improve example to demonstrate different widgets for each node.
  • Add click-and-drag camera movement.

Closes #1098.

A pic of the example in its current state:

screenshot from 2017-12-09 14-10-07

@mitchmindtree

This comment has been minimized.

Copy link
Member Author

mitchmindtree commented Dec 9, 2017

Travis seems to be failing due to a rustc nightly bug - relevant glium issue here, not sure if there's a related rustc issue yet.

mitchmindtree added a commit to mitchmindtree/conrod that referenced this pull request Dec 11, 2017

Update to glium 0.19, winit 0.9
This fixes the `Graph` widget PR PistonDevelopers#1104 which has some issues with the
nightly compiler in release mode. Also picks up a bunch of new winit
updates (see their changelog).

mitchmindtree added a commit to mitchmindtree/conrod that referenced this pull request Dec 11, 2017

Update to glium 0.19, winit 0.9
This fixes the `Graph` widget PR PistonDevelopers#1104 which has some issues with the
nightly compiler in release mode. Also picks up a bunch of new winit
updates (see their changelog).

mitchmindtree added some commits Dec 9, 2017

Add new `Graph` widget along with helper `Node` container widget
See #1098 for details.

TODO:

- Add edge add/remove events (see `enum EdgeEvent`).
- Add bezier curve widgets and use them as nicer edges.
- Improve drag behaviour (see #1088).
- Add ability to passthrough drag.
- Improve example to demonstrate different widgets for each node.
- Add click-and-drag camera movement.

Closes #1098.

@mitchmindtree mitchmindtree force-pushed the mitchmindtree:graph branch from 90a6547 to b248aa4 Dec 12, 2017

@mitchmindtree

This comment has been minimized.

Copy link
Member Author

mitchmindtree commented Dec 12, 2017

The nightly glium issue above has been addressed with #1107 but travis seems is still failing due to a bug in rustdoc nightly rust-lang/rust#46675. Going to merge this as is for now and address the TODO in the original comment in future PRs.

@mitchmindtree mitchmindtree merged commit 92ee922 into PistonDevelopers:master Dec 12, 2017

1 check was pending

continuous-integration/travis-ci/pr The Travis CI build is in progress
Details

mitchmindtree added a commit to mitchmindtree/conrod that referenced this pull request Dec 12, 2017

Update to rusttype 0.3. Publish version 0.57.
Breaking changes include:

- Update to rusttype 0.3.
- Update to glium 0.19, winit 0.9 PistonDevelopers#1107.
- Add new `Widget::is_over` method for more precise picking PistonDevelopers#1101.

Other changes include:

- Add `Graph` widget (WIP) PistonDevelopers#1104.
- Add `Oval` subsections and more point/triangle iterators PistonDevelopers#1100.

mitchmindtree added a commit to mitchmindtree/conrod that referenced this pull request Dec 12, 2017

Update to rusttype 0.3. Publish version 0.57.
Breaking changes include:

- Update to rusttype 0.3.
- Update to glium 0.19, winit 0.9 PistonDevelopers#1107.
- Add new `Widget::is_over` method for more precise picking PistonDevelopers#1101.

Other changes include:

- Add `Graph` widget (WIP) PistonDevelopers#1104.
- Add `Oval` subsections and more point/triangle iterators PistonDevelopers#1100.

@mitchmindtree mitchmindtree referenced this pull request Jan 2, 2018

Closed

node graph editor, #1117

@dobkeratops

This comment has been minimized.

Copy link

dobkeratops commented Jan 3, 2018

just curious what the interface to this sort of thing could be like in rust -
to throw some ideas out there

  • would it be possible for nodes to be trait objects - views in the editor of application data.. e.g. the app implements trait conrod::GraphNode{.. fn on_connect().. etc} on shared (Rc? Arc?) objects
  • or would you rather use rust's macro system/enums to efficiently roll notifications that flow back and forth between app/conrod to maintain coherence between application data and the edited node view

the use cases I have in mind for a node-chart system:-

  • shaders , procedural textures (it would be great to have a custom renderer for the node i.e. to show what that node's output looks like,
  • state machines (nodes = states, edges = transitions)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.