43using lf::LazyFunction;
44using mf::MultiFunction;
73using Behavior = std::variant<PassThrough, OutputCopy, OutputMove>;
118using Behavior = std::variant<PassThrough, StoreNewState, ReadSingle, ReadInterpolated, ReadError>;
171 const Depsgraph *active =
nullptr;
285 mutable std::optional<geo_eval_log::GeoTreeLogger *> tree_logger_;
296 if (!tree_logger_.has_value()) {
297 this->ensure_tree_logger(user_data);
299 return *tree_logger_;
486 start_ = geo_eval_log::Clock::now();
496 tree_logger->execution_time += (end - start_);
513 start_ = geo_eval_log::Clock::now();
523 tree_logger->node_execution_times.append(*tree_logger->allocator,
virtual BakeNodeBehavior * get(const int id) const =0
virtual SimulationZoneBehavior * get(const int zone_id) const =0
~ScopedComputeContextTimer()
ScopedComputeContextTimer(lf::Context &entered_context)
ScopedNodeTimer(const lf::Context &context, const bNode &node)
Clock::time_point TimePoint
std::variant< PassThrough, StoreNewState, ReadSingle, ReadInterpolated, ReadError > Behavior
std::unique_ptr< LazyFunction > get_simulation_output_lazy_function(const bNode &node, GeometryNodesLazyFunctionGraphInfo &own_lf_graph_info)
std::unique_ptr< LazyFunction > get_index_switch_node_lazy_function(const bNode &node, GeometryNodesLazyFunctionGraphInfo &lf_graph_info)
std::unique_ptr< LazyFunction > get_warning_node_lazy_function(const bNode &node)
std::unique_ptr< LazyFunction > get_menu_switch_node_socket_usage_lazy_function(const bNode &node)
std::unique_ptr< LazyFunction > get_simulation_input_lazy_function(const bNodeTree &node_tree, const bNode &node, GeometryNodesLazyFunctionGraphInfo &own_lf_graph_info)
std::unique_ptr< LazyFunction > get_switch_node_lazy_function(const bNode &node)
std::string make_anonymous_attribute_socket_inspection_string(const bNodeSocket &socket)
std::unique_ptr< LazyFunction > get_bake_lazy_function(const bNode &node, GeometryNodesLazyFunctionGraphInfo &lf_graph_info)
const GeometryNodesLazyFunctionGraphInfo * ensure_geometry_nodes_lazy_function_graph(const bNodeTree &btree)
void set_default_remaining_node_outputs(lf::Params ¶ms, const bNode &node)
std::optional< FoundNestedNodeID > find_nested_node_id(const GeoNodesLFUserData &user_data, const int node_id)
std::unique_ptr< LazyFunction > get_menu_switch_node_lazy_function(const bNode &node, GeometryNodesLazyFunctionGraphInfo &lf_graph_info)
std::unique_ptr< T, DestructValueAtAddress< T > > destruct_ptr
LocalUserData * local_user_data
bke::bake::BakeDataBlockMap * data_block_map
sim_output::Behavior behavior
GeoNodesSimulationParams * simulation_params
GeoNodesModifierData * modifier_data
const bNodeTree * root_ntree
const Object * self_object() const
geo_eval_log::GeoModifierLog * eval_log
const Set< ComputeContextHash > * socket_log_contexts
GeoNodesOperatorData * operator_data
GeoNodesBakeParams * bake_params
const GeoNodesSideEffectNodes * side_effect_nodes
geo_eval_log::GeoTreeLogger * try_get_tree_logger(const GeoNodesLFUserData &user_data) const
GeoNodesLFLocalUserData(GeoNodesLFUserData &)
const ComputeContext * compute_context
destruct_ptr< lf::LocalUserData > get_local(LinearAllocator<> &allocator) override
const GeoNodesCallData * call_data
const Object * self_object
math::Quaternion cursor_rotation
float4x4 viewport_viewmat
const GeoNodesOperatorDepsgraphs * depsgraphs
const Object * self_object_orig
bool viewport_is_perspective
~GeoNodesOperatorDepsgraphs()
const ID * get_evaluated_id(const ID &id_orig) const
MultiValueMap< std::pair< ComputeContextHash, int32_t >, int > iterations_by_iteration_zone
MultiValueMap< ComputeContextHash, const lf::FunctionNode * > nodes_by_context
Vector< InputUsageHint > group_input_usage_hints
Array< int > lf_index_by_bsocket
Map< const bke::bNodeTreeZone *, const lf::FunctionNode * > zone_node_map
Array< int > lf_input_index_for_attribute_propagation_to_output
Array< int > lf_input_index_for_output_bsocket_usage
MultiValueMap< const lf::Socket *, const bNodeSocket * > bsockets_by_lf_socket_map
Map< const bNode *, const lf::FunctionNode * > possible_side_effect_node_map
Map< const bNode *, const lf::FunctionNode * > group_node_map
Vector< int > geometry_outputs
struct blender::nodes::GeometryNodesGroupFunction::@1338 outputs
struct blender::nodes::GeometryNodesGroupFunction::@1337::@1339 attributes_to_propagate
struct blender::nodes::GeometryNodesGroupFunction::@1337 inputs
int num_inline_nodes_approximate
GeometryNodeLazyFunctionGraphMapping mapping
Map< int, const lf::Graph * > debug_zone_body_graphs
GeometryNodesGroupFunction function
sim_output::Behavior output
bke::bake::BakeDataBlockMap * data_block_map
sim_input::Behavior input
bke::bake::BakeStateRef prev_state
bke::bake::BakeStateRef next_state
bke::bake::BakeStateRef state
std::function< void(bke::bake::BakeState state)> store_fn