14template<
typename TType>
47#define UE_DATAFLOW_MAKE_STRING(x) #x
48#define UE_DATAFLOW_POLICY_DECLARE_TYPENAME(TType) \
50struct TDataflowPolicyTypeName<TType> \
52 static const TCHAR* GetName() \
54 return TEXT(#TType); \
58struct TDataflowPolicyTypeName<TArray<TType>> \
60 static const TCHAR* GetName() \
62 return TEXT(UE_DATAFLOW_MAKE_STRING(TArray<TType>)); \
144 template <
typename TVisitor>
165template <
typename...
TTypes>
181 template <
typename TVisitor>
188template <
typename T,
typename...
TTypes>
195 return SupportsTypeStatic(
InType);
201 || Super::SupportsTypeStatic(
InType);
204 template <
typename TVisitor>
268 TArray<uint64>, TArray<int32>, TArray<uint32>, TArray<int16>, TArray<uint16>, TArray<int8>, TArray<uint8>>
273 public TDataflowMultiTypePolicy<FVector2D, FVector, FVector4, FVector2f, FVector3f, FVector4f, FQuat, FQuat4f, FLinearColor, FIntPoint, FIntVector, FIntVector4, FRotator>
279 TArray<FVector2f>, TArray<FVector3f>, TArray<FVector4f>, TArray<FQuat>, TArray<FQuat4f>,
280 TArray<FLinearColor>, TArray<FIntPoint>, TArray<FIntVector>, TArray<FIntVector4>, TArray<FRotator>>
290 public TDataflowMultiTypePolicy<FDataflowTransformSelection, FDataflowVertexSelection, FDataflowFaceSelection, FDataflowGeometrySelection, FDataflowMaterialSelection, FDataflowCurveSelection>
320 return FDataflowStringTypePolicy::SupportsTypeStatic(
InType)
321 || FDataflowNumericTypePolicy::SupportsTypeStatic(
InType)
322 || FDataflowVectorTypePolicy::SupportsTypeStatic(
InType)
328 template <
typename TVisitor>
331 return FDataflowStringTypePolicy::VisitPolicyByType(
RequestedType, Visitor)
332 || FDataflowNumericTypePolicy::VisitPolicyByType(
RequestedType, Visitor)
333 || FDataflowVectorTypePolicy::VisitPolicyByType(
RequestedType, Visitor)
367 template <
typename TVisitor>
407 template <
typename TFromType>
410 template <
typename TToType>
417 static_cast<FString
>(t.ToString());
423 requires(T t,
const FString& s ) {
424 static_cast<bool>(t.InitFromString(s));
430 template <
typename TFromType>
433 if constexpr (std::is_same_v<TFromType, FName>)
437 else if constexpr (std::is_same_v<TFromType, FText>)
441 else if constexpr (std::is_same_v<TFromType, bool>)
443 To = FString((
From ==
true) ?
"True" :
"False");
445 else if constexpr (std::is_convertible_v<TFromType, double>)
447 To = FString::SanitizeFloat(
double(
From), 0);
459 template <
typename TToType>
462 if constexpr (std::is_same_v<TToType, FName>)
466 else if constexpr (std::is_same_v<TToType, FText>)
470 else if constexpr (std::is_same_v<TToType, bool>)
474 else if constexpr (std::is_convertible_v<double, TToType>)
494 template <
typename TFromType>
497 if constexpr (std::is_same_v<TFromType, FVector2D> || std::is_same_v<TFromType, FVector2f>)
501 else if constexpr (std::is_same_v<TFromType, FVector> || std::is_same_v<TFromType, FVector3f>)
505 else if constexpr (std::is_same_v<TFromType, FVector4f>)
509 else if constexpr (std::is_same_v<TFromType, FQuat4f> || std::is_same_v<TFromType, FQuat>)
513 else if constexpr (std::is_same_v<TFromType, FLinearColor>)
517 else if constexpr (std::is_same_v<TFromType, FIntVector3>)
521 else if constexpr (std::is_same_v<TFromType, FIntVector4>)
525 else if constexpr (std::is_same_v<TFromType, FIntPoint>)
529 else if constexpr (std::is_same_v<TFromType, FRotator>)
539 template <
typename TToType>
542 if constexpr (std::is_same_v<TToType, FVector2D>)
546 else if constexpr (std::is_same_v<TToType, FVector2f>)
550 else if constexpr (std::is_same_v<TToType, FVector>)
554 else if constexpr (std::is_same_v<TToType, FVector3f>)
558 else if constexpr (std::is_same_v<TToType, FVector4f>)
562 else if constexpr (std::is_same_v<TToType, FQuat>)
566 else if constexpr (std::is_same_v<TToType, FQuat4f>)
570 else if constexpr (std::is_same_v<TToType, FLinearColor>)
574 else if constexpr (std::is_same_v<TToType, FIntPoint>)
578 else if constexpr (std::is_same_v<TToType, FIntVector3>)
582 else if constexpr (std::is_same_v<TToType, FIntVector4>)
586 else if constexpr (std::is_same_v<TToType, FRotator>)
600 template <
typename TFromType>
606 template <
typename TToType>
613template <
typename ArrayType>
616 template <
typename TFromType>
620 for (
int32 ArrayIndex = 0; ArrayIndex <
From.Num(); ++ArrayIndex)
626 template <
typename TToType>
630 for (
int32 ArrayIndex = 0; ArrayIndex <
From.Num(); ++ArrayIndex)
640 template <
typename TFromType>
643 if constexpr (std::is_same_v<TFromType, FQuat>)
647 else if constexpr (std::is_same_v<TFromType, FVector>)
657 template <
typename TToType>
660 if constexpr (std::is_same_v<TToType, FQuat>)
664 else if constexpr (std::is_same_v<TToType, FVector>)
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define check(expr)
Definition AssertionMacros.h:314
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define UE_DATAFLOW_POLICY_DECLARE_TYPENAME(TType)
Definition DataflowTypePolicy.h:48
UE::Math::TRotator< double > FRotator
Definition MathFwd.h:57
USkinnedMeshComponent float
Definition SkinnedMeshComponent.h:60
UObject * StaticFindFirstObject(UClass *Class, FStringView Name, EFindFirstObjectOptions Options, ELogVerbosity::Type AmbiguousMessageVerbosity, const TCHAR *InCurrentOperation)
Definition UObjectGlobals.cpp:669
Definition NameTypes.h:617
static CORE_API FText FromString(const ANSICHAR *String)
Definition Text.cpp:1081
Definition DataflowTypePolicy.h:422
Definition DataflowTypePolicy.h:415
Definition DataflowAnyType.cpp:10
FName GetTypeName()
Definition DataflowTypePolicy.h:22
Definition DataflowTypePolicy.h:111
virtual bool SupportsType(FName InType) const override
Definition DataflowTypePolicy.h:112
static bool SupportsTypeStatic(FName InType)
Definition DataflowTypePolicy.h:117
static IDataflowTypePolicy * GetInterface()
Definition DataflowTypePolicy.h:122
Definition DataflowTypePolicy.h:222
static bool SupportsTypeStatic(FName InType)
Definition DataflowTypePolicy.h:231
static FName GetArrayType(FName InType)
Definition DataflowTypePolicy.h:255
static constexpr TCHAR ArrayFormat[]
Definition DataflowTypePolicy.h:224
static IDataflowTypePolicy * GetInterface()
Definition DataflowTypePolicy.h:236
virtual bool SupportsType(FName InType) const override
Definition DataflowTypePolicy.h:226
static constexpr TCHAR ArrayPrefix[]
Definition DataflowTypePolicy.h:223
static FName GetElementType(FName InType)
Definition DataflowTypePolicy.h:242
static void To(const FDataflowSelection &From, TToType &To)
Definition DataflowTypePolicy.h:607
static void From(const TFromType &From, FDataflowSelection &To)
Definition DataflowTypePolicy.h:601
static void From(const TFromType &From, FRotator &To)
Definition DataflowTypePolicy.h:641
static void To(const FRotator &From, TToType &To)
Definition DataflowTypePolicy.h:658
static void From(const TFromType &From, FString &To)
Definition DataflowTypePolicy.h:431
static void To(const FString &From, TToType &To)
Definition DataflowTypePolicy.h:460
static void From(const TFromType &From, FVector4 &To)
Definition DataflowTypePolicy.h:495
static void To(const FVector4 &From, TToType &To)
Definition DataflowTypePolicy.h:540
static void To(const TArray< ArrayType > &From, TToType &To)
Definition DataflowTypePolicy.h:627
static void From(const TFromType &From, TArray< ArrayType > &To)
Definition DataflowTypePolicy.h:617
Definition DataflowTypePolicy.h:406
static void To(const T &From, TToType &To)
Definition DataflowTypePolicy.h:411
static void From(const TFromType &From, T &To)
Definition DataflowTypePolicy.h:408
Definition DataflowSelection.h:147
Definition DataflowSelection.h:111
Definition DataflowSelection.h:123
Definition DataflowSelection.h:135
Definition DataflowTypePolicy.h:269
Definition DataflowTypePolicy.h:263
Definition DataflowTypePolicy.h:301
Definition DataflowTypePolicy.h:291
Definition DataflowSelection.h:13
Definition DataflowTypePolicy.h:296
Definition DataflowTypePolicy.h:312
static bool VisitPolicyByType(FName RequestedType, TVisitor Visitor)
Definition DataflowTypePolicy.h:329
static bool SupportsTypeStatic(FName InType)
Definition DataflowTypePolicy.h:318
virtual bool SupportsType(FName InType) const override
Definition DataflowTypePolicy.h:313
static IDataflowTypePolicy * GetInterface()
Definition DataflowTypePolicy.h:339
Definition DataflowTypePolicy.h:286
Definition DataflowTypePolicy.h:347
virtual bool SupportsType(FName InType) const override
Definition DataflowTypePolicy.h:348
static bool VisitPolicyByType(FName RequestedType, TVisitor Visitor)
Definition DataflowTypePolicy.h:368
static bool SupportsTypeStatic(FName InType)
Definition DataflowTypePolicy.h:353
static IDataflowTypePolicy * GetInterface()
Definition DataflowTypePolicy.h:379
static bool GetObjectPtrInnerType(const FString &InTypeStr, FString &InnerType)
Definition DataflowTypePolicy.h:386
Definition DataflowTypePolicy.h:281
Definition DataflowTypePolicy.h:274
Definition DataflowSelection.h:98
Definition DataflowTypePolicy.h:106
virtual bool SupportsType(FName Type) const =0
static int32 Strlen(const CharType *String)
Definition CString.h:1047
virtual bool SupportsType(FName InType) const override
Definition DataflowTypePolicy.h:193
static bool SupportsTypeStatic(FName InType)
Definition DataflowTypePolicy.h:198
static IDataflowTypePolicy * GetInterface()
Definition DataflowTypePolicy.h:214
static bool VisitPolicyByType(FName RequestedType, TVisitor Visitor)
Definition DataflowTypePolicy.h:205
static bool SupportsTypeStatic(FName InType)
Definition DataflowTypePolicy.h:176
static bool VisitPolicyByType(FName RequestedType, TVisitor Visitor)
Definition DataflowTypePolicy.h:182
virtual bool SupportsType(FName InType) const override
Definition DataflowTypePolicy.h:171
Definition DataflowTypePolicy.h:166
static const TCHAR * GetName()
Definition DataflowTypePolicy.h:41
Definition DataflowTypePolicy.h:16
Definition DataflowTypePolicy.h:131
static IDataflowTypePolicy * GetInterface()
Definition DataflowTypePolicy.h:156
static bool SupportsTypeStatic(FName InType)
Definition DataflowTypePolicy.h:139
static const FName TypeName
Definition DataflowTypePolicy.h:162
T FType
Definition DataflowTypePolicy.h:132
static bool VisitPolicyByType(FName RequestedType, TVisitor Visitor)
Definition DataflowTypePolicy.h:145
virtual bool SupportsType(FName InType) const override
Definition DataflowTypePolicy.h:134
Definition ObjectPtr.h:488
IntType X
Definition IntPoint.h:34
IntType X
Definition IntVector.h:31
IntType X
Definition IntVector.h:1225
static UE_FORCEINLINE_HINT TQuat< double > MakeFromRotator(const TRotator< double > &R)
Definition Quat.h:122
CORE_API TVector< T > Euler() const
Definition UnrealMath.cpp:1314
static CORE_API TRotator MakeFromEuler(const TVector< double > &Euler)
Definition UnrealMath.cpp:559
T X
Definition Vector2D.h:49
T X
Definition Vector4.h:43
T X
Definition Vector.h:62