|
Blender V4.3
|
#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 () |
| ValueLog * | find_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< T > | find_primitive_socket_value (const bNodeSocket &query_socket) |
Public Attributes | |
| Map< int32_t, GeoNodeLog > | nodes |
| Map< int32_t, ViewerNodeLog *, 0 > | viewer_node_logs |
| VectorSet< NodeWarning > | all_warnings |
| std::chrono::nanoseconds | execution_time {0} |
| Vector< const GeometryAttributeInfo * > | existing_attributes |
| Map< StringRefNull, NamedAttributeUsage > | used_named_attributes |
| Set< int > | evaluated_gizmo_nodes |
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.
| 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.
|
default |
| 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().
| void blender::nodes::geo_eval_log::GeoTreeLog::ensure_evaluated_gizmo_nodes | ( | ) |
Definition at line 465 of file geometry_nodes_log.cc.
References blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), and evaluated_gizmo_nodes.
Referenced by blender::ed::view3d::geometry_nodes_gizmos::WIDGETGROUP_geometry_nodes_refresh().
| void blender::nodes::geo_eval_log::GeoTreeLog::ensure_execution_times | ( | ) |
Definition at line 342 of file geometry_nodes_log.cc.
References execution_time.
| void blender::nodes::geo_eval_log::GeoTreeLog::ensure_existing_attributes | ( | ) |
Definition at line 388 of file geometry_nodes_log.cc.
References ensure_socket_values(), and existing_attributes.
Referenced by blender::attribute_search_update_fn().
| void blender::nodes::geo_eval_log::GeoTreeLog::ensure_node_warnings | ( | const bNodeTree * | tree | ) |
Definition at line 288 of file geometry_nodes_log.cc.
References all_warnings, blender::bke::all_zone_output_node_types(), blender::Span< T >::contains(), ensure_node_warnings(), blender::nodes::geo_eval_log::GeoModifierLog::get_tree_log(), NODE_WARNING_PROPAGATION_ALL, tree, and blender::nodes::geo_eval_log::warning_is_propagated().
Referenced by ensure_node_warnings(), and blender::ed::geometry::run_node_group_exec().
| void blender::nodes::geo_eval_log::GeoTreeLog::ensure_socket_values | ( | ) |
Definition at line 357 of file geometry_nodes_log.cc.
Referenced by blender::nodes::inverse_eval::backpropagate_socket_values_through_node(), blender::ed::space_node::create_log_inspection_string(), ensure_existing_attributes(), and blender::ed::view3d::geometry_nodes_gizmos::WIDGETGROUP_geometry_nodes_refresh().
| void blender::nodes::geo_eval_log::GeoTreeLog::ensure_used_named_attributes | ( | ) |
Definition at line 416 of file geometry_nodes_log.cc.
References ensure_used_named_attributes(), blender::nodes::geo_eval_log::GeoModifierLog::get_tree_log(), and used_named_attributes.
Referenced by blender::draw_named_attributes_panel(), ensure_used_named_attributes(), and blender::ed::space_node::node_get_accessed_attributes_row().
| void blender::nodes::geo_eval_log::GeoTreeLog::ensure_viewer_node_logs | ( | ) |
Definition at line 375 of file geometry_nodes_log.cc.
References viewer_node_logs.
Referenced by blender::nodes::geo_eval_log::GeoModifierLog::find_viewer_node_log_for_path().
|
inline |
Definition at line 333 of file NOD_geometry_nodes_log.hh.
References find_socket_value_log(), blender::CPPType::get(), and try_convert_primitive_socket_value().
Referenced by blender::ed::view3d::geometry_nodes_gizmos::GizmosUpdateParams::get_input_value(), and blender::nodes::inverse_eval::get_logged_socket_value().
| 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().
|
nodiscard |
Definition at line 553 of file geometry_nodes_log.cc.
References blender::bke::DataTypeConversions::convert_to_uninitialized(), blender::CPPType::destruct(), blender::GMutablePointer::get(), blender::bke::get_implicit_type_conversions(), blender::bke::DataTypeConversions::is_convertible(), blender::GMutablePointer::type(), and blender::nodes::geo_eval_log::GenericValueLog::value.
Referenced by find_primitive_socket_value().
| VectorSet<NodeWarning> blender::nodes::geo_eval_log::GeoTreeLog::all_warnings |
Definition at line 309 of file NOD_geometry_nodes_log.hh.
Referenced by ensure_node_warnings(), and blender::ed::geometry::run_node_group_exec().
Definition at line 313 of file NOD_geometry_nodes_log.hh.
Referenced by ensure_evaluated_gizmo_nodes(), and blender::ed::view3d::geometry_nodes_gizmos::WIDGETGROUP_geometry_nodes_refresh().
| std::chrono::nanoseconds blender::nodes::geo_eval_log::GeoTreeLog::execution_time {0} |
Definition at line 310 of file NOD_geometry_nodes_log.hh.
Referenced by ensure_execution_times(), and blender::ed::space_node::geo_node_get_execution_time().
| 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().
| Map<int32_t, GeoNodeLog> blender::nodes::geo_eval_log::GeoTreeLog::nodes |
| Map<StringRefNull, NamedAttributeUsage> blender::nodes::geo_eval_log::GeoTreeLog::used_named_attributes |
Definition at line 312 of file NOD_geometry_nodes_log.hh.
Referenced by blender::draw_named_attributes_panel(), and ensure_used_named_attributes().
| Map<int32_t, ViewerNodeLog *, 0> blender::nodes::geo_eval_log::GeoTreeLog::viewer_node_logs |
Definition at line 308 of file NOD_geometry_nodes_log.hh.
Referenced by ensure_viewer_node_logs(), and blender::nodes::geo_eval_log::GeoModifierLog::find_viewer_node_log_for_path().