43using lf::LazyFunction;
44using mf::MultiFunction;
73using Behavior = std::variant<PassThrough, OutputCopy, OutputMove>;
118using Behavior = std::variant<PassThrough, StoreNewState, ReadSingle, ReadInterpolated, ReadError>;
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,
524 {node_.identifier, start_, end});
int main(int argc, char *argv[])
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)
QuaternionBase< float > Quaternion
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
MatBase< float, 4, 4 > float4x4
VecBase< int32_t, 2 > int2
VecBase< float, 3 > float3
static blender::bke::bNodeSocketTemplate outputs[]
static blender::bke::bNodeSocketTemplate inputs[]
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::@000115334025155014211241101024303251321212251042::@165376366322230201261276177143336154337260306235 attributes_to_propagate
const LazyFunction * function
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