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 )

Definition at line 207 of file geometry_nodes_log.cc.

References hash.

◆ ~GeoTreeLog()

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

Member Function Documentation

◆ ensure_debug_messages()

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

Definition at line 451 of file geometry_nodes_log.cc.

Referenced by blender::ed::space_node::node_get_extra_info().

◆ ensure_evaluated_gizmo_nodes()

◆ ensure_execution_times()

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

Definition at line 342 of file geometry_nodes_log.cc.

References execution_time.

◆ 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()

void blender::nodes::geo_eval_log::GeoTreeLog::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, blender::Stack< T, InlineBufferCapacity, Allocator >::is_empty(), 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

◆ 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: