Navigation
API > API/Plugins > API/Plugins/PCG
Overloads
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
bool PCG::Private::NAryOperation::Gather
(
PCGMetadataOps::FOperationData& InOperationData, |
When Signature doesn't have any templated types anymore (Signature<>), we got all our input values packed in "InArgs", so it's time to compute our operation and set the outputs. | Elements/Metadata/PCGMetadataOpElementBase.h | |
bool PCG::Private::NAryOperation::Gather
(
PCGMetadataOps::FOperationData& InOperationData, |
The idea of gather is to pack all the input values at the end of the function call. | Elements/Metadata/PCGMetadataOpElementBase.h |
PCG::Private::NAryOperation::Gather(PCGMetadataOps::FOperationData &, int32, int32, const Options &, const TTuple< Callbacks... > &, int, Signature<>, Args &&...)
Description
When Signature doesn't have any templated types anymore (Signature<>), we got all our input values packed in "InArgs", so it's time to compute our operation and set the outputs. To do so, we use Apply templated with the LastOutputIndex, and go backwards (last output to first output).
| Name | PCG::Private::NAryOperation::Gather |
| Type | function |
| Header File | /Engine/Plugins/PCG/Source/PCG/Public/Elements/Metadata/PCGMetadataOpElementBase.h |
| Include Path | #include "Elements/Metadata/PCGMetadataOpElementBase.h" |
namespace PCG
{
namespace Private
{
namespace NAryOperation
{
template<typename... Callbacks, typename... Args>
bool PCG::Private::NAryOperation::Gather
(
PCGMetadataOps::FOperationData & InOperationData,
int32 StartIndex,
int32 Range,
const Options & InOptions,
const TTuple < Callbacks... > & InCallbacks,
int InputIndex,
Signature <> S,
Args &&... InArgs
)
}
}
}
PCG::Private::NAryOperation::Gather(PCGMetadataOps::FOperationData &, int32, int32, const Options &, const TTuple< Callbacks... > &, int, Signature< InputType, InputTypes... >, Args &&...)
Description
The idea of gather is to pack all the input values at the end of the function call. We use InputType, from our Signature struct to extract the current InputType, get a range of values from our accessor (using the InputIndex) then call Gather recursively, with the rest of our input types in Signature, InputIndex incremented by one and our newly InputValues moved at the end and packed into InArgs. We specialize the case where Signature is empty, meaning we got all our input values.
For example, if InputTypes =
| Name | PCG::Private::NAryOperation::Gather |
| Type | function |
| Header File | /Engine/Plugins/PCG/Source/PCG/Public/Elements/Metadata/PCGMetadataOpElementBase.h |
| Include Path | #include "Elements/Metadata/PCGMetadataOpElementBase.h" |
namespace PCG
{
namespace Private
{
namespace NAryOperation
{
template<typename... Callbacks, typename InputType, typename... InputTypes, typename... Args>
bool PCG::Private::NAryOperation::Gather
(
PCGMetadataOps::FOperationData & InOperationData,
int32 StartIndex,
int32 Range,
const Options & InOptions,
const TTuple < Callbacks... > & InCallbacks,
int InputIndex,
Signature < InputType, InputTypes... > S,
Args &&... InArgs
)
}
}
}