36using namespace nodes::derived_node_tree_types;
41 const ResultType result_type = get_node_socket_result_type(output);
42 populate_result(output->identifier, context.create_result(result_type));
46 const InputDescriptor input_descriptor = input_descriptor_from_input_socket(input);
47 declare_input_descriptor(input->identifier, input_descriptor);
68Result *NodeOperation::get_preview_result()
74 return &output_result;
80 Result &input_result =
get_input(input->identifier);
81 if (input_result.is_allocated()) {
#define BLI_assert_unreachable()
bool contains(const Key &key) 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
Operation(Context &context)
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)
VectorSet< DNode > Schedule
Clock::time_point TimePoint