14 : type_(type), owns_value_(make_value_copy)
16 if (make_value_copy) {
31 signature_.params[0].type.data_type().single_type().destruct(
const_cast<void *
>(value_));
41 type_.fill_construct_indices(value_,
output.data(),
mask);
46 return type_.hash_or_fallback(value_,
uintptr_t(
this));
52 if (_other ==
nullptr) {
55 if (type_ != _other->type_) {
58 return type_.is_equal(value_, _other->value_);
79 : output_amount_(output_types.
size())
82 for (
DataType data_type : input_types) {
83 builder.
input(
"Input", data_type);
85 for (
DataType data_type : output_types) {
86 builder.
output(
"Output", data_type);
109 builder.
input(
"Input", data_type);
110 builder.
output(
"Output", data_type);
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
int64_t alignment() 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)
~CustomMF_GenericConstant()
uint64_t hash() const 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 float4 mask(const int4 mask, const float4 a)
static blender::bke::bNodeSocketTemplate outputs[]
static blender::bke::bNodeSocketTemplate inputs[]
_W64 unsigned int uintptr_t
unsigned __int64 uint64_t