|
Blender V4.3
|
#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 |
| short | preview_xsize |
| short | preview_ysize = 0 |
| rctf | totr {} |
| 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 282 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 338 of file BKE_node_runtime.hh.
| uint32_t blender::bke::bNodeRuntime::changed_flag = 0 |
Definition at line 305 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 302 of file BKE_node_runtime.hh.
Definition at line 360 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 347 of file BKE_node_runtime.hh.
| bool blender::bke::bNodeRuntime::has_available_linked_inputs = false |
Definition at line 358 of file BKE_node_runtime.hh.
| bool blender::bke::bNodeRuntime::has_available_linked_outputs = false |
Definition at line 359 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 344 of file BKE_node_runtime.hh.
| Vector<bNodeSocket *> blender::bke::bNodeRuntime::inputs |
Only valid if #topology_cache_is_dirty is false.
Definition at line 354 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 356 of file BKE_node_runtime.hh.
List of cached internal links (input to output), for muted nodes and operators.
Definition at line 341 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 351 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 332 of file BKE_node_runtime.hh.
| uint8_t blender::bke::bNodeRuntime::need_exec = 0 |
Used as a boolean for execution.
Definition at line 308 of file BKE_node_runtime.hh.
| bNode* blender::bke::bNodeRuntime::original = nullptr |
The original node in the tree (for localized tree).
Definition at line 311 of file BKE_node_runtime.hh.
| Vector<bNodeSocket *> blender::bke::bNodeRuntime::outputs |
Definition at line 355 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 357 of file BKE_node_runtime.hh.
| bNodeTree* blender::bke::bNodeRuntime::owner_tree = nullptr |
Definition at line 361 of file BKE_node_runtime.hh.
| Array<bNodePanelRuntime> blender::bke::bNodeRuntime::panels |
Definition at line 367 of file BKE_node_runtime.hh.
Referenced by blender::bke::node_tree_runtime::update_panels().
| short blender::bke::bNodeRuntime::preview_xsize |
XXX: TODO: prvr does not exist! Node totr size depends on the prvr size, which in turn is determined from preview size. In earlier versions bNodePreview was stored directly in nodes, but since now there can be multiple instances using different preview images it is possible that required node size varies between instances. preview_xsize, preview_ysize defines a common reserved size for preview rect for now, could be replaced by more accurate node instance drawing, but that requires removing totr from DNA and replacing all uses with per-instance data. Reserved size of the preview rect.
Definition at line 324 of file BKE_node_runtime.hh.
| short blender::bke::bNodeRuntime::preview_ysize = 0 |
Definition at line 324 of file BKE_node_runtime.hh.
| short blender::bke::bNodeRuntime::tmp_flag = 0 |
Used at runtime when going through the tree. Initialize before use.
Definition at line 329 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 363 of file BKE_node_runtime.hh.
| int blender::bke::bNodeRuntime::toposort_right_to_left_index = -1 |
Definition at line 364 of file BKE_node_runtime.hh.
| rctf blender::bke::bNodeRuntime::totr {} |
Entire bound-box (world-space).
Definition at line 326 of file BKE_node_runtime.hh.
| int blender::bke::bNodeRuntime::update = 0 |
Update flags.
Definition at line 335 of file BKE_node_runtime.hh.