Commit Graph

437 Commits

Author SHA1 Message Date
Thomas Dinges
b4df54151a 2.6 Node Muting:
* Removing check if Node is in between, so in-/output nodes can be muted as well. Useful for example if you want to temporarily mute a file output node.
2011-08-16 08:40:25 +00:00
Brecht Van Lommel
ae884d2e54 Code cleanup: add UNUSED_FUNCTION macro to avoid warning messages about unused
functions.
2011-08-15 16:18:04 +00:00
Brecht Van Lommel
a7dd264940 Nodes: make node set active function usable outside of node editor, and in doing
so fix a missing updating when activating a node with multiple node editors open.
2011-08-12 18:27:48 +00:00
Jeroen Bakker
9da70f74d3 UserPref/Node editor feature: Change the level of noodle curving.
Some people like curved lines, other hate them. This commit will let the user change the level of curving.

In UserPreferences=>Themes=>Node editor=>Noodle curving the level can be modified. Allowed range is 0-10 with the default on 5

The patch will default everything to the way blender works ATM.
File subversion has been increased otherwise older 258 files got straight lines.

The data is stored in the ThemeSpace.noodle_curving
the bezierdrawing is done in the drawnode. Also tested the Line cut tool
2011-08-04 10:05:14 +00:00
Lukas Toenne
fb738f4929 When relinking node group outputs from sockets of different type, automatically change the output to the source type. Feature request by Daniel Salazar. 2011-07-29 07:14:03 +00:00
Campbell Barton
7e466266d3 fix [#28098] Continuous Grab does not work for movement of the "Backdrop" in the Node Editor 2011-07-27 17:49:35 +00:00
Campbell Barton
48a64ffa70 more minor warning cleanups and improve error reporting if text fails to save. 2011-07-27 06:55:20 +00:00
Ton Roosendaal
ffc490cbf1 Two fixes in drop-node-on-noodle:
- Intersection code was using undefined vector
  caused wrong lines to be picked
- Code now also copes with hidden sockets. 
  If all fails, is just unhides a good socket.
2011-07-22 16:39:06 +00:00
Ton Roosendaal
eed7702c99 Small fix in drop-node-on-noodle: intersect code only did 3 edges of
node.
2011-07-22 16:02:56 +00:00
Ton Roosendaal
ea90544d65 Need some fun once a while:
On dragging a non-connected node on a noodle, it will insert it.
Functionality tweaks are possible, but it already feels non-intrusive.

Rules:
- Insertion only when a single noodle is intersecting with node.
- Default connects first matching socket type. 
- If no socket match, it connects the first.
2011-07-22 15:28:50 +00:00
Lukas Toenne
cf83cabb10 Modified behavior when replacing input links: The new target socket for the existing link is now chosen from available sockets that match the _target_ type, instead of the source type. This leads to more usable replacements, e.g. for toggling inputs on mix nodes. Still not a great solution to the mute/autoconnect problem, but a bit more intuitive for replacements. 2011-07-17 19:43:14 +00:00
Lukas Toenne
f62df587d9 Changed the default keys for duplicate-nodes-while-keeping-input-links to ctrl+shift+dkey, to avoid conflicts with alt+dkey for linked duplicates. 2011-07-17 18:17:35 +00:00
Lukas Toenne
756ef16e21 Little modification of the duplicate operator on artist request: The default behavior (shift+dkey) is now to copy nodes and internal links, but not the input links from unselected nodes. This feature is available with the alternate duplicate operator (alt+dkey). 2011-07-17 18:04:28 +00:00
Lukas Toenne
b29b0acdce Removed the autoconnect call when adding new nodes, this hardly ever gives usable results and leads to annoyed artists. 2011-07-17 16:14:52 +00:00
Campbell Barton
5792bd7cc7 cmake: cleanup include paths, some duplicates and going up some unneeded dirs. 2011-07-17 09:11:13 +00:00
Sergey Sharybin
c9ad903af2 Added notifier listener for node editor.
Now it behaves right on playback:

- Starting playback "Anim Player" button appears on header.
  It used to appear only on mouse hover before.
- Stopping playback triggers refresh on compositor, so
  actual result would be visible if image sequence/movie
  is used in nodes.
2011-07-17 08:38:04 +00:00
Jeroen Bakker
b724c7f27e Add delete with reconnect feature.
this will reconnect nodes as if the deleted node is muted.
Operation is added to the space_node node menu and to the keymap as CTRL-X

to test this just add some nodes to the space_node
select one or multiple nodes and press CTRL-X

It should reconnect the nodes as they were muted

limitations:
1. it performs a delete and reconnect per node. It does not evaluate all selected nodes as one whole
2. mute only supports Value, Vector and Color data types, so does this feature
3. not usable for nodes where input and output does not match (like colorToBW)

Where reconnect could not be preformed the links will be removed from the model.

Undo works with this delete with reconnect.
2011-07-12 18:59:54 +00:00
Jeroen Bakker
830fe8af84 Updated the indent, sorry! 2011-07-04 19:22:37 +00:00
Jeroen Bakker
e814f2c71d ====== Proposal: Nodes property windows enhancement ======
===== Situation before this patch =====

in the current situation inside the node editor there is a properties panel (press 'n'-key). This pabel displays some information about the node, backdrop and grease pencil. The UI of the property panel is typically vertical oriented. Nodes in the other hand are not oriented in a direction. Both area's are draw via the same draw function.

With some nodes this will create not user-friendly UI. Try the color-balance for instance). The 3 color circles are drawn next to each other, it would be better to draw them below each other.

When creating more complex nodes you don't want to display all handles in the node-panel and in the properties panel. For instance fine-tuning handles you only want to appear in the property panel to reduce place in the node itself.

===== Situation after this patch  =====

This patch separates the draw functions of the property panel and the node panel.
When no special draw function is created for the property panel, the draw function of the node will be used as 'fallback'

===== Impact =====

==== BKE_node.h ====

add a new uifunc (called uifuncbut) to the bNodeType struct. The definition is the same as the uifunc.

==== node_buttons.c ====

if the uifuncbut is set, call it. currently calls the uifunc method

==== drawnode.c ====

static void node_composit_set_butfunc(bNodeType *ntype). set the uifuncbut function where needed. When at the end of the method uifuncbut is still empty, set uifuncbut to the uifunc. 

===== Final note =====

! PS. this is not limited to the compositor it also works for Materials and Textures !
! PPS. For other branching creating their own node-tree. Please make sure that your uifuncbut is set NULL or a valid draw function !
2011-07-04 18:48:36 +00:00
Lukas Toenne
f2c7cb0912 When duplicating nodes in a tree, also copy the links between selected nodes, as well as input links from non-selected to selected nodes. 2011-06-30 12:37:59 +00:00
Ton Roosendaal
f69d805338 Bugfix, irc report:
Adding new material in active node didn't update the material
properties buttons.
2011-06-17 13:57:41 +00:00
Ton Roosendaal
cc2c511207 Nodes display now follow 'DPI' user pref too 2011-06-14 15:55:46 +00:00
Ton Roosendaal
e0dee9b41d Bugfix #27105
Node editor: collapsed node didn't allow to size it using the
right hand side grab thingemabobs.
2011-06-11 13:12:57 +00:00
Sergey Sharybin
a43309e8d4 Added cancel callbacks to modal operators which allocates memory
in invoke callback. This prevents unfreed memory blocks when quiting
Bledner with modal operator running.
2011-06-06 11:04:54 +00:00
Brecht Van Lommel
81982140b8 Fix #27550: texture node editor header was still showing texture datablock
selector even if there is no active texture slot or node, now it's disabled
in that case.
2011-06-01 16:17:38 +00:00
Campbell Barton
09da9d4393 cmake maintenance
blender_add_lib now takes a separate include argument to suppress warnings in system includes (mostly ffmpeg & python).
also only build wm_apple.c on apple+carbon configuration.
2011-05-31 01:15:44 +00:00
Campbell Barton
97d553c471 wrong rna access function used in node UI 2011-05-28 12:04:56 +00:00
Campbell Barton
9f766c71b0 use event->mval rather then subtracting ar->winrct.x / y from event->x / y 2011-05-20 07:40:05 +00:00
Campbell Barton
170716ca53 use BKE_area_find_region_type in place of inline loops (no functional changes). 2011-05-20 05:27:31 +00:00
Campbell Barton
5f5cdf9d00 for bug [#27358] Transform bug when transform > 500
mouse coords would with cont. grab would wrap at short.
use mouse coords as int rather then short.

this problem still happens on linux because of XTranslateCoordinates
2011-05-12 16:47:36 +00:00
Brecht Van Lommel
a2941a464b Fix #27098: missing 3d view updates when editing GLSL material nodes. 2011-05-02 12:31:09 +00:00
Campbell Barton
5440b57432 improve image sequence usability, problem was when the image didn't load there was no way to know the frame that blender was attempting to read.
added a label for image sequence images showing the image file's frame, even when not able to load, this also gives realtime feedback to the user while dragging the frame offset/start/duration buttons about so they can better understand how these settings work.
2011-05-01 14:02:40 +00:00
Campbell Barton
8fdebf24f4 harmless changes to quiet clang static check warnings.
- made EXPANDED_AGRP take bAnimContext as an argument.
- remove unneeded NULL check drawFacesColored functions.
- comment some vars which are set but not used.
2011-04-24 10:51:45 +00:00
Lukas Toenne
f69825e8e8 Color info in node editor backdrop now supports color management. 2011-04-23 08:30:28 +00:00
Campbell Barton
284a0d3610 pass even mouse coords value as const so its not edited, view3d_get_view_aligned_coordinate() could modify the event->mval. 2011-04-21 17:25:58 +00:00
Campbell Barton
f9f771cd01 converted more mixed tab/space indentations to tabs. only whitespace changes. 2011-04-21 15:53:30 +00:00
Campbell Barton
210ee1ade4 whitespace only, no functional change mixed tabs/spaces --> tabs. 2011-04-21 13:11:51 +00:00
Campbell Barton
6bb626f253 minor changes
- remove some warnings
- fix typos
- cmake allow in-source build (when WITH_IN_SOURCE_BUILD is defined)
- cmake, use an explicit list of rna files (don't glob)
2011-04-21 05:49:47 +00:00
Lukas Toenne
38a192031f Upgrade for pixel color info in image editor and compositor backdrop. Next to the RGB color values there is now a small rectangle displaying the actual color under the mouse cursor. In addition to that the HSV and luminance values are also displayed. 2011-04-20 09:49:32 +00:00
Lukas Toenne
6cb761f10c Corrected updating inside edited groups, fix for #27018. This was caused by edit updates being restricted to the actual node. Edit functions now should use the generic snode_tag_changed, which also updates all instances of the currently edited group. 2011-04-19 15:15:50 +00:00
Campbell Barton
5b920bc2ff Some strings to store ID names were too small, could cause stack corruption.
corrected these and replaced 'sizeof(((ID *)NULL)->name)-2' with 'MAX_ID_NAME-2'.
2011-04-19 06:59:49 +00:00
Daniel Salazar
a4cc295000 float value reader in compositor backdrop (Alt + LMB Drag) should be 4 decimals like in image editor 2011-04-14 20:30:54 +00:00
Campbell Barton
5c7bed92d4 fix for cmake glew includes (tested with mingw), also made qtcreator project generator work with mingw again 2011-04-06 03:02:40 +00:00
Campbell Barton
dcb26e4e47 fix [#26782] Missing settings in some texture nodes.
also rename noisebasis_2 --> noise_basis_2
2011-04-05 06:05:55 +00:00
Campbell Barton
9b9c4184c8 misc nodes & editors: floats were being implicitly promoted to doubles, adjust to use floats.
+ minor update to demo_mode
2011-03-28 17:08:33 +00:00
Lukas Toenne
fb2fd88463 Moved temporary drag operator link drawing from node tree to node space function. Otherwise these links are redrawn for each node group.
Changed selection flag used for the selected_nodes context property from SELECT to NODE_SELECT. These are just incidentally the same, but NODE_SELECT should be used for nodes.
2011-03-25 16:53:07 +00:00
Lukas Toenne
4c3dea8a2e Small tooltip change to better indicate the purpose of the node name string and moved the node label button to the top, since this is usually what user will want to edit instead of the identifier name. 2011-03-17 10:31:20 +00:00
Lukas Toenne
afd8865181 Added an optional label string to nodes. As pointed out by Sebastian Koenig, some nodes (in particular render layer nodes) need custom labels, but it is not possible to make any useful generic abbreviation. The label string can be used as a custom user-defined label in this case, without the ugly .xxx extensions needed for unique node names. When the label string is empty, the default type label will be used. 2011-03-17 10:11:12 +00:00
Lukas Toenne
6864fcba30 Small safety fix: clear temporary link list in node space when copying. 2011-03-15 19:55:45 +00:00
Lukas Toenne
24f72abf67 Fix for crashes due to links without fromnode pointers. This can happen with "unfinished" links created during the modal linking operator or when creating links from group tree inputs.
In addition don't store unfinished links in the nodetree->links list any more. This makes code a bit safer because all links in that list can be considered valid now. The temporary bNodeLinkDrag structs used by the modal linking operator are now also stored in a list in SpaceNode, so these links can be drawn too (this separation also allows different display of temporary links, e.g. currently they are drawn on top of all nodes).
2011-03-13 22:07:55 +00:00