|
Blender V5.0
|
#include <BKE_node_runtime.hh>
Inherits blender::NonCopyable, and blender::NonMovable.
Public Attributes | |
| nodes::NodeDeclaration * | declaration = nullptr |
| uint32_t | changed_flag = 0 |
| uint8_t | need_exec = 0 |
| bNode * | original = nullptr |
| rctf | draw_bounds {} |
| short | tmp_flag = 0 |
| char | iter_flag = 0 |
| int | update = 0 |
| float | anim_ofsx |
| Vector< bNodeLink > | internal_links |
| int | index_in_tree = -1 |
| bool | forward_compatible_versioning_done = false |
| bool | is_dangling_reroute = false |
| Vector< bNodeSocket * > | inputs |
| Vector< bNodeSocket * > | outputs |
| Map< StringRefNull, bNodeSocket * > | inputs_by_identifier |
| Map< StringRefNull, bNodeSocket * > | outputs_by_identifier |
| bool | has_available_linked_inputs = false |
| bool | has_available_linked_outputs = false |
| Vector< bNode * > | direct_children_in_frame |
| bNodeTree * | owner_tree = nullptr |
| int | toposort_left_to_right_index = -1 |
| int | toposort_right_to_left_index = -1 |
| Array< bNodePanelRuntime > | panels |
Run-time data for every node. This should only contain data that is somewhat persistent (i.e. data that lives longer than a single depsgraph evaluation + redraw). Data that's only used in smaller scopes should generally be stored in separate arrays and/or maps.
Definition at line 344 of file BKE_node_runtime.hh.
| float blender::bke::bNodeRuntime::anim_ofsx |
Offset that will be added to #bNode::locx for insert offset animation.
Definition at line 388 of file BKE_node_runtime.hh.
| uint32_t blender::bke::bNodeRuntime::changed_flag = 0 |
Definition at line 367 of file BKE_node_runtime.hh.
| nodes::NodeDeclaration* blender::bke::bNodeRuntime::declaration = nullptr |
Describes the desired interface of the node. This is run-time data only. The actual interface of the node may deviate from the declaration temporarily. It's possible to sync the actual state of the node to the desired state. Currently, this is only done when a node is created or loaded.
In the future, we may want to keep more data only in the declaration, so that it does not have to be synced to other places that are stored in files. That especially applies to data that can't be edited by users directly (e.g. min/max values of sockets, tooltips, ...).
The declaration of a node can be recreated at any time when it is used. Caching it here is just a bit more efficient when it is used a lot. To make sure that the cache is up-to-date, call node_declaration_ensure before using it.
Currently, the declaration is the same for every node of the same type. Going forward, that is intended to change though. Especially when nodes become more dynamic with respect to how many sockets they have.
Definition at line 364 of file BKE_node_runtime.hh.
Definition at line 412 of file BKE_node_runtime.hh.
| rctf blender::bke::bNodeRuntime::draw_bounds {} |
Calculated bounding box of node in the view space of the node editor (including UI scale).
Definition at line 376 of file BKE_node_runtime.hh.
| bool blender::bke::bNodeRuntime::forward_compatible_versioning_done = false |
Used to avoid running forward compatibility code more often than necessary.
Definition at line 397 of file BKE_node_runtime.hh.
| bool blender::bke::bNodeRuntime::has_available_linked_inputs = false |
Definition at line 410 of file BKE_node_runtime.hh.
| bool blender::bke::bNodeRuntime::has_available_linked_outputs = false |
Definition at line 411 of file BKE_node_runtime.hh.
| int blender::bke::bNodeRuntime::index_in_tree = -1 |
Eagerly maintained cache of the node's index in the tree.
Definition at line 394 of file BKE_node_runtime.hh.
| Vector<bNodeSocket *> blender::bke::bNodeRuntime::inputs |
Only valid if #topology_cache_is_dirty is false.
Definition at line 406 of file BKE_node_runtime.hh.
Referenced by blender::bke::node_tree_runtime::update_dangling_reroute_nodes(), and blender::bke::node_tree_runtime::update_socket_vectors_and_owner_node().
| Map<StringRefNull, bNodeSocket *> blender::bke::bNodeRuntime::inputs_by_identifier |
Definition at line 408 of file BKE_node_runtime.hh.
List of cached internal links (input to output), for muted nodes and operators.
Definition at line 391 of file BKE_node_runtime.hh.
| bool blender::bke::bNodeRuntime::is_dangling_reroute = false |
If this node is reroute and this reroute is not logically linked with any source except other reroute, this will be true.
Definition at line 403 of file BKE_node_runtime.hh.
Referenced by blender::bke::node_tree_runtime::update_dangling_reroute_nodes().
| char blender::bke::bNodeRuntime::iter_flag = 0 |
Used at runtime when iterating over node branches.
Definition at line 382 of file BKE_node_runtime.hh.
| uint8_t blender::bke::bNodeRuntime::need_exec = 0 |
Used as a boolean for execution.
Definition at line 370 of file BKE_node_runtime.hh.
The original node in the tree (for localized tree).
Definition at line 373 of file BKE_node_runtime.hh.
| Vector<bNodeSocket *> blender::bke::bNodeRuntime::outputs |
Definition at line 407 of file BKE_node_runtime.hh.
Referenced by blender::bke::node_tree_runtime::update_socket_vectors_and_owner_node().
| Map<StringRefNull, bNodeSocket *> blender::bke::bNodeRuntime::outputs_by_identifier |
Definition at line 409 of file BKE_node_runtime.hh.
Definition at line 413 of file BKE_node_runtime.hh.
| Array<bNodePanelRuntime> blender::bke::bNodeRuntime::panels |
Panel runtime state.
Definition at line 419 of file BKE_node_runtime.hh.
Referenced by blender::bke::node_tree_runtime::update_panels().
| short blender::bke::bNodeRuntime::tmp_flag = 0 |
Used at runtime when going through the tree. Initialize before use.
Definition at line 379 of file BKE_node_runtime.hh.
| int blender::bke::bNodeRuntime::toposort_left_to_right_index = -1 |
Can be used to toposort a subset of nodes.
Definition at line 415 of file BKE_node_runtime.hh.
| int blender::bke::bNodeRuntime::toposort_right_to_left_index = -1 |
Definition at line 416 of file BKE_node_runtime.hh.
| int blender::bke::bNodeRuntime::update = 0 |
Update flags.
Definition at line 385 of file BKE_node_runtime.hh.