Blender V4.3
blender::nodes::geo_eval_log::GeoTreeLog Class Reference

#include <NOD_geometry_nodes_log.hh>

Public Member Functions

 GeoTreeLog (GeoModifierLog *modifier_log, Vector< GeoTreeLogger * > tree_loggers)
 ~GeoTreeLog ()
void ensure_node_warnings (const bNodeTree *tree)
void ensure_execution_times ()
void ensure_socket_values ()
void ensure_viewer_node_logs ()
void ensure_existing_attributes ()
void ensure_used_named_attributes ()
void ensure_debug_messages ()
void ensure_evaluated_gizmo_nodes ()
ValueLogfind_socket_value_log (const bNodeSocket &query_socket)
bool try_convert_primitive_socket_value (const GenericValueLog &value_log, const CPPType &dst_type, void *dst)
template<typename T>
std::optional< Tfind_primitive_socket_value (const bNodeSocket &query_socket)

Public Attributes

Map< int32_t, GeoNodeLognodes
Map< int32_t, ViewerNodeLog *, 0 > viewer_node_logs
VectorSet< NodeWarningall_warnings
std::chrono::nanoseconds execution_time {0}
Vector< const GeometryAttributeInfo * > existing_attributes
Map< StringRefNull, NamedAttributeUsageused_named_attributes
Set< intevaluated_gizmo_nodes

Detailed Description

Contains data that has been logged for a specific node group in a context. If the same node group is used multiple times, there will be a different GeoTreeLog for every instance.

This contains lazily evaluated data. Call the corresponding ensure_* methods before accessing data.

Definition at line 292 of file NOD_geometry_nodes_log.hh.

Constructor & Destructor Documentation

◆ GeoTreeLog()

blender::nodes::geo_eval_log::GeoTreeLog::GeoTreeLog ( GeoModifierLog * modifier_log,
Vector< GeoTreeLogger * > tree_loggers )

◆ ~GeoTreeLog()

blender::nodes::geo_eval_log::GeoTreeLog::~GeoTreeLog ( )
default

References tree.

Member Function Documentation

◆ ensure_debug_messages()

void blender::nodes::geo_eval_log::GeoTreeLog::ensure_debug_messages ( )

◆ ensure_evaluated_gizmo_nodes()

void blender::nodes::geo_eval_log::GeoTreeLog::ensure_evaluated_gizmo_nodes ( )

◆ ensure_execution_times()

◆ ensure_existing_attributes()

void blender::nodes::geo_eval_log::GeoTreeLog::ensure_existing_attributes ( )

◆ ensure_node_warnings()

◆ ensure_socket_values()

◆ ensure_used_named_attributes()

◆ ensure_viewer_node_logs()

◆ find_primitive_socket_value()

template<typename T>
std::optional< T > blender::nodes::geo_eval_log::GeoTreeLog::find_primitive_socket_value ( const bNodeSocket & query_socket)
inline

◆ find_socket_value_log()

ValueLog * blender::nodes::geo_eval_log::GeoTreeLog::find_socket_value_log ( const bNodeSocket & query_socket)

Geometry nodes does not log values for every socket. That would produce a lot of redundant data,because often many linked sockets have the same value. To find the logged value for a socket one might have to look at linked sockets as well.

Definition at line 479 of file geometry_nodes_log.cc.

References blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), BLI_assert, bNode::identifier, blender::Stack< T, InlineBufferCapacity, Allocator >::is_empty(), nodes, blender::Stack< T, InlineBufferCapacity, Allocator >::pop(), and blender::Stack< T, InlineBufferCapacity, Allocator >::push().

Referenced by blender::attribute_search_update_fn(), blender::ed::space_node::create_log_inspection_string(), and find_primitive_socket_value().

◆ try_convert_primitive_socket_value()

Member Data Documentation

◆ all_warnings

VectorSet<NodeWarning> blender::nodes::geo_eval_log::GeoTreeLog::all_warnings

◆ evaluated_gizmo_nodes

Set<int> blender::nodes::geo_eval_log::GeoTreeLog::evaluated_gizmo_nodes

Definition at line 313 of file NOD_geometry_nodes_log.hh.

Referenced by ensure_evaluated_gizmo_nodes().

◆ execution_time

std::chrono::nanoseconds blender::nodes::geo_eval_log::GeoTreeLog::execution_time {0}

◆ existing_attributes

Vector<const GeometryAttributeInfo *> blender::nodes::geo_eval_log::GeoTreeLog::existing_attributes

Definition at line 311 of file NOD_geometry_nodes_log.hh.

Referenced by ensure_existing_attributes().

◆ nodes

◆ used_named_attributes

Map<StringRefNull, NamedAttributeUsage> blender::nodes::geo_eval_log::GeoTreeLog::used_named_attributes

◆ viewer_node_logs

Map<int32_t, ViewerNodeLog *, 0> blender::nodes::geo_eval_log::GeoTreeLog::viewer_node_logs

The documentation for this class was generated from the following files: