|
Blender V4.5
|
#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 325 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 369 of file BKE_node_runtime.hh.
| uint32_t blender::bke::bNodeRuntime::changed_flag = 0 |
Definition at line 348 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 345 of file BKE_node_runtime.hh.
Definition at line 393 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 357 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 378 of file BKE_node_runtime.hh.
| bool blender::bke::bNodeRuntime::has_available_linked_inputs = false |
Definition at line 391 of file BKE_node_runtime.hh.
| bool blender::bke::bNodeRuntime::has_available_linked_outputs = false |
Definition at line 392 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 375 of file BKE_node_runtime.hh.
| Vector<bNodeSocket *> blender::bke::bNodeRuntime::inputs |
Only valid if #topology_cache_is_dirty is false.
Definition at line 387 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 389 of file BKE_node_runtime.hh.
List of cached internal links (input to output), for muted nodes and operators.
Definition at line 372 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 384 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 363 of file BKE_node_runtime.hh.
| uint8_t blender::bke::bNodeRuntime::need_exec = 0 |
Used as a boolean for execution.
Definition at line 351 of file BKE_node_runtime.hh.
The original node in the tree (for localized tree).
Definition at line 354 of file BKE_node_runtime.hh.
| Vector<bNodeSocket *> blender::bke::bNodeRuntime::outputs |
Definition at line 388 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 390 of file BKE_node_runtime.hh.
Definition at line 394 of file BKE_node_runtime.hh.
| Array<bNodePanelRuntime> blender::bke::bNodeRuntime::panels |
Definition at line 400 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 360 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 396 of file BKE_node_runtime.hh.
| int blender::bke::bNodeRuntime::toposort_right_to_left_index = -1 |
Definition at line 397 of file BKE_node_runtime.hh.
| int blender::bke::bNodeRuntime::update = 0 |
Update flags.
Definition at line 366 of file BKE_node_runtime.hh.