36using namespace nodes::derived_node_tree_types;
40 for (
const bNodeSocket *output : node->output_sockets()) {
42 populate_result(output->identifier, context.create_result(result_type));
45 for (
const bNodeSocket *input : node->input_sockets()) {
47 declare_input_descriptor(input->identifier, input_descriptor);
68Result *NodeOperation::get_preview_result()
71 for (
const bNodeSocket *output : node()->output_sockets()) {
74 return &output_result;
79 for (
const bNodeSocket *input : node()->input_sockets()) {
80 Result &input_result =
get_input(input->identifier);
81 if (input_result.is_allocated()) {
#define BLI_assert_unreachable()
bool contains(const Key &key) const
const DTreeContext * context() const
virtual Profiler * profiler() const
NodeOperation(Context &context, DNode node)
void compute_results_reference_counts(const Schedule &schedule)
bool should_compute_output(StringRef identifier)
void compute_preview() override
const bNode & bnode() const
const DNode & node() const
Result & get_input(StringRef identifier) const
Result & get_result(StringRef identifier)
Context & context() const
void set_node_evaluation_time(bNodeInstanceKey node_instance_key, timeit::Nanoseconds time)
void set_initial_reference_count(int count)
bool is_node_preview_needed(const DNode &node)
void compute_preview_from_result(Context &context, const DNode &node, Result &input_result)
int number_of_inputs_linked_to_output_conditioned(DOutputSocket output, FunctionRef< bool(DInputSocket)> condition)
ResultType get_node_socket_result_type(const bNodeSocket *socket)
InputDescriptor input_descriptor_from_input_socket(const bNodeSocket *socket)
Clock::time_point TimePoint