|
Blender V4.3
|
Inherits blender::NonCopyable, and blender::NonMovable.
Public Member Functions | |
| void | destruct_value (ValueAllocator &value_allocator, const DataType &data_type) |
| bool | is_one () const |
| bool | is_fully_initialized (const IndexMask &full_mask) |
| bool | is_fully_uninitialized (const IndexMask &full_mask) |
| void | add_as_input (ParamsBuilder ¶ms, const IndexMask &mask, const DataType &data_type) const |
| void | ensure_is_mutable (const IndexMask &full_mask, const DataType &data_type, ValueAllocator &value_allocator) |
| void | add_as_mutable (ParamsBuilder ¶ms, const IndexMask &mask, const IndexMask &full_mask, const DataType &data_type, ValueAllocator &value_allocator) |
| void | add_as_output (ParamsBuilder ¶ms, const IndexMask &mask, const IndexMask &full_mask, const DataType &data_type, ValueAllocator &value_allocator) |
| void | add_as_input__one (ParamsBuilder ¶ms, const DataType &data_type) const |
| void | ensure_is_mutable__one (const DataType &data_type, ValueAllocator &value_allocator) |
| void | add_as_mutable__one (ParamsBuilder ¶ms, const DataType &data_type, ValueAllocator &value_allocator) |
| void | add_as_output__one (ParamsBuilder ¶ms, const IndexMask &mask, const DataType &data_type, ValueAllocator &value_allocator) |
| bool | destruct (const IndexMask &mask, const IndexMask &full_mask, const DataType &data_type, ValueAllocator &value_allocator) |
| void | indices_split (const IndexMask &mask, IndicesSplitVectors &r_indices) |
| template<typename T > | |
| T * | value_as () |
| template<typename T > | |
| const T * | value_as () const |
Public Attributes | |
| VariableValue * | value_ = nullptr |
| int | tot_initialized_ = 0 |
| void * | caller_provided_storage_ = nullptr |
This class keeps track of a single variable during evaluation.
Definition at line 305 of file multi_function_procedure_executor.cc.
|
inline |
Definition at line 356 of file multi_function_procedure_executor.cc.
References BLI_assert, data, params, blender::fn::multi_function::DataType::single_type(), tot_initialized_, blender::fn::multi_function::VariableValue::type, value_, and value_as().
Referenced by blender::fn::multi_function::VariableStates::add_as_param().
|
inline |
Definition at line 535 of file multi_function_procedure_executor.cc.
References BLI_assert, BLI_assert_unreachable, is_one(), params, ptr, blender::fn::multi_function::DataType::single_type(), blender::fn::multi_function::VariableValue::type, value_, and value_as().
Referenced by blender::fn::multi_function::VariableStates::add_as_param__one().
|
inline |
Definition at line 468 of file multi_function_procedure_executor.cc.
References BLI_assert, BLI_assert_unreachable, data, ensure_is_mutable(), params, blender::fn::multi_function::DataType::single_type(), tot_initialized_, blender::fn::multi_function::VariableValue::type, value_, and value_as().
Referenced by blender::fn::multi_function::VariableStates::add_as_param().
|
inline |
Definition at line 621 of file multi_function_procedure_executor.cc.
References BLI_assert, BLI_assert_unreachable, ensure_is_mutable__one(), is_one(), params, blender::fn::multi_function::DataType::single_type(), blender::fn::multi_function::VariableValue::type, value_, and value_as().
Referenced by blender::fn::multi_function::VariableStates::add_as_param__one().
|
inline |
Definition at line 501 of file multi_function_procedure_executor.cc.
References BLI_assert, BLI_assert_unreachable, data, ensure_is_mutable(), params, blender::fn::multi_function::DataType::single_type(), blender::index_mask::IndexMask::size(), tot_initialized_, blender::fn::multi_function::VariableValue::type, value_, and value_as().
Referenced by blender::fn::multi_function::VariableStates::add_as_param().
|
inline |
Definition at line 650 of file multi_function_procedure_executor.cc.
References BLI_assert, BLI_assert_unreachable, ensure_is_mutable__one(), is_one(), params, blender::fn::multi_function::DataType::single_type(), tot_initialized_, blender::fn::multi_function::VariableValue::type, value_, and value_as().
Referenced by blender::fn::multi_function::VariableStates::add_as_param__one().
|
inline |
Destruct the masked elements in this variable.
Definition at line 692 of file multi_function_procedure_executor.cc.
References BLI_assert, caller_provided_storage_, blender::CPPType::destruct(), blender::CPPType::destruct_indices(), ensure_is_mutable(), blender::fn::multi_function::DataType::single_type(), blender::index_mask::IndexMask::size(), tot_initialized_, blender::fn::multi_function::VariableValue::type, UNUSED_VARS_NDEBUG, value_, and value_as().
Referenced by blender::fn::multi_function::VariableStates::destruct().
|
inline |
Definition at line 314 of file multi_function_procedure_executor.cc.
References blender::fn::multi_function::ValueAllocator::release_value(), and value_.
Referenced by blender::fn::multi_function::VariableStates::destruct().
|
inline |
Definition at line 395 of file multi_function_procedure_executor.cc.
References BLI_assert_unreachable, caller_provided_storage_, blender::fn::multi_function::DataType::category(), blender::fn::multi_function::VariableValue_GVectorArray::data, blender::fn::multi_function::VariableValue_Span::data, ELEM, blender::GVectorArray::extend(), blender::index_mask::IndexMask::min_array_size(), blender::fn::multi_function::ValueAllocator::obtain_GVectorArray(), blender::fn::multi_function::ValueAllocator::obtain_GVectorArray_not_owned(), blender::fn::multi_function::ValueAllocator::obtain_Span(), blender::fn::multi_function::ValueAllocator::obtain_Span_not_owned(), blender::fn::multi_function::ValueAllocator::release_value(), blender::fn::multi_function::DataType::Single, blender::fn::multi_function::DataType::single_type(), blender::fn::multi_function::VariableValue::type, value_, value_as(), blender::fn::multi_function::DataType::Vector, vector, and blender::fn::multi_function::DataType::vector_base_type().
Referenced by add_as_mutable(), add_as_output(), blender::fn::multi_function::ProcedureExecutor::call(), and destruct().
|
inline |
Definition at line 568 of file multi_function_procedure_executor.cc.
References BLI_assert, BLI_assert_unreachable, blender::fn::multi_function::DataType::category(), blender::fn::multi_function::VariableValue_OneSingle::data, blender::fn::multi_function::VariableValue_OneVector::data, ELEM, blender::GVectorArray::extend(), blender::fn::multi_function::VariableValue_OneSingle::is_initialized, is_one(), blender::fn::multi_function::ValueAllocator::obtain_OneSingle(), blender::fn::multi_function::ValueAllocator::obtain_OneVector(), blender::fn::multi_function::ValueAllocator::release_value(), blender::fn::multi_function::DataType::Single, blender::fn::multi_function::DataType::single_type(), tot_initialized_, blender::fn::multi_function::VariableValue::type, value_, value_as(), blender::fn::multi_function::DataType::Vector, and blender::fn::multi_function::DataType::vector_base_type().
Referenced by add_as_mutable__one(), and add_as_output__one().
|
inline |
Definition at line 762 of file multi_function_procedure_executor.cc.
References BLI_assert, BLI_assert_unreachable, blender::index_mask::IndexMask::foreach_index(), blender::Vector< T, InlineBufferCapacity, Allocator >::reserve(), tot_initialized_, blender::fn::multi_function::VariableValue::type, value_, and value_as().
Referenced by blender::fn::multi_function::ProcedureExecutor::call().
|
inline |
Definition at line 345 of file multi_function_procedure_executor.cc.
References blender::index_mask::IndexMask::size(), and tot_initialized_.
Referenced by blender::fn::multi_function::ProcedureExecutor::call().
|
inline |
Definition at line 350 of file multi_function_procedure_executor.cc.
References tot_initialized_, and UNUSED_VARS.
Referenced by blender::fn::multi_function::ProcedureExecutor::call().
|
inline |
Definition at line 322 of file multi_function_procedure_executor.cc.
References BLI_assert_unreachable, tot_initialized_, blender::fn::multi_function::VariableValue::type, value_, and value_as().
Referenced by add_as_input__one(), add_as_mutable__one(), add_as_output__one(), and ensure_is_mutable__one().
Definition at line 798 of file multi_function_procedure_executor.cc.
References BLI_assert, blender::fn::multi_function::VariableValue::type, and value_.
Referenced by add_as_input(), add_as_input__one(), add_as_mutable(), add_as_mutable__one(), add_as_output(), add_as_output__one(), destruct(), ensure_is_mutable(), ensure_is_mutable__one(), indices_split(), and is_one().
|
inline |
Definition at line 805 of file multi_function_procedure_executor.cc.
References BLI_assert, blender::fn::multi_function::VariableValue::type, and value_.
| void* blender::fn::multi_function::VariableState::caller_provided_storage_ = nullptr |
Definition at line 312 of file multi_function_procedure_executor.cc.
Referenced by blender::fn::multi_function::VariableStates::add_initial_variable_states(), destruct(), and ensure_is_mutable().
| int blender::fn::multi_function::VariableState::tot_initialized_ = 0 |
Number of indices that are currently initialized in this variable.
Definition at line 310 of file multi_function_procedure_executor.cc.
Referenced by add_as_input(), add_as_mutable(), add_as_output(), add_as_output__one(), blender::fn::multi_function::VariableStates::add_initial_variable_states(), destruct(), ensure_is_mutable__one(), indices_split(), is_fully_initialized(), is_fully_uninitialized(), and is_one().
| VariableValue* blender::fn::multi_function::VariableState::value_ = nullptr |
The current value of the variable. The storage format may change over time.
Definition at line 308 of file multi_function_procedure_executor.cc.
Referenced by add_as_input(), add_as_input__one(), add_as_mutable(), add_as_mutable__one(), add_as_output(), add_as_output__one(), blender::fn::multi_function::VariableStates::add_initial_variable_states(), destruct(), destruct_value(), ensure_is_mutable(), ensure_is_mutable__one(), indices_split(), is_one(), value_as(), and value_as().