void UEnvQueryTest_Dot::GatherLineDirections(TArray<FVector>& Directions, struct FEnvQueryInstance& QueryInstance, const FVector& ItemLocation, TSubclassOf<class UEnvQueryContext> LineFrom, TSubclassOf<class UEnvQueryContext> LineTo) { TArray<FVector> ContextLocationFrom; if (IsContextPerItem(LineFrom)) { ContextLocationFrom.Add(ItemLocation); } else { QueryInstance.PrepareContext(LineFrom, ContextLocationFrom); } for (int32 i = 0; i < ContextLocationFrom.Num(); i++) { TArray<FVector> ContextLocationTo; if (IsContextPerItem(LineTo)) { ContextLocationTo.Add(ItemLocation); } else { QueryInstance.PrepareContext(LineTo, ContextLocationTo); } for (int32 i2 = 0; i2 < ContextLocationTo.Num(); i2++) { const FVector Dir = (ContextLocationTo[i2] - ContextLocationFrom[i]).SafeNormal(); Directions.Add(Dir); } } }
void UEnvQueryTest_Dot::GatherLineDirections(TArray<FVector>& Directions, FEnvQueryInstance& QueryInstance, const FVector& ItemLocation, TSubclassOf<UEnvQueryContext> LineFrom, TSubclassOf<UEnvQueryContext> LineTo) const { TArray<FVector> ContextLocationFrom; if (IsContextPerItem(LineFrom)) { ContextLocationFrom.Add(ItemLocation); } else { QueryInstance.PrepareContext(LineFrom, ContextLocationFrom); } for (int32 FromIndex = 0; FromIndex < ContextLocationFrom.Num(); FromIndex++) { TArray<FVector> ContextLocationTo; if (IsContextPerItem(LineTo)) { ContextLocationTo.Add(ItemLocation); } else { QueryInstance.PrepareContext(LineTo, ContextLocationTo); } for (int32 ToIndex = 0; ToIndex < ContextLocationTo.Num(); ToIndex++) { const FVector Dir = (ContextLocationTo[ToIndex] - ContextLocationFrom[FromIndex]).GetSafeNormal(); Directions.Add(Dir); } } }
bool UEnvQueryTest_Dot::RequiresPerItemUpdates(TSubclassOf<class UEnvQueryContext> LineFrom, TSubclassOf<class UEnvQueryContext> LineTo, TSubclassOf<class UEnvQueryContext> LineDirection, bool bUseDirectionContext) { bool bRequirePerItemUpdate = false; if (bUseDirectionContext) { bRequirePerItemUpdate = IsContextPerItem(LineDirection); } else { bRequirePerItemUpdate = IsContextPerItem(LineFrom) || IsContextPerItem(LineTo); } return bRequirePerItemUpdate; }
void UEnvQueryTest_Dot::GatherLineDirections(TArray<FVector>& Directions, FEnvQueryInstance& QueryInstance, const FRotator& ItemRotation, TSubclassOf<UEnvQueryContext> LineDirection) const { TArray<FRotator> ContextRotations; if (IsContextPerItem(LineDirection)) { ContextRotations.Add(ItemRotation); } else { QueryInstance.PrepareContext(LineDirection, ContextRotations); } for (int32 RotationIndex = 0; RotationIndex < ContextRotations.Num(); RotationIndex++) { const FVector Dir = ContextRotations[RotationIndex].Vector(); Directions.Add(Dir); } }
void UEnvQueryTest_Dot::GatherLineDirections(TArray<FVector>& Directions, struct FEnvQueryInstance& QueryInstance, const FRotator& ItemRotation, TSubclassOf<class UEnvQueryContext> LineDirection) { TArray<FRotator> ContextRotations; if (IsContextPerItem(LineDirection)) { ContextRotations.Add(ItemRotation); } else { QueryInstance.PrepareContext(LineDirection, ContextRotations); } for (int32 i = 0; i < ContextRotations.Num(); i++) { const FVector Dir = ContextRotations[i].Vector(); Directions.Add(Dir); } }