12 : type_(type), owns_value_(make_value_copy)
14 if (make_value_copy) {
29 signature_.params[0].type.data_type().single_type().destruct(
const_cast<void *
>(value_));
39 type_.fill_construct_indices(value_,
output.data(),
mask);
44 return type_.hash_or_fallback(value_, uintptr_t(
this));
50 if (_other ==
nullptr) {
53 if (type_ != _other->type_) {
56 return type_.is_equal(value_, _other->value_);
77 : output_amount_(output_types.
size())
80 for (
DataType data_type : input_types) {
81 builder.
input(
"Input", data_type);
83 for (
DataType data_type : output_types) {
84 builder.
output(
"Output", data_type);
107 builder.
input(
"Input", data_type);
108 builder.
output(
"Output", data_type);
unsigned long long int uint64_t
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
void fill_construct_indices(const void *value, void *dst, const IndexMask &mask) const
void copy_construct(const void *src, void *dst) const
const void * default_value() const
const CPPType & type() const
void extend(int64_t index, const GVArray &values)
CustomMF_DefaultOutput(Span< DataType > input_types, Span< DataType > output_types)
void call(const IndexMask &mask, Params params, Context context) const override
void call(const IndexMask &mask, Params params, Context context) const override
CustomMF_GenericConstantArray(GSpan array)
CustomMF_GenericConstant(const CPPType &type, const void *value, bool make_value_copy)
uint64_t hash() const override
~CustomMF_GenericConstant() override
bool equals(const MultiFunction &other) const override
void call(const IndexMask &mask, Params params, Context context) const override
CustomMF_GenericCopy(DataType data_type)
void call(const IndexMask &mask, Params params, Context context) const override
Category category() const
void set_signature(const Signature *signature)
ParamType param_type(int param_index) const
IndexRange param_indices() const
const DataType & data_type() const
void input(const char *name, DataType data_type)
void vector_output(const char *name, const ParamFlag flag=ParamFlag::None)
void output(const char *name, DataType data_type, const ParamFlag flag=ParamFlag::None)
void single_output(const char *name, const ParamFlag flag=ParamFlag::None)
void * MEM_mallocN_aligned(size_t len, size_t alignment, const char *str)
void MEM_freeN(void *vmemh)
ccl_device_inline float2 mask(const MaskType mask, const float2 a)
static blender::bke::bNodeSocketTemplate outputs[]
static blender::bke::bNodeSocketTemplate inputs[]