- Use alt modifier to drag values faster
- Add 'Show math string' node
- Pre-emptively clip rendering to screen size (which should make rendering faster when zoomed in)
- Easier packaging for Debian (thanks @pfelecan)
- Flatter icon (thanks, @ApostolosB)
- Tab and shift-tab now switch between datums like they used to (before 0.9.1)
- HSB color node is no longer black by default
- Fix extra images being drawn on load
- 'Hide UI' menu item actually does what it says
This release has relatively few user-facing features, but should make the lives of our Linux packaging volunteers easier.
There are also a host of bugfixes in
sb.ui (which contains a set of immediate-mode UI calls that can be placed in
- Building now uses
qmake, which is much simpler
sb.uifunctions now take an optional
keyargument to disambiguate
sb.uishapes was not undoable; now, it is.
- Correct positions are passed into controls with absolute drag callbacks
- Fixed a bug where you could end up with unparented control instances
This release adds support for nested graphs!
The UI is also rewritten, pretty much from scratch. It implements the same
functionality in fewer lines of code and should be more robust in keeping the
graph and UI synched.
You can now add a subgraph by selecting
Graph from the
In its parent graph, a subgraph looks just like a script node:
The three icons open up
- The subgraph (as an editable graph)
- A single 3D viewport showing the subgraph
- A set of four 3D viewports showing the subgraph
Within the subgraph, you can add Inputs and Outputs from the
These inputs and outputs are strongly typed and show up as floating Datums:
- Unified undo / redo framework (should be more robust)
- Drag / drop targets are now larger (thanks, @awgrover)
- Local datum looking with
- Trying to export at resolution 0 now prints an error message
- Fixed an edge case where undoing a connection didn't restore original text
- Fixed transparent windows on Wayland (thanks, @ApostolosB)
- Parsing long expressions doesn't fail
QGestureManagercrash (thanks, Qt 5.5)
This release has a new f-rep parser and a new graph engine!
Not much has changed on the user-facing side of things, but the internals are much spiffier (and will be easier to build on in the future).
In this rewrite, a second way of expression math was added: infix notation (a.k.a. the way that most people write math). For example, instead of writing
you can write
=pow(X, 2) + pow(Y, 2) - 1;
= and trailing
; indicate to the parser that this is an infix string.
For examples of this new syntax, check out the [cylinder wrap (https://github.com/mkeeter/antimony/blob/develop/py/fab/shapes.py#L804-L824) function.
New graph engine
The graph engine has been rewritten from the ground up as a stand-alone library (though its design is optimized for Antimony's use-case). It no longer uses Qt signals and slots (or at all!), preferring the STL and C++11.
There's a slick re-evaluation optimization: when an upstream object changes, the engine properly sequences downstream update calls to minimize the number of times scripts and datums get re-evaluated. In practice, I've seen a 5x speedup on very large graphs.
Some of the changes made here are potentially breaking. There's a transparent migration path from older files; feel free to report bugs if it fails for you.
These changes will be find-and-replaced when older files are loaded, so things should Just Work in most cases.
fab.uinamespace has been renamed
metaobject (which contains export functions) has been renamed
fab.colorobject has been renamed
It's no longer legal to connect an output datum to an input in the same script. Previously, this was legal (but a bad idea).
Datums of type
str must have their expressions quoted. Previously, there was a magic check to auto-quote them if evaluation failed.
Returnkey acts like tab when editing datums in an inspector.
- Unary operators (rotate, scale, etc) preserve shape color.
- More information is displayed in viewport (thanks, @joshuashort)
- User data directory is searched for nodes (thanks, @astronouth7303)
- Gradients are calculated exactly (improves rendering quality).
right_trianglenow supports negative widths and heights
- Keyboard arrows (up and down) adjust datum values in inspectors.
arctan2operator is now available in f-reps
- Fun new nodes: volume-filling gyroids!
.sbextension is now added on Linux.
- UTF-8 is used regardless of locale settings.
Thanks to the following Github users for their contributions, large and small: