UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
KismetMathLibrary.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "UObject/Script.h"
8#include "Math/RandomStream.h"
10#include "UObject/UnrealType.h"
11#include "UObject/Stack.h"
16
17#include "KismetMathLibrary.generated.h"
18
19// Whether to inline functions at all
20#define KISMET_MATH_INLINE_ENABLED (!UE_BUILD_DEBUG)
21
23UENUM(BlueprintType)
72
74UENUM(BlueprintType)
76{
77 enum Type : int
78 {
81
84
87 };
88}
89
91UENUM(BlueprintType)
93{
94 enum Type : int
95 {
98
101
104
106 Fourth
107 };
108}
109
110USTRUCT(BlueprintType)
112{
114
115 float PrevTarget;
116 float Velocity;
117 bool bPrevTargetValid;
118
120 : PrevTarget(0.f)
121 , Velocity(0.f)
122 , bPrevTargetValid(false)
123 {
124 }
125
126 void Reset()
127 {
128 PrevTarget = Velocity = 0.f;
129 bPrevTargetValid = false;
130 }
131};
132
133USTRUCT(BlueprintType)
135{
137
138 FVector PrevTarget;
140 bool bPrevTargetValid;
141
143 : PrevTarget(FVector::ZeroVector)
144 , Velocity(FVector::ZeroVector)
145 , bPrevTargetValid(false)
146 {
147 }
148
149 void Reset()
150 {
151 PrevTarget = Velocity = FVector::ZeroVector;
152 bPrevTargetValid = false;
153 }
154};
155
156USTRUCT(BlueprintType)
158{
160
161 FQuat PrevTarget;
163 bool bPrevTargetValid;
164
166 : PrevTarget(FQuat::Identity)
167 , AngularVelocity(FVector::ZeroVector)
168 , bPrevTargetValid(false)
169 {
170 }
171
172 void Reset()
173 {
174 PrevTarget = FQuat::Identity;
176 bPrevTargetValid = false;
177 }
178};
179
180#if KISMET_MATH_INLINE_ENABLED
181#define UE_INL_API
182#else
183#define UE_INL_API ENGINE_API
184#endif
185
186struct FRuntimeFloatCurve;
187
188UCLASS(meta=(BlueprintThreadSafe, ScriptName = "MathLibrary"), MinimalAPI)
190{
192
193 //
194 // Boolean functions.
195 //
196
197
198 UFUNCTION(BlueprintPure, Category="Math|Random", meta=(NotBlueprintThreadSafe))
199 static UE_INL_API bool RandomBool();
200
205 UFUNCTION(BlueprintPure, Category = "Math|Random", meta=(Weight = "0.5", NotBlueprintThreadSafe))
206 static ENGINE_API bool RandomBoolWithWeight(float Weight);
207
212 UFUNCTION(BlueprintPure, Category = "Math|Random", meta=(Weight = "0.5", ScriptMethod = "RandomBoolWithWeight", ScriptMethodMutable))
213 static ENGINE_API bool RandomBoolWithWeightFromStream(const FRandomStream& RandomStream, float Weight);
214
216 UFUNCTION(BlueprintPure, meta=(DisplayName = "NOT Boolean", CompactNodeTitle = "NOT", Keywords = "! not negate"), Category="Math|Boolean")
217 static UE_INL_API bool Not_PreBool(bool A);
218
220 UFUNCTION(BlueprintPure, meta=(DisplayName = "Equal (Boolean)", CompactNodeTitle = "==", Keywords = "== equal"), Category="Math|Boolean")
221 static UE_INL_API bool EqualEqual_BoolBool(bool A, bool B);
222
224 UFUNCTION(BlueprintPure, meta=(DisplayName = "Not Equal (Boolean)", CompactNodeTitle = "!=", Keywords = "!= not equal"), Category="Math|Boolean")
225 static UE_INL_API bool NotEqual_BoolBool(bool A, bool B);
226
228 UFUNCTION(BlueprintPure, meta=(DisplayName = "AND Boolean", CompactNodeTitle = "AND", Keywords = "& and", CommutativeAssociativeBinaryOperator = "true"), Category="Math|Boolean")
229 static UE_INL_API bool BooleanAND(bool A, bool B);
230
232 UFUNCTION(BlueprintPure, meta=(DisplayName = "NAND Boolean", CompactNodeTitle = "NAND", Keywords = "!& nand", CommutativeAssociativeBinaryOperator = "true"), Category="Math|Boolean")
233 static UE_INL_API bool BooleanNAND(bool A, bool B);
234
236 UFUNCTION(BlueprintPure, meta=(DisplayName = "OR Boolean", CompactNodeTitle = "OR", Keywords = "| or", CommutativeAssociativeBinaryOperator = "true"), Category="Math|Boolean")
237 static UE_INL_API bool BooleanOR(bool A, bool B);
238
240 UFUNCTION(BlueprintPure, meta=(DisplayName = "XOR Boolean", CompactNodeTitle = "XOR", Keywords = "^ xor"), Category="Math|Boolean")
241 static UE_INL_API bool BooleanXOR(bool A, bool B);
242
244 UFUNCTION(BlueprintPure, meta=(DisplayName = "NOR Boolean", CompactNodeTitle = "NOR", Keywords = "!^ nor"), Category="Math|Boolean")
245 static UE_INL_API bool BooleanNOR(bool A, bool B);
246
247 //
248 // Byte functions.
249 //
250
252 UFUNCTION(BlueprintPure, meta=(DisplayName = "Byte * Byte", CompactNodeTitle = "*", Keywords = "* multiply", CommutativeAssociativeBinaryOperator = "true"), Category="Math|Byte")
253 static UE_INL_API uint8 Multiply_ByteByte(uint8 A, uint8 B);
254
256 UFUNCTION(BlueprintPure, meta=(DisplayName = "Byte / Byte", CompactNodeTitle = "/", Keywords = "/ divide division"), Category="Math|Byte")
257 static UE_INL_API uint8 Divide_ByteByte(uint8 A, uint8 B = 1);
258
260 UFUNCTION(BlueprintPure, meta=(DisplayName = "% (Byte)", CompactNodeTitle = "%", Keywords = "% modulus"), Category="Math|Byte")
262
264 UFUNCTION(BlueprintPure, meta=(DisplayName = "Byte + Byte", CompactNodeTitle = "+", Keywords = "+ add plus", CommutativeAssociativeBinaryOperator = "true"), Category="Math|Byte")
265 static UE_INL_API uint8 Add_ByteByte(uint8 A, uint8 B = 1);
266
268 UFUNCTION(BlueprintPure, meta=(DisplayName = "Byte - Byte", CompactNodeTitle = "-", Keywords = "- subtract minus"), Category="Math|Byte")
269 static UE_INL_API uint8 Subtract_ByteByte(uint8 A, uint8 B = 1);
270
272 UFUNCTION(BlueprintPure, meta = (DisplayName = "Min (Byte)", CompactNodeTitle = "MIN", CommutativeAssociativeBinaryOperator = "true"), Category = "Math|Byte")
273 static UE_INL_API uint8 BMin(uint8 A, uint8 B);
274
276 UFUNCTION(BlueprintPure, meta = (DisplayName = "Max (Byte)", CompactNodeTitle = "MAX", CommutativeAssociativeBinaryOperator = "true"), Category = "Math|Byte")
277 static UE_INL_API uint8 BMax(uint8 A, uint8 B);
278
280 UFUNCTION(BlueprintPure, meta=(DisplayName = "Byte < Byte", CompactNodeTitle = "<", Keywords = "< less"), Category="Math|Byte")
281 static UE_INL_API bool Less_ByteByte(uint8 A, uint8 B);
282
284 UFUNCTION(BlueprintPure, meta=(DisplayName = "Byte > Byte", CompactNodeTitle = ">", Keywords = "> greater"), Category="Math|Byte")
285 static UE_INL_API bool Greater_ByteByte(uint8 A, uint8 B);
286
288 UFUNCTION(BlueprintPure, meta=(DisplayName = "Byte <= Byte", CompactNodeTitle = "<=", Keywords = "<= less"), Category="Math|Byte")
289 static UE_INL_API bool LessEqual_ByteByte(uint8 A, uint8 B);
290
292 UFUNCTION(BlueprintPure, meta=(DisplayName = "Byte >= Byte", CompactNodeTitle = ">=", Keywords = ">= greater"), Category="Math|Byte")
293 static UE_INL_API bool GreaterEqual_ByteByte(uint8 A, uint8 B);
294
296 UFUNCTION(BlueprintPure, meta=(DisplayName = "Equal (Byte)", CompactNodeTitle = "==", Keywords = "== equal"), Category="Math|Byte")
298
300 UFUNCTION(BlueprintPure, meta=(DisplayName = "Not Equal (Byte)", CompactNodeTitle = "!=", Keywords = "!= not equal"), Category="Math|Byte")
302
303 //
304 // Integer functions.
305 //
306
308 UFUNCTION(BlueprintPure, meta=(DisplayName = "int * int", CompactNodeTitle = "*", Keywords = "* multiply", CommutativeAssociativeBinaryOperator = "true"), Category="Math|Integer")
309 static UE_INL_API int32 Multiply_IntInt(int32 A, int32 B);
310
312 UFUNCTION(BlueprintPure, meta=(DisplayName = "int / int", CompactNodeTitle = "/", Keywords = "/ divide division"), Category="Math|Integer")
313 static UE_INL_API int32 Divide_IntInt(int32 A, int32 B = 1);
314
316 UFUNCTION(BlueprintPure, meta=(DisplayName = "% (Integer)", CompactNodeTitle = "%", Keywords = "% modulus"), Category="Math|Integer")
318
320 UFUNCTION(BlueprintPure, meta=(DisplayName = "int + int", CompactNodeTitle = "+", Keywords = "+ add plus", CommutativeAssociativeBinaryOperator = "true"), Category="Math|Integer")
321 static UE_INL_API int32 Add_IntInt(int32 A, int32 B = 1);
322
324 UFUNCTION(BlueprintPure, meta=(DisplayName = "int - int", CompactNodeTitle = "-", Keywords = "- subtract minus"), Category="Math|Integer")
325 static UE_INL_API int32 Subtract_IntInt(int32 A, int32 B = 1);
326
328 UFUNCTION(BlueprintPure, meta=(DisplayName = "integer < integer", CompactNodeTitle = "<", Keywords = "< less"), Category="Math|Integer")
329 static UE_INL_API bool Less_IntInt(int32 A, int32 B);
330
332 UFUNCTION(BlueprintPure, meta=(DisplayName = "integer > integer", CompactNodeTitle = ">", Keywords = "> greater"), Category="Math|Integer")
333 static UE_INL_API bool Greater_IntInt(int32 A, int32 B);
334
336 UFUNCTION(BlueprintPure, meta=(DisplayName = "integer <= integer", CompactNodeTitle = "<=", Keywords = "<= less"), Category="Math|Integer")
337 static UE_INL_API bool LessEqual_IntInt(int32 A, int32 B);
338
340 UFUNCTION(BlueprintPure, meta=(DisplayName = "integer >= integer", CompactNodeTitle = ">=", Keywords = ">= greater"), Category="Math|Integer")
341 static UE_INL_API bool GreaterEqual_IntInt(int32 A, int32 B);
342
344 UFUNCTION(BlueprintPure, meta=(DisplayName = "Equal (Integer)", CompactNodeTitle = "==", Keywords = "== equal"), Category="Math|Integer")
346
348 UFUNCTION(BlueprintPure, meta=(DisplayName = "Not Equal (Integer)", CompactNodeTitle = "!=", Keywords = "!= not equal"), Category="Math|Integer")
349 static UE_INL_API bool NotEqual_IntInt(int32 A, int32 B);
350
355 UFUNCTION(BlueprintPure, meta = (DisplayName = "In Range (Integer)", Min = "0", Max = "10"), Category = "Math|Integer")
356 static ENGINE_API bool InRange_IntInt(int32 Value, int32 Min, int32 Max, bool InclusiveMin = true, bool InclusiveMax = true);
357
359 UFUNCTION(BlueprintPure, meta=(DisplayName = "Bitwise AND", CompactNodeTitle = "&", Keywords = "& and", CommutativeAssociativeBinaryOperator = "true"), Category="Math|Integer")
360 static UE_INL_API int32 And_IntInt(int32 A, int32 B);
361
363 UFUNCTION(BlueprintPure, meta=(DisplayName = "Bitwise XOR", CompactNodeTitle = "^", Keywords = "^ xor"), Category="Math|Integer")
364 static UE_INL_API int32 Xor_IntInt(int32 A, int32 B);
365
367 UFUNCTION(BlueprintPure, meta=(DisplayName = "Bitwise OR", CompactNodeTitle = "|", Keywords = "| or", CommutativeAssociativeBinaryOperator = "true"), Category="Math|Integer")
368 static UE_INL_API int32 Or_IntInt(int32 A, int32 B);
369
371 UFUNCTION(BlueprintPure, meta = (DisplayName = "Bitwise NOT", CompactNodeTitle = "~", Keywords = "~ not"), Category = "Math|Integer")
372 static UE_INL_API int32 Not_Int(int32 A);
373
375 UFUNCTION(BlueprintPure, meta=(DisplayName = "Sign (Integer)"), Category="Math|Integer")
377
379 UFUNCTION(BlueprintPure, Category="Math|Random", meta=(NotBlueprintThreadSafe))
380 static UE_INL_API int32 RandomInteger(UPARAM(DisplayName = "Exclusive Max") int32 Max);
381
383 UFUNCTION(BlueprintPure, Category="Math|Random", meta = (NotBlueprintThreadSafe))
384 static UE_INL_API int32 RandomIntegerInRange(int32 Min, int32 Max);
385
387 UFUNCTION(BlueprintPure, meta=(DisplayName = "Min (Integer)", CompactNodeTitle = "MIN", CommutativeAssociativeBinaryOperator = "true"), Category="Math|Integer")
388 static UE_INL_API int32 Min(int32 A, int32 B);
389
391 UFUNCTION(BlueprintPure, meta=(DisplayName = "Max (Integer)", CompactNodeTitle = "MAX", CommutativeAssociativeBinaryOperator = "true"), Category="Math|Integer")
392 static UE_INL_API int32 Max(int32 A, int32 B);
393
395 UFUNCTION(BlueprintPure, meta=(DisplayName = "Clamp (Integer)"), Category="Math|Integer")
397
399 UFUNCTION(BlueprintPure, meta = (DisplayName = "Wrap (Integer)", Min = "0", Max = "100"), Category = "Math|Integer")
401
403 UFUNCTION(BlueprintPure, meta=(DisplayName = "Absolute (Integer)", CompactNodeTitle = "ABS"), Category="Math|Integer")
405
406 //
407 // Integer64 functions.
408 //
409
411 UFUNCTION(BlueprintPure, meta=(DisplayName = "integer64 * integer64", CompactNodeTitle = "*", Keywords = "* multiply", CommutativeAssociativeBinaryOperator = "true"), Category="Math|Integer64")
412 static UE_INL_API int64 Multiply_Int64Int64(int64 A, int64 B);
413
415 UFUNCTION(BlueprintPure, meta=(DisplayName = "integer64 / integer64", CompactNodeTitle = "/", Keywords = "/ divide division"), Category="Math|Integer64")
416 static UE_INL_API int64 Divide_Int64Int64(int64 A, int64 B = 1);
417
419 UFUNCTION(BlueprintPure, meta = (DisplayName = "% (integer64)", CompactNodeTitle = "%", Keywords = "% modulus"), Category = "Math|Integer64")
421
423 UFUNCTION(BlueprintPure, meta=(DisplayName = "integer64 + integer64", CompactNodeTitle = "+", Keywords = "+ add plus", CommutativeAssociativeBinaryOperator = "true"), Category="Math|Integer64")
424 static UE_INL_API int64 Add_Int64Int64(int64 A, int64 B = 1);
425
427 UFUNCTION(BlueprintPure, meta=(DisplayName = "integer64 - integer64", CompactNodeTitle = "-", Keywords = "- subtract minus"), Category="Math|Integer64")
428 static UE_INL_API int64 Subtract_Int64Int64(int64 A, int64 B = 1);
429
431 UFUNCTION(BlueprintPure, meta=(DisplayName = "integer64 < integer64", CompactNodeTitle = "<", Keywords = "< less"), Category="Math|Integer64")
432 static UE_INL_API bool Less_Int64Int64(int64 A, int64 B);
433
435 UFUNCTION(BlueprintPure, meta=(DisplayName = "integer64 > integer64", CompactNodeTitle = ">", Keywords = "> greater"), Category="Math|Integer64")
436 static UE_INL_API bool Greater_Int64Int64(int64 A, int64 B);
437
439 UFUNCTION(BlueprintPure, meta=(DisplayName = "integer64 <= integer64", CompactNodeTitle = "<=", Keywords = "<= less"), Category="Math|Integer64")
440 static UE_INL_API bool LessEqual_Int64Int64(int64 A, int64 B);
441
443 UFUNCTION(BlueprintPure, meta=(DisplayName = "integer64 >= integer64", CompactNodeTitle = ">=", Keywords = ">= greater"), Category="Math|Integer64")
444 static UE_INL_API bool GreaterEqual_Int64Int64(int64 A, int64 B);
445
447 UFUNCTION(BlueprintPure, meta=(DisplayName = "Equal (Integer64)", CompactNodeTitle = "==", Keywords = "== equal"), Category="Math|Integer64")
449
451 UFUNCTION(BlueprintPure, meta=(DisplayName = "Not Equal (Integer64)", CompactNodeTitle = "!=", Keywords = "!= not equal"), Category="Math|Integer64")
453
458 UFUNCTION(BlueprintPure, meta = (DisplayName = "In Range (Integer64)", Min = "0", Max = "10"), Category = "Math|Integer64")
459 static ENGINE_API bool InRange_Int64Int64(int64 Value, int64 Min, int64 Max, bool InclusiveMin = true, bool InclusiveMax = true);
460
462 UFUNCTION(BlueprintPure, meta=(DisplayName = "Bitwise AND", CompactNodeTitle = "&", Keywords = "& and", CommutativeAssociativeBinaryOperator = "true"), Category="Math|Integer64")
463 static UE_INL_API int64 And_Int64Int64(int64 A, int64 B);
464
466 UFUNCTION(BlueprintPure, meta=(DisplayName = "Bitwise XOR", CompactNodeTitle = "^", Keywords = "^ xor"), Category="Math|Integer64")
467 static UE_INL_API int64 Xor_Int64Int64(int64 A, int64 B);
468
470 UFUNCTION(BlueprintPure, meta=(DisplayName = "Bitwise OR", CompactNodeTitle = "|", Keywords = "| or", CommutativeAssociativeBinaryOperator = "true"), Category="Math|Integer64")
471 static UE_INL_API int64 Or_Int64Int64(int64 A, int64 B);
472
474 UFUNCTION(BlueprintPure, meta = (DisplayName = "Bitwise NOT", CompactNodeTitle = "~", Keywords = "~ not"), Category = "Math|Integer64")
475 static UE_INL_API int64 Not_Int64(int64 A);
476
478 UFUNCTION(BlueprintPure, meta=(DisplayName = "Sign (Integer64)"), Category="Math|Integer64")
480
482 UFUNCTION(BlueprintPure, Category="Math|Random", meta=(NotBlueprintThreadSafe))
483 static UE_INL_API int64 RandomInteger64(UPARAM(DisplayName = "Exclusive Max") int64 Max);
484
486 UFUNCTION(BlueprintPure, Category="Math|Random", meta = (NotBlueprintThreadSafe))
487 static UE_INL_API int64 RandomInteger64InRange(int64 Min, int64 Max);
488
490 UFUNCTION(BlueprintPure, meta=(DisplayName = "Min (Integer64)", CompactNodeTitle = "MIN", CommutativeAssociativeBinaryOperator = "true"), Category="Math|Integer64")
492
494 UFUNCTION(BlueprintPure, meta=(DisplayName = "Max (Integer64)", CompactNodeTitle = "MAX", CommutativeAssociativeBinaryOperator = "true"), Category="Math|Integer64")
496
498 UFUNCTION(BlueprintPure, meta=(DisplayName = "Clamp (Integer64)"), Category="Math|Integer64")
500
502 UFUNCTION(BlueprintPure, meta=(DisplayName = "Absolute (Integer64)", CompactNodeTitle = "ABS"), Category="Math|Integer64")
504
505 //
506 // Float functions.
507 //
508
510 UFUNCTION(BlueprintPure, meta = (DisplayName = "Power"), Category = "Math|Float")
511 static UE_INL_API double MultiplyMultiply_FloatFloat(double Base, double Exp);
512
514 UFUNCTION(BlueprintPure, meta = (DisplayName = "int * float", CompactNodeTitle = "*", Keywords = "* multiply"), Category = "Math|Float")
515 static UE_INL_API double Multiply_IntFloat(int32 A, double B);
516
518 UFUNCTION(BlueprintPure, CustomThunk, meta = (DisplayName = "% (Float)", CompactNodeTitle = "%", Keywords = "% modulus"), Category = "Math|Float")
519 static ENGINE_API double Percent_FloatFloat(double A, double B = 1.f);
520
521 static ENGINE_API double GenericPercent_FloatFloat(double A, double B);
522
525 {
528
529 P_FINISH;
530
531 if (B == 0.f)
532 {
533 FFrame::KismetExecutionMessage(*FString::Printf(TEXT("Modulo by zero detected: %f %% 0\n%s"), A, *Stack.GetStackTrace()), ELogVerbosity::Warning);
534 *(double*)RESULT_PARAM = 0;
535 return;
536 }
537
538 *(double*)RESULT_PARAM = GenericPercent_FloatFloat(A, B);
539 }
540
542 UFUNCTION(BlueprintPure, Category="Math|Float")
543 static UE_INL_API double Fraction(double A);
544
546 UFUNCTION(BlueprintPure, meta = (DisplayName = "float + float", CompactNodeTitle = "+", Keywords = "+ add plus", CommutativeAssociativeBinaryOperator = "true"), Category = "Math|Float")
547 static UE_INL_API double Add_DoubleDouble(double A, double B = 1.0);
548
550 UFUNCTION(BlueprintPure, meta = (DisplayName = "float - float", CompactNodeTitle = "-", Keywords = "- subtract minus"), Category = "Math|Float")
551 static UE_INL_API double Subtract_DoubleDouble(double A, double B = 1.0);
552
554 UFUNCTION(BlueprintPure, meta = (DisplayName = "float * float", CompactNodeTitle = "*", Keywords = "* multiply", CommutativeAssociativeBinaryOperator = "true"), Category = "Math|Float")
555 static UE_INL_API double Multiply_DoubleDouble(double A, double B);
556
558 UFUNCTION(BlueprintPure, meta = (DisplayName = "float / float", CompactNodeTitle = "/", Keywords = "/ divide division"), Category = "Math|Float")
559 static UE_INL_API double Divide_DoubleDouble(double A, double B = 1.0);
560
562 UFUNCTION(BlueprintPure, meta = (DisplayName = "float < float", CompactNodeTitle = "<", Keywords = "< less"), Category = "Math|Float")
563 static UE_INL_API bool Less_DoubleDouble(double A, double B);
564
566 UFUNCTION(BlueprintPure, meta = (DisplayName = "float > float", CompactNodeTitle = ">", Keywords = "> greater"), Category = "Math|Float")
567 static UE_INL_API bool Greater_DoubleDouble(double A, double B);
568
570 UFUNCTION(BlueprintPure, meta = (DisplayName = "float <= float", CompactNodeTitle = "<=", Keywords = "<= less"), Category = "Math|Float")
571 static UE_INL_API bool LessEqual_DoubleDouble(double A, double B);
572
574 UFUNCTION(BlueprintPure, meta = (DisplayName = "float >= float", CompactNodeTitle = ">=", Keywords = ">= greater"), Category = "Math|Float")
575 static UE_INL_API bool GreaterEqual_DoubleDouble(double A, double B);
576
578 UFUNCTION(BlueprintPure, meta = (DisplayName = "Equal (Float)", CompactNodeTitle = "==", Keywords = "== equal"), Category = "Math|Float")
579 static UE_INL_API bool EqualEqual_DoubleDouble(double A, double B);
580
582 UFUNCTION(BlueprintPure, meta = (DisplayName = "Nearly Equal (Float)", Keywords = "== equal"), Category = "Math|Float")
583 static UE_INL_API bool NearlyEqual_FloatFloat(double A, double B, double ErrorTolerance = 1.e-6);
584
586 UFUNCTION(BlueprintPure, meta = (DisplayName = "Not Equal (Float)", CompactNodeTitle = "!=", Keywords = "!= not equal"), Category = "Math|Float")
587 static UE_INL_API bool NotEqual_DoubleDouble(double A, double B);
588
593 UFUNCTION(BlueprintPure, meta = (DisplayName = "In Range (Float)", Min = "0.0", Max = "1.0"), Category = "Math|Float")
594 static ENGINE_API bool InRange_FloatFloat(double Value, double Min, double Max, bool InclusiveMin = true, bool InclusiveMax = true);
595
597 UFUNCTION(BlueprintPure, meta=(Keywords = "pythagorean theorem"), Category = "Math|Float")
598 static ENGINE_API double Hypotenuse(double Width, double Height);
599
605 UFUNCTION(BlueprintPure, meta = (DisplayName = "Snap To Grid (Float)"), Category = "Math|Float")
606 static UE_INL_API double GridSnap_Float(double Location, double GridSize);
607
609 UFUNCTION(BlueprintPure, meta=(DisplayName = "Absolute (Float)", CompactNodeTitle = "ABS"), Category="Math|Float")
610 static UE_INL_API double Abs(double A);
611
613 UFUNCTION(BlueprintPure, meta=(DisplayName = "Sin (Radians)", CompactNodeTitle = "SIN", Keywords = "sine"), Category="Math|Trig")
614 static UE_INL_API double Sin(double A);
615
617 UFUNCTION(BlueprintPure, meta=(DisplayName = "Asin (Radians)", CompactNodeTitle = "ASIN", Keywords = "sine"), Category="Math|Trig")
618 static UE_INL_API double Asin(double A);
619
621 UFUNCTION(BlueprintPure, meta=(DisplayName = "Cos (Radians)", CompactNodeTitle = "COS"), Category="Math|Trig")
622 static UE_INL_API double Cos(double A);
623
625 UFUNCTION(BlueprintPure, meta=(DisplayName = "Acos (Radians)", CompactNodeTitle = "ACOS"), Category="Math|Trig")
626 static UE_INL_API double Acos(double A);
627
629 UFUNCTION(BlueprintPure, meta=(DisplayName = "Tan (Radians)", CompactNodeTitle = "TAN"), Category="Math|Trig")
630 static UE_INL_API double Tan(double A);
631
633 UFUNCTION(BlueprintPure, meta=(DisplayName = "Atan (Radians)"), Category="Math|Trig")
634 static UE_INL_API double Atan(double A);
635
637 UFUNCTION(BlueprintPure, meta=(DisplayName = "Atan2 (Radians)"), Category="Math|Trig")
638 static UE_INL_API double Atan2(double Y, double X);
639
641 UFUNCTION(BlueprintPure, Category="Math|Float", meta=(CompactNodeTitle = "e"))
642 static UE_INL_API double Exp(double A);
643
645 UFUNCTION(BlueprintPure, Category = "Math|Float")
646 static ENGINE_API double Log(double A, double Base = 1.0);
647
649 UFUNCTION(BlueprintPure, Category="Math|Float")
650 static UE_INL_API double Loge(double A);
651
653 UFUNCTION(BlueprintPure, Category="Math|Float", meta=(Keywords = "square root", CompactNodeTitle = "SQRT"))
654 static UE_INL_API double Sqrt(double A);
655
657 UFUNCTION(BlueprintPure, Category="Math|Float", meta=(CompactNodeTitle = "^2"))
658 static UE_INL_API double Square(double A);
659
661 UFUNCTION(BlueprintPure, Category="Math|Random", meta=(NotBlueprintThreadSafe))
662 static UE_INL_API double RandomFloat();
663
665 UFUNCTION(BlueprintPure, Category="Math|Random", meta=(NotBlueprintThreadSafe))
666 static UE_INL_API double RandomFloatInRange(double Min, double Max);
667
669 UFUNCTION(BlueprintPure, meta=(DisplayName = "Get PI", CompactNodeTitle = "PI"), Category="Math|Trig")
670 static UE_INL_API double GetPI();
671
673 UFUNCTION(BlueprintPure, meta=(DisplayName = "Get TAU", CompactNodeTitle = "TAU"), Category="Math|Trig")
674 static UE_INL_API double GetTAU();
675
677 UFUNCTION(BlueprintPure, meta=(DisplayName = "Degrees To Radians", CompactNodeTitle = "D2R"), Category="Math|Trig")
678 static UE_INL_API double DegreesToRadians(double A);
679
681 UFUNCTION(BlueprintPure, meta=(DisplayName = "Radians To Degrees", CompactNodeTitle = "R2D"), Category="Math|Trig")
682 static UE_INL_API double RadiansToDegrees(double A);
683
685 UFUNCTION(BlueprintPure, meta=(DisplayName = "Sin (Degrees)", CompactNodeTitle = "SINd", Keywords = "sine"), Category="Math|Trig")
686 static UE_INL_API double DegSin(double A);
687
689 UFUNCTION(BlueprintPure, meta=(DisplayName = "Asin (Degrees)", CompactNodeTitle = "ASINd", Keywords = "sine"), Category="Math|Trig")
690 static UE_INL_API double DegAsin(double A);
691
693 UFUNCTION(BlueprintPure, meta=(DisplayName = "Cos (Degrees)", CompactNodeTitle = "COSd"), Category="Math|Trig")
694 static UE_INL_API double DegCos(double A);
695
697 UFUNCTION(BlueprintPure, meta=(DisplayName = "Acos (Degrees)", CompactNodeTitle = "ACOSd"), Category="Math|Trig")
698 static UE_INL_API double DegAcos(double A);
699
701 UFUNCTION(BlueprintPure, meta=(DisplayName = "Tan (Degrees)", CompactNodeTitle = "TANd"), Category="Math|Trig")
702 static UE_INL_API double DegTan(double A);
703
705 UFUNCTION(BlueprintPure, meta=(DisplayName = "Atan (Degrees)"), Category="Math|Trig")
706 static UE_INL_API double DegAtan(double A);
707
709 UFUNCTION(BlueprintPure, meta=(DisplayName = "Atan2 (Degrees)"), Category="Math|Trig")
710 static UE_INL_API double DegAtan2(double Y, double X);
711
719 UFUNCTION(BlueprintPure, meta=(DisplayName = "Clamp Angle"), Category="Math|Float")
720 static UE_INL_API double ClampAngle(double AngleDegrees, double MinAngleDegrees, double MaxAngleDegrees);
721
723 UFUNCTION(BlueprintPure, meta=(DisplayName = "Min (Float)", CompactNodeTitle = "MIN", CommutativeAssociativeBinaryOperator = "true"), Category="Math|Float")
724 static UE_INL_API double FMin(double A, double B);
725
727 UFUNCTION(BlueprintPure, meta=(DisplayName = "Max (Float)", CompactNodeTitle = "MAX", CommutativeAssociativeBinaryOperator = "true"), Category="Math|Float")
728 static UE_INL_API double FMax(double A, double B);
729
731 UFUNCTION(BlueprintPure, meta=(DisplayName = "Clamp (Float)", Min="0.0", Max="1.0"), Category="Math|Float")
732 static UE_INL_API double FClamp(double Value, double Min, double Max);
733
735 UFUNCTION(BlueprintPure, meta = (DisplayName = "Wrap (Float)", Min = "0.0", Max = "1.0"), Category = "Math|Float")
736 static UE_INL_API double FWrap(double Value, double Min, double Max);
737
739 UFUNCTION(BlueprintPure, Category = "Math|Float", meta = (Keywords = "percent"))
740 static ENGINE_API double SafeDivide(double A, double B);
741
743 UFUNCTION(BlueprintPure, Category="Math|Integer")
744 static ENGINE_API void MaxOfIntArray(const TArray<int32>& IntArray, int32& IndexOfMaxValue, int32& MaxValue);
745
747 UFUNCTION(BlueprintPure, Category="Math|Integer")
748 static ENGINE_API void MinOfIntArray(const TArray<int32>& IntArray, int32& IndexOfMinValue, int32& MinValue);
749
751 UFUNCTION(BlueprintPure, Category = "Math|Integer")
752 static ENGINE_API void MedianOfIntArray(TArray<int32> IntArray, float& MedianValue);
753
755 UFUNCTION(BlueprintPure, Category = "Math|Integer")
756 static ENGINE_API void AverageOfIntArray(const TArray<int32>& IntArray, float& AverageValue);
757
759 UFUNCTION(BlueprintPure, Category="Math|Float")
760 static ENGINE_API void MaxOfFloatArray(const TArray<float>& FloatArray, int32& IndexOfMaxValue, float& MaxValue);
761
763 UFUNCTION(BlueprintPure, Category="Math|Float")
764 static ENGINE_API void MinOfFloatArray(const TArray<float>& FloatArray, int32& IndexOfMinValue, float& MinValue);
765
767 UFUNCTION(BlueprintPure, Category="Math|Byte")
768 static ENGINE_API void MaxOfByteArray(const TArray<uint8>& ByteArray, int32& IndexOfMaxValue, uint8& MaxValue);
769
771 UFUNCTION(BlueprintPure, Category="Math|Byte")
772 static ENGINE_API void MinOfByteArray(const TArray<uint8>& ByteArray, int32& IndexOfMinValue, uint8& MinValue);
773
775 UFUNCTION(BlueprintPure, Category="Math|Float")
776 static UE_INL_API double Lerp(double A, double B, double Alpha);
777
779 UFUNCTION(BlueprintPure, meta = (DisplayName = "Ease", BlueprintInternalUseOnly = "true"), Category = "Math|Interpolation")
780 static ENGINE_API double Ease(double A, double B, double Alpha, TEnumAsByte<EEasingFunc::Type> EasingFunc, double BlendExp = 2, int32 Steps = 2);
781
783 UFUNCTION(BlueprintPure, Category="Math|Float")
784 static UE_INL_API int32 Round(double A);
785
787 UFUNCTION(BlueprintPure, meta=(DisplayName = "Floor"), Category="Math|Float")
788 static UE_INL_API int32 FFloor(double A);
789
791 UFUNCTION(BlueprintPure, meta=(DisplayName = "Truncate", BlueprintAutocast), Category="Math|Float")
792 static UE_INL_API int32 FTrunc(double A); // TODO: ok to change with BP Autocast?
793
795 UFUNCTION(BlueprintPure, Category = "Math|Float", meta=(DisplayName="Ceil"))
796 static UE_INL_API int32 FCeil(double A);
797
799 UFUNCTION(BlueprintPure, meta = (DisplayName = "Round to Integer64"), Category = "Math|Float")
800 static UE_INL_API int64 Round64(double A);
801
803 UFUNCTION(BlueprintPure, meta = (DisplayName = "Floor to Integer64"), Category = "Math|Float")
804 static UE_INL_API int64 FFloor64(double A);
805
807 UFUNCTION(BlueprintPure, meta = (DisplayName = "Truncate to Integer64", BlueprintAutocast), Category = "Math|Float")
808 static UE_INL_API int64 FTrunc64(double A);
809
811 UFUNCTION(BlueprintPure, meta = (DisplayName = "Ceil to Integer64"), Category = "Math|Float")
812 static UE_INL_API int64 FCeil64(double A);
813
815 UFUNCTION(BlueprintPure, meta=(DisplayName = "Division (Whole and Remainder)"), Category="Math|Float")
816 static ENGINE_API int32 FMod(double Dividend, double Divisor, double& Remainder);
817
819 UFUNCTION(BlueprintPure, meta = (DisplayName = "Division (Whole and Remainder) to Integer64"), Category = "Math|Float")
820 static ENGINE_API int64 FMod64(double Dividend, double Divisor, double& Remainder);
821
823 UFUNCTION(BlueprintPure, meta=(DisplayName = "Sign (Float)"), Category="Math|Float")
824 static UE_INL_API double SignOfFloat(double A);
825
827 UFUNCTION(BlueprintPure, Category="Math|Float")
828 static ENGINE_API double NormalizeToRange(double Value, double RangeMin, double RangeMax);
829
831 UFUNCTION(BlueprintPure, Category="Math|Float", meta=(Keywords = "get mapped value"))
832 static ENGINE_API double MapRangeUnclamped(double Value, double InRangeA, double InRangeB, double OutRangeA, double OutRangeB);
833
835 UFUNCTION(BlueprintPure, Category="Math|Float", meta=(Keywords = "get mapped value"))
836 static ENGINE_API double MapRangeClamped(double Value, double InRangeA, double InRangeB, double OutRangeA, double OutRangeB);
837
839 UFUNCTION(BlueprintPure, meta=(Keywords = "* multiply"), Category="Math|Float")
840 static UE_INL_API double MultiplyByPi(double Value);
841
843 UFUNCTION(BlueprintPure, Category = "Math|Float")
844 static ENGINE_API double FInterpEaseInOut(double A, double B, double Alpha, double Exponent);
845
857 UFUNCTION(BlueprintPure, Category = "Math|Curves")
858 static ENGINE_API float GetRuntimeFloatCurveValue(const FRuntimeFloatCurve& Curve, const float InTime, const float InDefaultValue = 0.0f);
859
869 UFUNCTION(BlueprintPure, Category = "Math|Float")
870 static ENGINE_API float MakePulsatingValue(float InCurrentTime, float InPulsesPerSecond = 1.0f, float InPhase = 0.0f);
871
881 UFUNCTION(BlueprintPure, Category="Math|Float")
882 static UE_INL_API float FixedTurn(float InCurrent, float InDesired, float InDeltaRate);
883
884
885 //
886 // IntPoint constants
887 //
888
890 UFUNCTION(BlueprintPure, meta = (ScriptConstant = "Zero", ScriptConstantHost = "/Script/CoreUObject.IntPoint"), Category = "Math|IntPoint|Constants")
891 static UE_INL_API FIntPoint IntPoint_Zero();
892
894 UFUNCTION(BlueprintPure, meta = (ScriptConstant = "One", ScriptConstantHost = "/Script/CoreUObject.IntPoint"), Category = "Math|IntPoint|Constants")
895 static UE_INL_API FIntPoint IntPoint_One();
896
898 UFUNCTION(BlueprintPure, meta = (ScriptConstant = "Up", ScriptConstantHost = "/Script/CoreUObject.IntPoint"), Category = "Math|IntPoint|Constants")
899 static UE_INL_API FIntPoint IntPoint_Up();
900
902 UFUNCTION(BlueprintPure, meta = (ScriptConstant = "Left", ScriptConstantHost = "/Script/CoreUObject.IntPoint"), Category = "Math|IntPoint|Constants")
903 static UE_INL_API FIntPoint IntPoint_Left();
904
906 UFUNCTION(BlueprintPure, meta = (ScriptConstant = "Right", ScriptConstantHost = "/Script/CoreUObject.IntPoint"), Category = "Math|IntPoint|Constants")
907 static UE_INL_API FIntPoint IntPoint_Right();
908
910 UFUNCTION(BlueprintPure, meta = (ScriptConstant = "Down", ScriptConstantHost = "/Script/CoreUObject.IntPoint"), Category = "Math|IntPoint|Constants")
911 static UE_INL_API FIntPoint IntPoint_Down();
912
913 //
914 // IntPoint functions
915 //
916
918 UFUNCTION(BlueprintPure, meta = (DisplayName = "To Vector2D (IntPoint)", CompactNodeTitle = "->", ScriptMethod = "Vector2D", Keywords = "cast convert", BlueprintAutocast), Category = "Math|Conversions")
920
922 UFUNCTION(BlueprintPure, meta = (DisplayName = "IntPoint + IntPoint", CompactNodeTitle = "+", ScriptMethod = "Add", ScriptOperator = "+;+=", Keywords = "+ add plus"), Category = "Math|IntPoint")
923 static UE_INL_API FIntPoint Add_IntPointIntPoint(FIntPoint A, FIntPoint B);
924
926 UFUNCTION(BlueprintPure, meta = (DisplayName = "IntPoint + Integer", CompactNodeTitle = "+", ScriptMethod = "AddInt", ScriptOperator = "+;+=", Keywords = "+ add plus"), Category = "Math|IntPoint")
927 static UE_INL_API FIntPoint Add_IntPointInt(FIntPoint A, int32 B);
928
930 UFUNCTION(BlueprintPure, meta = (DisplayName = "IntPoint - IntPoint", CompactNodeTitle = "-", ScriptMethod = "Subtract", ScriptOperator = "-;-=", Keywords = "- subtract minus"), Category = "Math|IntPoint")
931 static UE_INL_API FIntPoint Subtract_IntPointIntPoint(FIntPoint A, FIntPoint B);
932
934 UFUNCTION(BlueprintPure, meta = (DisplayName = "IntPoint - Integer", CompactNodeTitle = "-", ScriptMethod = "SubtractInt", ScriptOperator = "-;-=", Keywords = "- subtract minus"), Category = "Math|IntPoint")
935 static UE_INL_API FIntPoint Subtract_IntPointInt(FIntPoint A, int32 B);
936
938 UFUNCTION(BlueprintPure, meta = (DisplayName = "IntPoint * IntPoint", CompactNodeTitle = "*", ScriptMethod = "Multiply", ScriptOperator = "*;*=", Keywords = "* multiply"), Category = "Math|IntPoint")
939 static UE_INL_API FIntPoint Multiply_IntPointIntPoint(FIntPoint A, FIntPoint B);
940
942 UFUNCTION(BlueprintPure, meta = (DisplayName = "IntPoint * Integer", CompactNodeTitle = "*", ScriptMethod = "MultiplyInt", ScriptOperator = "*;*=", Keywords = "* multiply"), Category = "Math|IntPoint")
943 static UE_INL_API FIntPoint Multiply_IntPointInt(FIntPoint A, int32 B);
944
946 UFUNCTION(BlueprintPure, meta = (DisplayName = "IntPoint / IntPoint", CompactNodeTitle = "/", ScriptMethod = "Divide", ScriptOperator = "/;/=", Keywords = "/ divide"), Category = "Math|IntPoint")
947 static UE_INL_API FIntPoint Divide_IntPointIntPoint(FIntPoint A, FIntPoint B);
948
950 UFUNCTION(BlueprintPure, meta = (DisplayName = "IntPoint / Integer", CompactNodeTitle = "/", ScriptMethod = "DivideInt", ScriptOperator = "/;/=", Keywords = "/ divide"), Category = "Math|IntPoint")
951 static UE_INL_API FIntPoint Divide_IntPointInt(FIntPoint A, int32 B);
952
954 UFUNCTION(BlueprintPure, meta = (DisplayName = "Equal (IntPoint)", CompactNodeTitle = "==", ScriptMethod = "Equals", ScriptOperator = "==", Keywords = "== equal"), Category = "Math|IntPoint")
956
958 UFUNCTION(BlueprintPure, meta = (DisplayName = "Not Equal (IntPoint)", CompactNodeTitle = "!=", ScriptMethod = "NotEqual", ScriptOperator = "!=", Keywords = "!= not equal"), Category = "Math|IntPoint")
960
961 //
962 // Vector2D constants - exposed for scripting
963 //
964
966 UFUNCTION(BlueprintPure, meta = (ScriptConstant = "One", ScriptConstantHost = "/Script/CoreUObject.Vector2D"), Category = "Math|Vector2D")
967 static UE_INL_API FVector2D Vector2D_One();
968
970 UFUNCTION(BlueprintPure, meta = (ScriptConstant = "Unit45Deg", ScriptConstantHost = "/Script/CoreUObject.Vector2D"), Category = "Math|Vector2D")
971 static UE_INL_API FVector2D Vector2D_Unit45Deg();
972
974 UFUNCTION(BlueprintPure, meta = (ScriptConstant = "Zero", ScriptConstantHost = "/Script/CoreUObject.Vector2D"), Category = "Math|Vector2D")
975 static UE_INL_API FVector2D Vector2D_Zero();
976
977
978 //
979 // Vector2D functions
980 //
981
983 UFUNCTION(BlueprintPure, Category = "Math|Vector2D", meta = (Keywords = "construct build", NativeMakeFunc))
984 static UE_INL_API FVector2D MakeVector2D(double X, double Y);
985
987 UFUNCTION(BlueprintPure, Category = "Math|Vector2D", meta = (NativeBreakFunc))
988 static UE_INL_API void BreakVector2D(FVector2D InVec, double& X, double& Y);
989
991 UFUNCTION(BlueprintPure, meta = (DisplayName = "To Vector (Vector2D)", CompactNodeTitle = "->", ScriptMethod = "Vector", Keywords = "cast convert", BlueprintAutocast), Category = "Math|Conversions")
993
995 UFUNCTION(BlueprintPure, meta = (DisplayName = "To IntPoint (Vector2D)", CompactNodeTitle = "->", ScriptMethod = "IntPoint", Keywords = "cast convert", BlueprintAutocast), Category = "Math|Conversions")
997
999 UFUNCTION(BlueprintPure, meta = (DisplayName = "vector2d + vector2d", CompactNodeTitle = "+", ScriptMethod = "Add", ScriptOperator = "+;+=", Keywords = "+ add plus", CommutativeAssociativeBinaryOperator = "true"), Category = "Math|Vector2D")
1000 static UE_INL_API FVector2D Add_Vector2DVector2D(FVector2D A, FVector2D B);
1001
1003 UFUNCTION(BlueprintPure, meta = (DisplayName = "vector2d + float", CompactNodeTitle = "+", ScriptMethod = "AddFloat", ScriptOperator = "+;+=", Keywords = "+ add plus"), Category = "Math|Vector2D")
1004 static UE_INL_API FVector2D Add_Vector2DFloat(FVector2D A, double B);
1005
1007 UFUNCTION(BlueprintPure, meta = (DisplayName = "vector2d - vector2d", CompactNodeTitle = "-", ScriptMethod = "Subtract", ScriptOperator = "-;-=", Keywords = "- subtract minus"), Category = "Math|Vector2D")
1008 static UE_INL_API FVector2D Subtract_Vector2DVector2D(FVector2D A, FVector2D B);
1009
1011 UFUNCTION(BlueprintPure, meta = (DisplayName = "vector2d - float", CompactNodeTitle = "-", ScriptMethod = "SubtractFloat", ScriptOperator = "-;-=", Keywords = "- subtract minus"), Category = "Math|Vector2D")
1012 static UE_INL_API FVector2D Subtract_Vector2DFloat(FVector2D A, double B);
1013
1015 UFUNCTION(BlueprintPure, meta = (DisplayName = "vector2d * vector2d", CompactNodeTitle = "*", ScriptMethod = "Multiply", ScriptOperator = "*;*=", Keywords = "* multiply", CommutativeAssociativeBinaryOperator = "true"), Category = "Math|Vector2D")
1016 static UE_INL_API FVector2D Multiply_Vector2DVector2D(FVector2D A, FVector2D B);
1017
1019 UFUNCTION(BlueprintPure, meta = (DisplayName = "vector2d * float", CompactNodeTitle = "*", ScriptMethod = "MultiplyFloat", ScriptOperator = "*;*=", Keywords = "* multiply"), Category = "Math|Vector2D")
1020 static UE_INL_API FVector2D Multiply_Vector2DFloat(FVector2D A, double B);
1021
1023 UFUNCTION(BlueprintPure, meta = (DisplayName = "vector2d / vector2d", CompactNodeTitle = "/", ScriptMethod = "Divide", ScriptOperator = "/;/=", Keywords = "/ divide division"), Category = "Math|Vector2D")
1024 static UE_INL_API FVector2D Divide_Vector2DVector2D(FVector2D A, FVector2D B);
1025
1027 UFUNCTION(BlueprintPure, meta = (DisplayName = "vector2d / float", CompactNodeTitle = "/", ScriptMethod = "DivideFloat", ScriptOperator = "/;/=", Keywords = "/ divide division"), Category = "Math|Vector2D")
1028 static UE_INL_API FVector2D Divide_Vector2DFloat(FVector2D A, double B = 1.f);
1029
1031 UFUNCTION(BlueprintPure, meta=(DisplayName = "Equal Exactly (Vector2D)", CompactNodeTitle = "===", ScriptMethod = "Equals", ScriptOperator = "==", Keywords = "== equal"), Category="Math|Vector2D")
1033
1035 UFUNCTION(BlueprintPure, meta = (DisplayName = "Equal (Vector2D)", CompactNodeTitle = "==", ScriptMethod = "IsNearEqual", Keywords = "== equal"), Category = "Math|Vector2D")
1036 static UE_INL_API bool EqualEqual_Vector2DVector2D(FVector2D A, FVector2D B, float ErrorTolerance = 1.e-4f);
1037
1039 UFUNCTION(BlueprintPure, meta = (DisplayName = "Not Equal Exactly (Vector2D)", CompactNodeTitle = "!==", ScriptMethod = "NotEqual", ScriptOperator = "!=", Keywords = "!= not equal"), Category = "Math|Vector2D")
1041
1043 UFUNCTION(BlueprintPure, meta = (DisplayName = "Not Equal (Vector2D)", CompactNodeTitle = "!=", ScriptMethod = "IsNotNearEqual", Keywords = "!= not equal"), Category = "Math|Vector2D")
1044 static UE_INL_API bool NotEqual_Vector2DVector2D(FVector2D A, FVector2D B, float ErrorTolerance = 1.e-4f);
1045
1047 UFUNCTION(BlueprintPure, meta = (ScriptMethod = "Negated", ScriptOperator = "neg"), Category = "Math|Vector2D")
1048 static UE_INL_API FVector2D Negated2D(const FVector2D& A);
1049
1056 UFUNCTION(BlueprintCallable, meta = (ScriptMethod = "Set"), Category = "Math|Vector2D")
1057 static UE_INL_API void Set2D(UPARAM(ref) FVector2D& A, double X, double Y);
1058
1063 UFUNCTION(BlueprintPure, meta = (ScriptMethod = "ClampedAxes"), Category = "Math|Vector2D")
1064 static UE_INL_API FVector2D ClampAxes2D(FVector2D A, double MinAxisVal, double MaxAxisVal);
1065
1067 UFUNCTION(BlueprintPure, meta = (DisplayName = "Cross Product (2D)", CompactNodeTitle = "cross", ScriptMethod = "Cross", ScriptOperator = "^"), Category = "Math|Vector2D")
1069
1077 UFUNCTION(BlueprintPure, meta = (Keywords = "magnitude", ScriptMethod = "Distance"), Category = "Math|Vector2D")
1078 static UE_INL_API double Distance2D(FVector2D V1, FVector2D V2);
1079
1087 UFUNCTION(BlueprintPure, meta = (Keywords = "magnitude", ScriptMethod = "DistanceSquared"), Category = "Math|Vector2D")
1088 static UE_INL_API double DistanceSquared2D(FVector2D V1, FVector2D V2);
1089
1091 UFUNCTION(BlueprintPure, meta = (DisplayName = "Dot Product (2D)", CompactNodeTitle = "dot", ScriptMethod = "Dot", ScriptOperator = "|"), Category = "Math|Vector2D")
1092 static UE_INL_API double DotProduct2D(FVector2D A, FVector2D B);
1093
1099 UFUNCTION(BlueprintPure, meta = (ScriptMethod = "GetAbs"), Category = "Math|Vector2D")
1100 static UE_INL_API FVector2D GetAbs2D(FVector2D A);
1101
1107 UFUNCTION(BlueprintPure, meta = (ScriptMethod = "GetAbsMax"), Category = "Math|Vector2D")
1108 static UE_INL_API double GetAbsMax2D(FVector2D A);
1109
1115 UFUNCTION(BlueprintPure, meta = (ScriptMethod = "GetMax"), Category = "Math|Vector2D")
1116 static UE_INL_API double GetMax2D(FVector2D A);
1117
1123 UFUNCTION(BlueprintPure, meta = (ScriptMethod = "GetMin"), Category = "Math|Vector2D")
1124 static UE_INL_API double GetMin2D(FVector2D A);
1125
1132 UFUNCTION(BlueprintPure, meta = (ScriptMethod = "GetRotated"), Category = "Math|Vector2D")
1133 static UE_INL_API FVector2D GetRotated2D(FVector2D A, float AngleDeg);
1134
1141 UFUNCTION(BlueprintPure, meta = (ScriptMethod = "IsNearlyZero"), Category = "Math|Vector2D")
1142 static UE_INL_API bool IsNearlyZero2D(const FVector2D& A, float Tolerance = 1.e-4f);
1143
1149 UFUNCTION(BlueprintPure, meta = (ScriptMethod = "IsZero"), Category = "Math|Vector2D")
1150 static UE_INL_API bool IsZero2D(const FVector2D& A);
1151
1161 UFUNCTION(BlueprintPure, Category="Math|Interpolation", meta=(ScriptMethod="InterpTo", Keywords="position"))
1162 static UE_INL_API FVector2D Vector2DInterpTo(FVector2D Current, FVector2D Target, float DeltaTime, float InterpSpeed);
1163
1173 UFUNCTION(BlueprintPure, Category="Math|Interpolation", meta=(ScriptMethod="InterpToConstant", Keywords="position"))
1174 static UE_INL_API FVector2D Vector2DInterpTo_Constant(FVector2D Current, FVector2D Target, float DeltaTime, float InterpSpeed);
1175
1183 UFUNCTION(BlueprintPure, meta = (DisplayName = "Normal Safe (Vector2D)", Keywords = "Unit Vector", ScriptMethod = "Normal"), Category = "Math|Vector2D")
1184 static UE_INL_API FVector2D NormalSafe2D(FVector2D A, float Tolerance = 1.e-8f);
1185
1187 UFUNCTION(BlueprintPure, meta = (DisplayName = "Normalize 2D", Keywords = "Unit Vector", ScriptMethod = "NormalUnsafe"), Category = "Math|Vector2D")
1188 static UE_INL_API FVector2D Normal2D(FVector2D A);
1189
1196 UFUNCTION(BlueprintCallable, meta = (DisplayName = "Normalize In Place (Vector2D)", Keywords = "Unit Vector", ScriptMethod = "Normalize"), Category = "Math|Vector2D")
1197 static UE_INL_API void Normalize2D(UPARAM(ref) FVector2D& A, float Tolerance = 1.e-8f);
1198
1200 UFUNCTION(BlueprintPure, meta = (DisplayName = "Spherical2D To Unit Cartesian", Keywords = "Unit Vector", ScriptMethod = "SphericalToUnitCartesian"), Category = "Math|Vector2D")
1201 static UE_INL_API FVector Spherical2DToUnitCartesian(FVector2D A);
1202
1209 UFUNCTION(BlueprintPure, meta = (DisplayName = "To Direction And Length", ScriptMethod = "ToDirectionAndLength"), Category = "Math|Vector2D")
1210 static UE_INL_API void ToDirectionAndLength2D(FVector2D A, FVector2D &OutDir, double &OutLength);
1211
1217 UFUNCTION(BlueprintPure, meta = (DisplayName = "To Rounded (Vector2D)", ScriptMethod = "ToRounded"), Category = "Math|Vector2D")
1219
1226 UFUNCTION(BlueprintPure, meta = (DisplayName = "To Sign (+1/-1) 2D", ScriptMethod = "ToSign"), Category = "Math|Vector2D")
1228
1230 UFUNCTION(BlueprintPure, meta = (DisplayName = "Vector2D Length", Keywords = "magnitude", ScriptMethod = "Length"), Category = "Math|Vector2D")
1231 static UE_INL_API double VSize2D(FVector2D A);
1232
1234 UFUNCTION(BlueprintPure, meta = (DisplayName = "Vector2D Length Squared", Keywords = "magnitude", ScriptMethod = "LengthSquared"), Category = "Math|Vector2D")
1235 static UE_INL_API double VSize2DSquared(FVector2D A);
1236
1237
1238 //
1239 // Vector (3D) constants - exposed for scripting
1240 //
1241
1243 UFUNCTION(BlueprintPure, meta = (ScriptConstant = "Zero", ScriptConstantHost = "/Script/CoreUObject.Vector"), Category = "Math|Vector")
1244 static UE_INL_API FVector Vector_Zero();
1245
1247 UFUNCTION(BlueprintPure, meta = (ScriptConstant = "One", ScriptConstantHost = "/Script/CoreUObject.Vector"), Category = "Math|Vector")
1248 static UE_INL_API FVector Vector_One();
1249
1251 UFUNCTION(BlueprintPure, meta = (ScriptConstant = "Forward", ScriptConstantHost = "/Script/CoreUObject.Vector"), Category = "Math|Vector")
1252 static UE_INL_API FVector Vector_Forward();
1253
1255 UFUNCTION(BlueprintPure, meta = (ScriptConstant = "Backward", ScriptConstantHost = "/Script/CoreUObject.Vector"), Category = "Math|Vector")
1256 static UE_INL_API FVector Vector_Backward();
1257
1259 UFUNCTION(BlueprintPure, meta = (ScriptConstant = "Up", ScriptConstantHost = "/Script/CoreUObject.Vector"), Category = "Math|Vector")
1260 static UE_INL_API FVector Vector_Up();
1261
1263 UFUNCTION(BlueprintPure, meta = (ScriptConstant = "Down", ScriptConstantHost = "/Script/CoreUObject.Vector"), Category = "Math|Vector")
1264 static UE_INL_API FVector Vector_Down();
1265
1267 UFUNCTION(BlueprintPure, meta = (ScriptConstant = "Right", ScriptConstantHost = "/Script/CoreUObject.Vector"), Category = "Math|Vector")
1268 static UE_INL_API FVector Vector_Right();
1269
1271 UFUNCTION(BlueprintPure, meta = (ScriptConstant = "Left", ScriptConstantHost = "/Script/CoreUObject.Vector"), Category = "Math|Vector")
1272 static UE_INL_API FVector Vector_Left();
1273
1274 //
1275 // Vector (3D) functions.
1276 //
1277
1279 UFUNCTION(BlueprintPure, Category = "Math|Vector", meta = (Keywords = "construct build", NativeMakeFunc))
1280 static UE_INL_API FVector MakeVector(double X, double Y, double Z);
1281
1283 UFUNCTION(BlueprintPure, Category = "Math|Vector", meta = (Keywords = "rotation rotate"))
1284 static ENGINE_API FVector CreateVectorFromYawPitch(float Yaw, float Pitch, float Length = 1.0f );
1285
1291 UFUNCTION(BlueprintCallable, meta = (ScriptMethod = "Assign"), Category = "Math|Vector")
1292 static UE_INL_API void Vector_Assign(UPARAM(ref) FVector& A, const FVector& InVector);
1293
1301 UFUNCTION(BlueprintCallable, meta = (ScriptMethod = "Set"), Category = "Math|Vector")
1302 static UE_INL_API void Vector_Set(UPARAM(ref) FVector& A, double X, double Y, double Z);
1303
1305 UFUNCTION(BlueprintPure, Category="Math|Vector", meta=(NativeBreakFunc))
1306 static UE_INL_API void BreakVector(FVector InVec, double& X, double& Y, double& Z);
1307
1309 UFUNCTION(BlueprintPure, meta=(DisplayName = "To LinearColor (Vector)", CompactNodeTitle = "->", ScriptMethod = "LinearColor", Keywords="cast convert", BlueprintAutocast), Category="Math|Conversions")
1311
1313 UFUNCTION(BlueprintPure, meta=(DisplayName = "To Transform (Vector)", CompactNodeTitle = "->", ScriptMethod = "Transform", Keywords="cast convert", BlueprintAutocast), Category="Math|Conversions")
1315
1317 UFUNCTION(BlueprintPure, meta=(DisplayName = "To Vector2D (Vector)", CompactNodeTitle = "->", ScriptMethod = "Vector2D", Keywords="cast convert", BlueprintAutocast), Category="Math|Conversions")
1319
1326 UFUNCTION(BlueprintPure, meta=(DisplayName = "Rotation From X Vector", ScriptMethod = "Rotator", Keywords="rotation rotate cast convert", BlueprintAutocast), Category="Math|Conversions")
1327 static UE_INL_API FRotator Conv_VectorToRotator(FVector InVec);
1328
1330 UFUNCTION(BlueprintPure, meta=(ScriptMethod = "RotatorFromAxisAndAngle", Keywords="make construct build rotate rotation"), Category="Math|Vector")
1331 static ENGINE_API FRotator RotatorFromAxisAndAngle(FVector Axis, float Angle);
1332
1342 UFUNCTION(BlueprintPure, meta=(DisplayName = "To Quaternion (Vector)", ScriptMethod = "Quaternion", Keywords="rotation rotate cast convert", BlueprintAutocast), Category="Math|Conversions")
1344
1353 UFUNCTION(BlueprintPure, meta = (DisplayName = "SlerpVectorToDirection", ScriptMethod = "SlerpVectors", Keywords = "spherical lerpvector vectorslerp interpolate"), Category = "Math|Vector")
1354 static UE_INL_API FVector Vector_SlerpVectorToDirection(FVector Vector, FVector Direction, double Alpha);
1355
1364 UFUNCTION(BlueprintPure, meta = (DisplayName = "SlerpNormals", ScriptMethod = "SlerpNormals", Keywords = "spherical lerpnormal normalslerp interpolate"), Category = "Math|Vector")
1365 static UE_INL_API FVector Vector_SlerpNormals(FVector NormalA, FVector NormalB, double Alpha);
1366
1368 UFUNCTION(BlueprintPure, meta=(DisplayName = "vector + vector", CompactNodeTitle = "+", ScriptMethod = "Add", ScriptOperator = "+;+=", Keywords = "+ add plus", CommutativeAssociativeBinaryOperator = "true"), Category="Math|Vector")
1369 static UE_INL_API FVector Add_VectorVector(FVector A, FVector B);
1370
1372 UFUNCTION(BlueprintPure, meta=(DisplayName = "vector + float", CompactNodeTitle = "+", ScriptMethod = "AddFloat", Keywords = "+ add plus"), Category="Math|Vector")
1373 static UE_INL_API FVector Add_VectorFloat(FVector A, double B);
1374
1376 UFUNCTION(BlueprintPure, meta=(DisplayName = "vector + integer", CompactNodeTitle = "+", ScriptMethod = "AddInt", Keywords = "+ add plus"), Category="Math|Vector")
1377 static UE_INL_API FVector Add_VectorInt(FVector A, int32 B);
1378
1380 UFUNCTION(BlueprintPure, meta=(DisplayName = "vector - vector", CompactNodeTitle = "-", ScriptMethod = "Subtract", ScriptOperator = "-;-=", Keywords = "- subtract minus"), Category="Math|Vector")
1381 static UE_INL_API FVector Subtract_VectorVector(FVector A, FVector B);
1382
1384 UFUNCTION(BlueprintPure, meta=(DisplayName = "vector - float", CompactNodeTitle = "-", ScriptMethod = "SubtractFloat", Keywords = "- subtract minus"), Category="Math|Vector")
1385 static UE_INL_API FVector Subtract_VectorFloat(FVector A, double B);
1386
1388 UFUNCTION(BlueprintPure, meta=(DisplayName = "vector - integer", CompactNodeTitle = "-", ScriptMethod = "SubtractInt", Keywords = "- subtract minus"), Category="Math|Vector")
1389 static UE_INL_API FVector Subtract_VectorInt(FVector A, int32 B);
1390
1392 UFUNCTION(BlueprintPure, meta=(DisplayName = "vector * vector", CompactNodeTitle = "*", ScriptMethod = "Multiply", ScriptOperator = "*;*=", Keywords = "* multiply", CommutativeAssociativeBinaryOperator = "true"), Category="Math|Vector")
1393 static UE_INL_API FVector Multiply_VectorVector(FVector A, FVector B);
1394
1396 UFUNCTION(BlueprintPure, meta=(DisplayName = "vector * float", CompactNodeTitle = "*", ScriptMethod = "MultiplyFloat", ScriptOperator = "*;*=", Keywords = "* multiply"), Category="Math|Vector")
1397 static UE_INL_API FVector Multiply_VectorFloat(FVector A, double B);
1398
1400 UFUNCTION(BlueprintPure, meta=(DisplayName = "vector * integer", CompactNodeTitle = "*", ScriptMethod = "MultiplyInt", Keywords = "* multiply"), Category="Math|Vector")
1401 static UE_INL_API FVector Multiply_VectorInt(FVector A, int32 B);
1402
1404 UFUNCTION(BlueprintPure, meta=(DisplayName = "vector / vector", CompactNodeTitle = "/", ScriptMethod = "Divide", ScriptOperator = "/;/=", Keywords = "/ divide division"), Category="Math|Vector")
1405 static UE_INL_API FVector Divide_VectorVector(FVector A, FVector B = FVector(1.f,1.f,1.f));
1406
1408 UFUNCTION(BlueprintPure, meta=(DisplayName = "vector / float", CompactNodeTitle = "/", ScriptMethod = "DivideFloat", ScriptOperator = "/;/=", Keywords = "/ divide division"), Category="Math|Vector")
1409 static UE_INL_API FVector Divide_VectorFloat(FVector A, double B = 1.f);
1410
1412 UFUNCTION(BlueprintPure, meta=(DisplayName = "vector / integer", CompactNodeTitle = "/", ScriptMethod = "DivideInt", Keywords = "/ divide division"), Category="Math|Vector")
1413 static UE_INL_API FVector Divide_VectorInt(FVector A, int32 B = 1);
1414
1416 UFUNCTION(BlueprintPure, meta = (ScriptMethod = "Negated", ScriptOperator = "neg"), Category="Math|Vector")
1417 static UE_INL_API FVector NegateVector(FVector A);
1418
1420 UFUNCTION(BlueprintPure, meta=(DisplayName = "Equal Exactly (Vector)", CompactNodeTitle = "===", ScriptMethod = "Equals", ScriptOperator = "==", Keywords = "== equal"), Category="Math|Vector")
1422
1424 UFUNCTION(BlueprintPure, meta=(DisplayName = "Equal (Vector)", CompactNodeTitle = "==", ScriptMethod = "IsNearEqual", Keywords = "== equal"), Category="Math|Vector")
1425 static UE_INL_API bool EqualEqual_VectorVector(FVector A, FVector B, float ErrorTolerance = 1.e-4f);
1426
1428 UFUNCTION(BlueprintPure, meta = (DisplayName = "Not Equal Exactly (Vector)", CompactNodeTitle = "!==", ScriptMethod = "NotEqual", ScriptOperator = "!=", Keywords = "!= not equal"), Category = "Math|Vector")
1430
1432 UFUNCTION(BlueprintPure, meta=(DisplayName = "Not Equal (Vector)", CompactNodeTitle = "!=", ScriptMethod = "IsNotNearEqual"), Category="Math|Vector")
1433 static UE_INL_API bool NotEqual_VectorVector(FVector A, FVector B, float ErrorTolerance = 1.e-4f);
1434
1436 UFUNCTION(BlueprintPure, meta=(DisplayName = "Dot Product", CompactNodeTitle = "dot", ScriptMethod = "Dot", ScriptOperator = "|"), Category="Math|Vector" )
1437 static UE_INL_API double Dot_VectorVector(FVector A, FVector B);
1438
1440 UFUNCTION(BlueprintPure, meta=(DisplayName = "Cross Product", CompactNodeTitle = "cross", ScriptMethod = "Cross", ScriptOperator = "^"), Category="Math|Vector" )
1441 static UE_INL_API FVector Cross_VectorVector(FVector A, FVector B);
1442
1444 UFUNCTION(BlueprintPure, meta=(DisplayName = "Rotate Vector", ScriptMethod = "Rotate"), Category="Math|Vector")
1445 static UE_INL_API FVector GreaterGreater_VectorRotator(FVector A, FRotator B);
1446
1448 UFUNCTION(BlueprintPure, meta=(DisplayName = "Rotate Vector Around Axis", ScriptMethod = "RotateAngleAxis"), Category="Math|Vector")
1449 static ENGINE_API FVector RotateAngleAxis(FVector InVect, float AngleDeg, FVector Axis);
1450
1452 UFUNCTION(BlueprintPure, meta=(DisplayName = "Unrotate Vector", ScriptMethod = "Unrotate"), Category="Math|Vector")
1453 static UE_INL_API FVector LessLess_VectorRotator(FVector A, FRotator B);
1454
1456 UFUNCTION(BlueprintCallable, meta = (ScriptMethod = "UnwindEuler"), Category = "Math|Vector")
1457 static UE_INL_API void Vector_UnwindEuler(UPARAM(ref) FVector& A);
1458
1460 UFUNCTION(BlueprintPure, meta=(ScriptMethod = "ClampedSize"), Category="Math|Vector")
1461 static UE_INL_API FVector ClampVectorSize(FVector A, double Min, double Max);
1462
1464 UFUNCTION(BlueprintPure, meta=(ScriptMethod = "ClampedSize2D"), Category="Math|Vector")
1465 static UE_INL_API FVector Vector_ClampSize2D(FVector A, double Min, double Max);
1466
1468 UFUNCTION(BlueprintPure, meta=(ScriptMethod = "ClampedSizeMax"), Category="Math|Vector")
1469 static UE_INL_API FVector Vector_ClampSizeMax(FVector A, double Max);
1470
1472 UFUNCTION(BlueprintPure, meta=(ScriptMethod = "ClampedSizeMax2D"), Category="Math|Vector")
1473 static UE_INL_API FVector Vector_ClampSizeMax2D(FVector A, double Max);
1474
1476 UFUNCTION(BlueprintPure, meta=(ScriptMethod = "GetMinElement"), Category="Math|Vector")
1477 static UE_INL_API double GetMinElement(FVector A);
1478
1480 UFUNCTION(BlueprintPure, meta=(ScriptMethod = "GetMaxElement"), Category="Math|Vector")
1481 static UE_INL_API double GetMaxElement(FVector A);
1482
1484 UFUNCTION(BlueprintPure, meta=(ScriptMethod = "GetAbsMax"), Category="Math|Vector")
1485 static UE_INL_API double Vector_GetAbsMax(FVector A);
1486
1488 UFUNCTION(BlueprintPure, meta=(ScriptMethod = "GetAbsMin"), Category="Math|Vector")
1489 static UE_INL_API double Vector_GetAbsMin(FVector A);
1490
1496 UFUNCTION(BlueprintPure, meta=(ScriptMethod = "GetAbs"), Category="Math|Vector")
1497 static UE_INL_API FVector Vector_GetAbs(FVector A);
1498
1500 UFUNCTION(BlueprintPure, meta=(ScriptMethod = "GetMin"), Category="Math|Vector")
1501 static UE_INL_API FVector Vector_ComponentMin(FVector A, FVector B);
1502
1504 UFUNCTION(BlueprintPure, meta=(ScriptMethod = "GetMax"), Category="Math|Vector")
1505 static UE_INL_API FVector Vector_ComponentMax(FVector A, FVector B);
1506
1513 UFUNCTION(BlueprintPure, meta=(ScriptMethod = "GetSignVector"), Category="Math|Vector")
1514 static UE_INL_API FVector Vector_GetSignVector(FVector A);
1515
1521 UFUNCTION(BlueprintPure, meta=(ScriptMethod = "GetProjection"), Category="Math|Vector")
1522 static UE_INL_API FVector Vector_GetProjection(FVector A);
1523
1529 UFUNCTION(BlueprintPure, meta=(ScriptMethod = "HeadingAngle"), Category="Math|Vector")
1530 static UE_INL_API double Vector_HeadingAngle(FVector A);
1531
1538 UFUNCTION(BlueprintPure, meta=(ScriptMethod = "CosineAngle2D"), Category="Math|Vector")
1539 static UE_INL_API double Vector_CosineAngle2D(FVector A, FVector B);
1540
1546 UFUNCTION(BlueprintPure, meta=(ScriptMethod = "ToRadians"), Category="Math|Vector")
1547 static UE_INL_API FVector Vector_ToRadians(FVector A);
1548
1554 UFUNCTION(BlueprintPure, meta=(ScriptMethod = "ToDegrees"), Category="Math|Vector")
1555 static UE_INL_API FVector Vector_ToDegrees(FVector A);
1556
1561 UFUNCTION(BlueprintPure, meta=(ScriptMethod = "UnitCartesianToSpherical"), Category="Math|Vector")
1562 static UE_INL_API FVector2D Vector_UnitCartesianToSpherical(FVector A);
1563
1565 UFUNCTION(BlueprintPure, meta=(DisplayName = "Get Unit Direction (Vector)", ScriptMethod = "DirectionUnitTo", Keywords = "Unit Vector"), Category="Math|Vector")
1567
1569 UFUNCTION(BlueprintPure, Category = "Math|Vector", meta = (ScriptMethod = "GetYawPitch", NativeBreakFunc))
1570 static ENGINE_API void GetYawPitchFromVector(FVector InVec, float& Yaw, float& Pitch);
1571
1574 UFUNCTION(BlueprintPure, Category = "Math|Vector", meta = (ScriptMethod = "GetAzimuthElevation", NativeBreakFunc))
1575 static ENGINE_API void GetAzimuthAndElevation(FVector InDirection, const FTransform& ReferenceFrame, float& Azimuth, float& Elevation);
1576
1578 UFUNCTION(BlueprintPure, Category="Math|Vector")
1579 static ENGINE_API FVector GetVectorArrayAverage(const TArray<FVector>& Vectors);
1580
1582 UFUNCTION(BlueprintPure, meta = (DisplayName = "Truncate (Vector)", ScriptMethod = "Truncated", BlueprintAutocast), Category = "Math|Float")
1583 static UE_INL_API FIntVector FTruncVector(const FVector& InVector);
1584
1586 UFUNCTION(BlueprintPure, meta = (DisplayName = "Truncate (Vector2D)", ScriptMethod = "Truncated", BlueprintAutocast), Category = "Math|Float")
1588
1596 UFUNCTION(BlueprintPure, meta = (DisplayName = "Distance (Vector)", ScriptMethod = "Distance", Keywords = "magnitude"), Category = "Math|Vector")
1597 static UE_INL_API double Vector_Distance(FVector V1, FVector V2);
1598
1606 UFUNCTION(BlueprintPure, meta = (DisplayName = "Distance Squared (Vector)", ScriptMethod = "DistanceSquared", Keywords = "magnitude"), Category = "Math|Vector")
1607 static UE_INL_API double Vector_DistanceSquared(FVector V1, FVector V2);
1608
1616 UFUNCTION(BlueprintPure, meta = (DisplayName = "Distance2D (Vector)", ScriptMethod = "Distance2D", Keywords = "magnitude"), Category = "Math|Vector")
1617 static UE_INL_API double Vector_Distance2D(FVector V1, FVector V2);
1618
1626 UFUNCTION(BlueprintPure, meta = (DisplayName = "Distance2D Squared (Vector)", ScriptMethod = "Distance2DSquared", Keywords = "magnitude"), Category = "Math|Vector")
1627 static UE_INL_API double Vector_Distance2DSquared(FVector V1, FVector V2);
1628
1630 UFUNCTION(BlueprintPure, meta=(DisplayName = "Vector Length", ScriptMethod = "Length", Keywords="magnitude"), Category="Math|Vector")
1631 static UE_INL_API double VSize(FVector A);
1632
1634 UFUNCTION(BlueprintPure, meta=(DisplayName = "Vector Length Squared", ScriptMethod = "LengthSquared", Keywords="magnitude"), Category="Math|Vector")
1635 static UE_INL_API double VSizeSquared(FVector A);
1636
1638 UFUNCTION(BlueprintPure, meta=(DisplayName = "Vector Length XY", ScriptMethod = "Length2D", Keywords="magnitude"), Category="Math|Vector")
1639 static UE_INL_API double VSizeXY(FVector A);
1640
1642 UFUNCTION(BlueprintPure, meta=(DisplayName = "Vector Length XY Squared", ScriptMethod = "Length2DSquared", Keywords="magnitude"), Category="Math|Vector")
1643 static UE_INL_API double VSizeXYSquared(FVector A);
1644
1651 UFUNCTION(BlueprintPure, meta = (ScriptMethod = "IsNearlyZero"), Category = "Math|Vector")
1652 static UE_INL_API bool Vector_IsNearlyZero(const FVector& A, float Tolerance = 1.e-4f);
1653
1659 UFUNCTION(BlueprintPure, meta = (ScriptMethod = "IsZero"), Category = "Math|Vector")
1660 static UE_INL_API bool Vector_IsZero(const FVector& A);
1661
1667 UFUNCTION(BlueprintPure, meta = (ScriptMethod = "IsNAN"), Category = "Math|Vector")
1668 static UE_INL_API bool Vector_IsNAN(const FVector& A);
1669
1676 UFUNCTION(BlueprintPure, meta=(DisplayName = "Is Uniform (Vector)", ScriptMethod = "IsUniform"), Category="Math|Vector")
1677 static UE_INL_API bool Vector_IsUniform(const FVector& A, float Tolerance = 1.e-4f);
1678
1684 UFUNCTION(BlueprintPure, meta=(DisplayName = "Is Unit (Vector)", ScriptMethod = "IsUnit", Keywords="Unit Vector"), Category="Math|Vector")
1685 static UE_INL_API bool Vector_IsUnit(const FVector& A, float SquaredLenthTolerance = 1.e-4f);
1686
1692 UFUNCTION(BlueprintPure, meta=(DisplayName = "Is Normal (Vector)", ScriptMethod = "IsNormal", Keywords="Unit Vector"), Category="Math|Vector")
1693 static UE_INL_API bool Vector_IsNormal(const FVector& A);
1694
1702 UFUNCTION(BlueprintPure, meta=(DisplayName = "Normalize", ScriptMethod = "Normal", Keywords="Unit Vector"), Category="Math|Vector")
1703 static UE_INL_API FVector Normal(FVector A, float Tolerance = 1.e-4f);
1704
1712 UFUNCTION(BlueprintPure, meta=(DisplayName = "Normalize 2D (Vector)", ScriptMethod = "Normal2D", Keywords="Unit Vector"), Category="Math|Vector")
1713 static UE_INL_API FVector Vector_Normal2D(FVector A, float Tolerance = 1.e-4f);
1714
1720 UFUNCTION(BlueprintPure, meta=(DisplayName = "Normal Unsafe (Vector)", ScriptMethod = "NormalUnsafe", Keywords="Unit Vector"), Category="Math|Vector")
1722
1728 UFUNCTION(BlueprintCallable, meta = (DisplayName = "Normalize In Place (Vector)", ScriptMethod = "Normalize", Keywords = "Unit Vector"), Category = "Math|Vector")
1729 static UE_INL_API void Vector_Normalize(UPARAM(ref) FVector& A, float Tolerance = 1.e-8f);
1730
1732 UFUNCTION(BlueprintPure, meta=(DisplayName = "Lerp (Vector)", ScriptMethod = "LerpTo"), Category="Math|Vector")
1733 static UE_INL_API FVector VLerp(FVector A, FVector B, float Alpha);
1734
1736 UFUNCTION(BlueprintPure, meta = (DisplayName = "Ease (Vector)", BlueprintInternalUseOnly = "true"), Category = "Math|Interpolation")
1737 static ENGINE_API FVector VEase(FVector A, FVector B, float Alpha, TEnumAsByte<EEasingFunc::Type> EasingFunc, float BlendExp = 2, int32 Steps = 2);
1738
1748 UFUNCTION(BlueprintPure, Category="Math|Interpolation", meta=(ScriptMethod = "InterpTo", Keywords="position"))
1749 static UE_INL_API FVector VInterpTo(FVector Current, FVector Target, float DeltaTime, float InterpSpeed);
1750
1760 UFUNCTION(BlueprintPure, Category = "Math|Interpolation", meta = (ScriptMethod = "InterpToConstant", Keywords = "position"))
1761 static UE_INL_API FVector VInterpTo_Constant(FVector Current, FVector Target, float DeltaTime, float InterpSpeed);
1762
1779 UFUNCTION(BlueprintCallable, meta = (ScriptMethod = "InterpSpringTo", Keywords = "position", AdvancedDisplay = "8"), Category = "Math|Interpolation")
1780 static ENGINE_API FVector VectorSpringInterp(FVector Current, FVector Target, UPARAM(ref) FVectorSpringState& SpringState,
1781 float Stiffness, float CriticalDampingFactor, float DeltaTime,
1782 float Mass = 1.f, float TargetVelocityAmount = 1.f,
1783 bool bClamp = false, FVector MinValue = FVector(-1.f), FVector MaxValue = FVector(1.f),
1784 bool bInitializeFromTarget = false);
1785
1799 UFUNCTION(BlueprintCallable, meta = (ScriptMethod = "InterpSpringTo", Keywords = "quaternion", AdvancedDisplay = "8"), Category = "Math|Interpolation")
1800 static ENGINE_API FQuat QuaternionSpringInterp(FQuat Current, FQuat Target, UPARAM(ref) FQuaternionSpringState& SpringState,
1801 float Stiffness, float CriticalDampingFactor, float DeltaTime,
1802 float Mass = 1.f, float TargetVelocityAmount = 1.f,
1803 bool bInitializeFromTarget = false);
1804
1811 UFUNCTION(BlueprintPure, meta=(DisplayName = "Reciprocal (Vector)", ScriptMethod = "Reciprocal"), Category="Math|Vector")
1813
1823 UFUNCTION(BlueprintPure, meta=(ScriptMethod = "MirrorByVector", Keywords = "Reflection"), Category="Math|Vector")
1824 static UE_INL_API FVector GetReflectionVector(FVector Direction, FVector SurfaceNormal);
1825
1835 UFUNCTION(BlueprintPure, Category="Math|Vector")
1836 static UE_INL_API FVector MirrorVectorByNormal(FVector InVect, FVector InNormal);
1837
1844 UFUNCTION(BlueprintPure, meta=(ScriptMethod = "MirrorByPlane", Keywords = "Reflection"), Category="Math|Vector")
1845 static UE_INL_API FVector Vector_MirrorByPlane(FVector A, const FPlane& InPlane);
1846
1853 UFUNCTION(BlueprintPure, meta=(ScriptMethod = "SnappedToGrid", Keywords = "Bounding"), Category="Math|Vector")
1854 static UE_INL_API FVector Vector_SnappedToGrid(FVector InVect, float InGridSize);
1855
1862 UFUNCTION(BlueprintPure, meta=(ScriptMethod = "BoundedToCube", Keywords = "Bounding"), Category="Math|Vector")
1863 static UE_INL_API FVector Vector_BoundedToCube(FVector InVect, float InRadius);
1864
1871 UFUNCTION(BlueprintCallable, meta=(ScriptMethod = "AddBounded", Keywords = "Bounding"), Category="Math|Vector")
1872 static ENGINE_API void Vector_AddBounded(UPARAM(ref) FVector& A, FVector InAddVect, float InRadius);
1873
1875 UFUNCTION(BlueprintPure, meta=(ScriptMethod = "BoundedToBox", Keywords = "Bounding"), Category="Math|Vector")
1876 static UE_INL_API FVector Vector_BoundedToBox(FVector InVect, FVector InBoxMin, FVector InBoxMax);
1877
1884 UFUNCTION(BlueprintPure, meta=(ScriptMethod = "ProjectOnToNormal", Keywords = "Project"), Category="Math|Vector")
1885 static UE_INL_API FVector Vector_ProjectOnToNormal(FVector V, FVector InNormal);
1886
1895 UFUNCTION(BlueprintPure, meta=(ScriptMethod = "ProjectOnTo", Keywords = "Project"), Category="Math|Vector")
1896 static UE_INL_API FVector ProjectVectorOnToVector(FVector V, FVector Target);
1897
1906 UFUNCTION(BlueprintPure, meta=(ScriptMethod = "ProjectPointOnToPlane", Keywords = "Project"), Category = "Math|Vector")
1907 static UE_INL_API FVector ProjectPointOnToPlane(FVector Point, FVector PlaneBase, FVector PlaneNormal);
1908
1916 UFUNCTION(BlueprintPure, meta=(ScriptMethod = "ProjectOnToPlane", Keywords = "Project"), Category="Math|Vector")
1917 static UE_INL_API FVector ProjectVectorOnToPlane(FVector V, FVector PlaneNormal);
1918
1929 UFUNCTION(BlueprintPure, Category = "Math|Vector")
1931
1940 UFUNCTION(BlueprintPure, Category = "Math|Vector")
1941 static UE_INL_API FVector FindClosestPointOnSegment(FVector Point, FVector SegmentStart, FVector SegmentEnd);
1942
1951 UFUNCTION(BlueprintPure, Category = "Math|Vector")
1952 static ENGINE_API FVector FindClosestPointOnLine(FVector Point, FVector LineOrigin, FVector LineDirection);
1953
1962 UFUNCTION(BlueprintPure, Category = "Math|Vector")
1963 static UE_INL_API float GetPointDistanceToSegment(FVector Point, FVector SegmentStart, FVector SegmentEnd);
1964
1973 UFUNCTION(BlueprintPure, Category = "Math|Vector")
1974 static UE_INL_API float GetPointDistanceToLine(FVector Point, FVector LineOrigin, FVector LineDirection);
1975
1977 UFUNCTION(BlueprintPure, Category="Math|Random", meta=(NotBlueprintThreadSafe))
1978 static ENGINE_API FVector RandomUnitVector();
1979
1981 UFUNCTION(BlueprintPure, Category = "Math|Random", meta=(ScriptMethod = "RandomPointInBoxExtents", NotBlueprintThreadSafe))
1982 static UE_INL_API FVector RandomPointInBoundingBox(const FVector Center, const FVector HalfSize);
1983
1985 UFUNCTION(BlueprintPure, Category = "Math|Random", meta=(DisplayName = "Random Point In Bounding Box (Box)", ScriptMethod = "RandomPointInBoxExtents", NotBlueprintThreadSafe))
1987
1993 UFUNCTION(BlueprintPure, Category = "Math|Random", meta=(NotBlueprintThreadSafe))
1994 static UE_INL_API FVector RandomUnitVectorInConeInRadians(FVector ConeDir, float ConeHalfAngleInRadians);
1995
2001 UFUNCTION(BlueprintPure, Category = "Math|Random", meta=(NotBlueprintThreadSafe))
2002 static FVector RandomUnitVectorInConeInDegrees(FVector ConeDir, float ConeHalfAngleInDegrees)
2003 {
2004 return RandomUnitVectorInConeInRadians(ConeDir, FMath::DegreesToRadians(ConeHalfAngleInDegrees));
2005 }
2006
2014 UFUNCTION(BlueprintPure, Category = "Math|Random", meta = (Keywords = "RandomVector Pitch Yaw", NotBlueprintThreadSafe))
2015 static ENGINE_API FVector RandomUnitVectorInEllipticalConeInRadians(FVector ConeDir, float MaxYawInRadians, float MaxPitchInRadians);
2016
2024 UFUNCTION(BlueprintPure, Category = "Math|Random", meta = (Keywords = "RandomVector Pitch Yaw", NotBlueprintThreadSafe))
2025 static FVector RandomUnitVectorInEllipticalConeInDegrees(FVector ConeDir, float MaxYawInDegrees, float MaxPitchInDegrees)
2026 {
2027 return RandomUnitVectorInEllipticalConeInRadians(ConeDir, FMath::DegreesToRadians(MaxYawInDegrees), FMath::DegreesToRadians(MaxPitchInDegrees));
2028 }
2029
2030
2031 //
2032 // Vector4 constants - exposed for scripting
2033 //
2034
2036 UFUNCTION(BlueprintPure, meta = (ScriptConstant = "Zero", ScriptConstantHost = "/Script/CoreUObject.Vector4"), Category = "Math|Vector4")
2037 static UE_INL_API FVector4 Vector4_Zero();
2038
2039 //
2040 // Vector4 functions
2041 //
2042
2044 UFUNCTION(BlueprintPure, meta = (Keywords = "construct build", NativeMakeFunc), Category = "Math|Vector4")
2045 static UE_INL_API FVector4 MakeVector4(double X, double Y, double Z, double W);
2046
2048 UFUNCTION(BlueprintPure, meta = (NativeBreakFunc), Category = "Math|Vector4")
2049 static UE_INL_API void BreakVector4(const FVector4& InVec, double& X, double& Y, double& Z, double& W);
2050
2052 UFUNCTION(BlueprintPure, meta = (DisplayName = "To Vector (Vector4)", CompactNodeTitle = "->", ScriptMethod = "Vector", Keywords = "cast convert", BlueprintAutocast), Category = "Math|Conversions")
2054
2061 UFUNCTION(BlueprintPure, meta=(DisplayName = "To Rotation (Vector4)", ScriptMethod = "Rotator", Keywords = "rotation rotate cast convert", BlueprintAutocast), Category = "Math|Conversions")
2063
2073 UFUNCTION(BlueprintPure, meta=(DisplayName = "To Quaternion (Vector4)", ScriptMethod = "Quaternion", Keywords = "rotation rotate cast convert", BlueprintAutocast), Category = "Math|Conversions")
2075
2077 UFUNCTION(BlueprintPure, meta = (DisplayName = "Vector4 + Vector4", CompactNodeTitle = "+", ScriptMethod = "Add", ScriptOperator = "+;+=", Keywords = "+ add plus", CommutativeAssociativeBinaryOperator = "true"), Category = "Math|Vector4")
2078 static UE_INL_API FVector4 Add_Vector4Vector4(const FVector4& A, const FVector4& B);
2079
2081 UFUNCTION(BlueprintPure, meta = (DisplayName = "Vector4 - Vector4", CompactNodeTitle = "-", ScriptMethod = "Subtract", ScriptOperator = "-;-=", Keywords = "- subtract minus"), Category = "Math|Vector4")
2082 static UE_INL_API FVector4 Subtract_Vector4Vector4(const FVector4& A, const FVector4& B);
2083
2085 UFUNCTION(BlueprintPure, meta = (DisplayName = "Vector4 * Vector4", CompactNodeTitle = "*", ScriptMethod = "Multiply", ScriptOperator = "*;*=", Keywords = "* multiply", CommutativeAssociativeBinaryOperator = "true"), Category = "Math|Vector4")
2086 static UE_INL_API FVector4 Multiply_Vector4Vector4(const FVector4& A, const FVector4& B);
2087
2089 UFUNCTION(BlueprintPure, meta = (DisplayName = "Vector4 / Vector4", CompactNodeTitle = "/", ScriptMethod = "Divide", ScriptOperator = "/;/=", Keywords = "/ divide division"), Category = "Math|Vector4")
2090 static UE_INL_API FVector4 Divide_Vector4Vector4(const FVector4& A, const FVector4& B);
2091
2093 UFUNCTION(BlueprintPure, meta=(DisplayName = "Equal Exactly (Vector4)", CompactNodeTitle = "===", ScriptMethod = "Equals", ScriptOperator = "==", Keywords = "== equal"), Category = "Math|Vector4")
2094 static UE_INL_API bool EqualExactly_Vector4Vector4(const FVector4& A, const FVector4& B);
2095
2097 UFUNCTION(BlueprintPure, meta = (DisplayName = "Equal (Vector4)", CompactNodeTitle = "==", ScriptMethod = "IsNearEqual", Keywords = "== equal"), Category = "Math|Vector4")
2098 static UE_INL_API bool EqualEqual_Vector4Vector4(const FVector4& A, const FVector4& B, float ErrorTolerance = 1.e-4f);
2099
2101 UFUNCTION(BlueprintPure, meta = (DisplayName = "Not Equal Exactly (Vector4)", CompactNodeTitle = "!==", ScriptMethod = "NotEqual", ScriptOperator = "!=", Keywords = "!= not equal"), Category = "Math|Vector4")
2102 static UE_INL_API bool NotEqualExactly_Vector4Vector4(const FVector4& A, const FVector4& B);
2103
2105 UFUNCTION(BlueprintPure, meta = (DisplayName = "Not Equal (Vector4)", CompactNodeTitle = "!=", ScriptMethod = "IsNotNearEqual", Keywords = "!= not equal"), Category = "Math|Vector4")
2106 static UE_INL_API bool NotEqual_Vector4Vector4(const FVector4& A, const FVector4& B, float ErrorTolerance = 1.e-4f);
2107
2109 UFUNCTION(BlueprintPure, meta = (DisplayName = "Negated (Vector4)", ScriptMethod = "Negated", ScriptOperator = "neg"), Category = "Math|Vector4")
2111
2117 UFUNCTION(BlueprintCallable, meta = (ScriptMethod = "Assign"), Category = "Math|Vector4")
2118 static UE_INL_API void Vector4_Assign(UPARAM(ref) FVector4& A, const FVector4& InVector);
2119
2128 UFUNCTION(BlueprintCallable, meta = (ScriptMethod = "Set"), Category = "Math|Vector4")
2129 static UE_INL_API void Vector4_Set(UPARAM(ref) FVector4& A, double X, double Y, double Z, double W);
2130
2132 UFUNCTION(BlueprintPure, meta = (DisplayName = "Cross Product XYZ (Vector4)", CompactNodeTitle = "cross3", ScriptMethod = "Cross3"), Category = "Math|Vector4")
2134
2136 UFUNCTION(BlueprintPure, meta = (DisplayName = "Dot Product (Vector4)", CompactNodeTitle = "dot", ScriptMethod = "Dot", ScriptOperator = "|"), Category = "Math|Vector4")
2137 static UE_INL_API double Vector4_DotProduct(const FVector4& A, const FVector4& B);
2138
2140 UFUNCTION(BlueprintPure, meta = (DisplayName = "Dot Product XYZ (Vector4)", CompactNodeTitle = "dot3", ScriptMethod = "Dot3"), Category = "Math|Vector4")
2141 static UE_INL_API double Vector4_DotProduct3(const FVector4& A, const FVector4& B);
2142
2148 UFUNCTION(BlueprintPure, meta = (ScriptMethod = "IsNAN"), Category = "Math|Vector4")
2149 static UE_INL_API bool Vector4_IsNAN(const FVector4& A);
2150
2157 UFUNCTION(BlueprintPure, meta = (ScriptMethod = "IsNearlyZero3"), Category = "Math|Vector4")
2158 static UE_INL_API bool Vector4_IsNearlyZero3(const FVector4& A, float Tolerance = 1.e-4f);
2159
2165 UFUNCTION(BlueprintPure, meta = (ScriptMethod = "IsZero"), Category = "Math|Vector4")
2166 static UE_INL_API bool Vector4_IsZero(const FVector4& A);
2167
2169 UFUNCTION(BlueprintPure, meta = (DisplayName = "Length (Vector4)", ScriptMethod = "Length", Keywords = "magnitude"), Category = "Math|Vector4")
2170 static UE_INL_API double Vector4_Size(const FVector4& A);
2171
2173 UFUNCTION(BlueprintPure, meta = (DisplayName = "Length Squared (Vector4)", ScriptMethod = "LengthSquared", Keywords = "magnitude"), Category = "Math|Vector4")
2174 static UE_INL_API double Vector4_SizeSquared(const FVector4& A);
2175
2177 UFUNCTION(BlueprintPure, meta = (DisplayName = "Length XYZ (Vector4)", ScriptMethod = "Length3", Keywords = "magnitude"), Category = "Math|Vector4")
2178 static UE_INL_API double Vector4_Size3(const FVector4& A);
2179
2181 UFUNCTION(BlueprintPure, meta = (DisplayName = "Length XYZ Squared (Vector4)", ScriptMethod = "LengthSquared3", Keywords = "magnitude"), Category = "Math|Vector4")
2182 static UE_INL_API double Vector4_SizeSquared3(const FVector4& A);
2183
2189 UFUNCTION(BlueprintPure, meta=(DisplayName = "Is Unit XYZ (Vector4)", ScriptMethod = "IsUnit3", Keywords = "Unit Vector"), Category = "Math|Vector4")
2190 static UE_INL_API bool Vector4_IsUnit3(const FVector4& A, float SquaredLenthTolerance = 1.e-4f);
2191
2197 UFUNCTION(BlueprintPure, meta=(DisplayName = "Is Normal XYZ (Vector4)", ScriptMethod = "IsNormal3", Keywords = "Unit Vector"), Category = "Math|Vector4")
2198 static UE_INL_API bool Vector4_IsNormal3(const FVector4& A);
2199
2207 UFUNCTION(BlueprintPure, meta=(DisplayName = "Normalize XYZ (Vector 4)", ScriptMethod = "Normal3", Keywords = "Unit Vector"), Category = "Math|Vector4")
2208 static UE_INL_API FVector4 Vector4_Normal3(const FVector4& A, float Tolerance = 1.e-4f);
2209
2215 UFUNCTION(BlueprintPure, meta=(DisplayName = "Normal Unsafe XYZ (Vector4)", ScriptMethod = "NormalUnsafe3", Keywords = "Unit Vector"), Category = "Math|Vector4")
2217
2223 UFUNCTION(BlueprintCallable, meta = (DisplayName = "Normalize In Place XYZ (Vector4)", ScriptMethod = "Normalize3", Keywords = "Unit Vector"), Category = "Math|Vector4")
2224 static UE_INL_API void Vector4_Normalize3(UPARAM(ref) FVector4& A, float Tolerance = 1.e-8f);
2225
2236 UFUNCTION(BlueprintPure, meta=(ScriptMethod = "MirrorByVector3", Keywords = "Reflection"), Category = "Math|Vector4")
2237 static UE_INL_API FVector4 Vector4_MirrorByVector3(const FVector4& Direction, const FVector4& SurfaceNormal);
2238
2244 UFUNCTION(BlueprintPure, meta = (DisplayName = "Transform Vector4 by Matrix"), Category = "Math|Vector4")
2245 static UE_INL_API FVector4 TransformVector4(const FMatrix& Matrix, const FVector4& Vec4);
2246
2247 //
2248 // Rotator functions.
2249 //
2250
2252 UFUNCTION(BlueprintPure, Category="Math|Rotator", meta=(Keywords="construct build rotation rotate rotator makerotator", NativeMakeFunc))
2253 static UE_INL_API FRotator MakeRotator(
2254 UPARAM(DisplayName="X (Roll)") float Roll,
2255 UPARAM(DisplayName="Y (Pitch)") float Pitch,
2256 UPARAM(DisplayName="Z (Yaw)") float Yaw);
2257
2259 UFUNCTION(BlueprintPure, Category="Math|Rotator", meta=(Keywords="construct build rotation rotate rotator makerotator"))
2260 static UE_INL_API FRotator MakeRotFromX(const FVector& X);
2261
2263 UFUNCTION(BlueprintPure, Category="Math|Rotator", meta=(Keywords="construct build rotation rotate rotator makerotator"))
2264 static UE_INL_API FRotator MakeRotFromY(const FVector& Y);
2265
2267 UFUNCTION(BlueprintPure, Category="Math|Rotator", meta=(Keywords="construct build rotation rotate rotator makerotator"))
2268 static UE_INL_API FRotator MakeRotFromZ(const FVector& Z);
2269
2271 UFUNCTION(BlueprintPure, Category="Math|Rotator", meta=(Keywords="construct build rotation rotate rotator makerotator"))
2272 static UE_INL_API FRotator MakeRotFromXY(const FVector& X, const FVector& Y);
2273
2275 UFUNCTION(BlueprintPure, Category="Math|Rotator", meta=(Keywords="construct build rotation rotate rotator makerotator"))
2276 static UE_INL_API FRotator MakeRotFromXZ(const FVector& X, const FVector& Z);
2277
2279 UFUNCTION(BlueprintPure, Category="Math|Rotator", meta=(Keywords="construct build rotation rotate rotator makerotator"))
2280 static UE_INL_API FRotator MakeRotFromYX(const FVector& Y, const FVector& X);
2281
2283 UFUNCTION(BlueprintPure, Category="Math|Rotator", meta=(Keywords="construct build rotation rotate rotator makerotator"))
2284 static UE_INL_API FRotator MakeRotFromYZ(const FVector& Y, const FVector& Z);
2285
2287 UFUNCTION(BlueprintPure, Category="Math|Rotator", meta=(Keywords="construct build rotation rotate rotator makerotator"))
2288 static UE_INL_API FRotator MakeRotFromZX(const FVector& Z, const FVector& X);
2289
2291 UFUNCTION(BlueprintPure, Category="Math|Rotator", meta=(Keywords="construct build rotation rotate rotator makerotator"))
2292 static UE_INL_API FRotator MakeRotFromZY(const FVector& Z, const FVector& Y);
2293
2294 // Build a reference frame from three axes
2295 UFUNCTION(BlueprintPure, Category="Math|Rotator", meta=(Keywords="construct build rotation rotate"))
2296 static ENGINE_API FRotator MakeRotationFromAxes(FVector Forward, FVector Right, FVector Up);
2297
2299 UFUNCTION(BlueprintPure, Category="Math|Rotator", meta=(Keywords="rotation rotate"))
2300 static UE_INL_API FRotator FindLookAtRotation(const FVector& Start, const FVector& Target);
2301
2306 UFUNCTION(BlueprintPure, Category = "Math|Rotator", meta = (Keywords = "rotation rotate local azimuth"))
2307 static ENGINE_API FRotator FindRelativeLookAtRotation(const FTransform& StartTransform, const FVector& TargetLocation);
2308
2310 UFUNCTION(BlueprintPure, Category = "Math|Rotator", meta = (Keywords = "rotation rotate rotator breakrotator", NativeBreakFunc))
2311 static UE_INL_API void BreakRotator(
2312 UPARAM(DisplayName="Rotation") FRotator InRot,
2313 UPARAM(DisplayName="X (Roll)") float& Roll,
2314 UPARAM(DisplayName="Y (Pitch)") float& Pitch,
2315 UPARAM(DisplayName="Z (Yaw)") float& Yaw);
2316
2318 UFUNCTION(BlueprintPure, Category="Math|Rotator", meta=(Keywords="rotation rotate rotator breakrotator"))
2319 static ENGINE_API void BreakRotIntoAxes(const FRotator& InRot, FVector& X, FVector& Y, FVector& Z);
2320
2322 UFUNCTION(BlueprintPure, meta=(DisplayName = "Equal (Rotator)", CompactNodeTitle = "==", ScriptMethod = "IsNearEqual", ScriptOperator = "==", Keywords = "== equal"), Category="Math|Rotator")
2323 static UE_INL_API bool EqualEqual_RotatorRotator(FRotator A, FRotator B, float ErrorTolerance = 1.e-4f);
2324
2326 UFUNCTION(BlueprintPure, meta=(DisplayName = "Not Equal (Rotator)", CompactNodeTitle = "!=", ScriptMethod = "IsNotNearEqual", ScriptOperator = "!=", Keywords = "!= not equal"), Category="Math|Rotator")
2327 static UE_INL_API bool NotEqual_RotatorRotator(FRotator A, FRotator B, float ErrorTolerance = 1.e-4f);
2328
2330 UFUNCTION(BlueprintPure, meta=(DisplayName = "Scale Rotator (Float)", CompactNodeTitle = "*", ScriptMethod = "Scale", Keywords = "* multiply rotate rotation"), Category="Math|Rotator")
2332
2334 UFUNCTION(BlueprintPure, meta=(DisplayName = "Scale Rotator (Integer)", CompactNodeTitle = "*", ScriptMethod = "ScaleInteger", Keywords = "* multiply rotate rotation"), Category="Math|Rotator")
2336
2338 UFUNCTION(BlueprintPure, meta=(DisplayName = "Combine Rotators", ScriptMethod = "Combine", Keywords="rotate rotation add"), Category="Math|Rotator")
2339 static ENGINE_API FRotator ComposeRotators(FRotator A, FRotator B);
2340
2342 UFUNCTION(BlueprintPure, meta=(DisplayName="Invert Rotator", ScriptMethod = "Inversed", ScriptOperator = "neg", Keywords="rotate rotation"), Category="Math|Rotator")
2343 static UE_INL_API FRotator NegateRotator(FRotator A);
2344
2346 UFUNCTION(BlueprintPure, meta=(ScriptMethod = "GetForwardVector", Keywords="rotation rotate"), Category="Math|Vector")
2347 static ENGINE_API FVector GetForwardVector(FRotator InRot);
2348
2350 UFUNCTION(BlueprintPure, meta=(ScriptMethod = "GetRightVector", Keywords="rotation rotate"), Category="Math|Vector")
2351 static ENGINE_API FVector GetRightVector(FRotator InRot);
2352
2354 UFUNCTION(BlueprintPure, meta=(ScriptMethod = "GetUpVector", Keywords="rotation rotate"), Category="Math|Vector")
2355 static ENGINE_API FVector GetUpVector(FRotator InRot);
2356
2358 UFUNCTION(BlueprintPure, meta=(ScriptMethod = "ToVector", DisplayName = "Get Rotation X Vector", Keywords="rotation rotate cast convert", BlueprintAutocast), Category="Math|Rotator")
2359 static UE_INL_API FVector Conv_RotatorToVector(FRotator InRot);
2360
2362 UFUNCTION(BlueprintPure, meta = (DisplayName = "To Transform (Rotator)", CompactNodeTitle = "->", ScriptMethod = "Transform", Keywords = "cast convert", BlueprintAutocast), Category = "Math|Conversions")
2364
2366 UFUNCTION(BlueprintPure, meta=(ScriptMethod = "GetAxes", Keywords="rotate rotation"), Category="Math|Rotator")
2367 static ENGINE_API void GetAxes(FRotator A, FVector& X, FVector& Y, FVector& Z);
2368
2370 UFUNCTION(BlueprintPure, Category="Math|Random", meta=(Keywords="rotate rotation", NotBlueprintThreadSafe))
2371 static ENGINE_API FRotator RandomRotator(bool bRoll = false);
2372
2374 UFUNCTION(BlueprintPure, meta=(DisplayName = "Lerp (Rotator)", ScriptMethod = "Lerp"), Category="Math|Rotator")
2375 static ENGINE_API FRotator RLerp(FRotator A, FRotator B, float Alpha, bool bShortestPath);
2376
2378 UFUNCTION(BlueprintPure, meta = (DisplayName = "Ease (Rotator)", BlueprintInternalUseOnly = "true", ScriptMethod = "Ease"), Category = "Math|Interpolation")
2379 static ENGINE_API FRotator REase(FRotator A, FRotator B, float Alpha, bool bShortestPath, TEnumAsByte<EEasingFunc::Type> EasingFunc, float BlendExp = 2, int32 Steps = 2);
2380
2382 UFUNCTION(BlueprintPure, meta=(DisplayName = "Delta (Rotator)", ScriptMethod = "Delta"), Category="Math|Rotator")
2384
2391 UFUNCTION(BlueprintPure, Category = "Math|Rotator")
2392 static ENGINE_API float ClampAxis(float Angle);
2393
2400 UFUNCTION(BlueprintPure, Category="Math|Rotator")
2401 static ENGINE_API float NormalizeAxis(float Angle);
2402
2403
2404 //
2405 // Matrix functions
2406 //
2407
2411 UFUNCTION(BlueprintPure, meta = (DisplayName = "To Transform (Matrix)", CompactNodeTitle = "->", ScriptMethod = "Transform", Keywords = "cast convert"), Category = "Math|Conversions")
2413
2417 UFUNCTION(BlueprintPure, meta = (DisplayName = "To Rotator (Matrix)", CompactNodeTitle = "->", ScriptMethod = "Rotator", Keywords = "cast convert"), Category = "Math|Conversions")
2419
2426 UFUNCTION(BlueprintPure, meta = (DisplayName = "Get Origin (Matrix)", ScriptMethod = "GetOrigin"), Category = "Math|Matrix")
2428
2429 // Identity matrix
2430 UFUNCTION(BlueprintPure, meta = (DisplayName = "Identity (Matrix)", ScriptConstant = "Identity", ScriptConstantHost = "/Script/CoreUObject.Matrix"), Category = "Math|Matrix")
2432
2439 UFUNCTION(BlueprintPure, meta = (DisplayName = "Matrix * Matrix", CompactNodeTitle = "*", ScriptMethod = "Multiply", ScriptOperator = "*;*=", Keywords = "* multiply"), Category = "Math|Matrix")
2440 static UE_INL_API FMatrix Multiply_MatrixMatrix (const FMatrix& A, const FMatrix& B);
2441
2448 UFUNCTION(BlueprintPure, meta = (DisplayName = "Matrix + Matrix", CompactNodeTitle = "+", ScriptMethod = "Add", ScriptOperator = "+;+=", Keywords = "+ add plus", CommutativeAssociativeBinaryOperator = "true"), Category = "Math|Matrix")
2449 static UE_INL_API FMatrix Add_MatrixMatrix (const FMatrix& A, const FMatrix& B);
2450
2455 UFUNCTION(BlueprintPure, meta = (DisplayName = "Matrix * Float", CompactNodeTitle = "*", ScriptMethod = "MultiplyFloat", ScriptOperator = "*;*=", Keywords = "* multiply"), Category = "Math|Matrix")
2456 static UE_INL_API FMatrix Multiply_MatrixFloat (const FMatrix& A, double B);
2457
2465 UFUNCTION(BlueprintPure, meta = (DisplayName = "Equal (Matrix)", CompactNodeTitle = "==", ScriptMethod = "Equals", ScriptOperator = "==", Keywords = "== equal"), Category = "Math|Matrix")
2466 static UE_INL_API bool EqualEqual_MatrixMatrix(const FMatrix& A, const FMatrix& B, float Tolerance = 1.e-4f);
2467
2474 UFUNCTION(BlueprintPure, meta = (DisplayName = "Not Equal (Matrix)", CompactNodeTitle = "!=", ScriptMethod = "NotEqual", ScriptOperator = "!=", Keywords = "!= not equal"), Category = "Math|Matrix")
2475 static UE_INL_API bool NotEqual_MatrixMatrix(const FMatrix& A, const FMatrix& B, float Tolerance = 1.e-4f);
2476
2481 UFUNCTION(BlueprintPure, meta = (DisplayName = "Transform Vector4 (Matrix)", ScriptMethod = "TransformVector4"), Category = "Math|Matrix")
2483
2487 UFUNCTION(BlueprintPure, meta = (DisplayName = "Transform Position (Matrix)", ScriptMethod = "TransformPosition"), Category = "Math|Matrix")
2489
2493 UFUNCTION(BlueprintPure, meta = (DisplayName = "Inverse Transform Position (Matrix)", ScriptMethod = "InverseTransformPosition"), Category = "Math|Matrix")
2495
2501 UFUNCTION(BlueprintPure, meta = (DisplayName = "Transform Vector (Matrix)", ScriptMethod = "TransformVector"), Category = "Math|Matrix")
2503
2509 UFUNCTION(BlueprintPure, meta = (DisplayName = "Inverse Transform Vector (Matrix)", ScriptMethod = "InverseTransformVector"), Category = "Math|Matrix")
2511
2512 // Transpose.
2513 UFUNCTION(BlueprintPure, meta = (DisplayName = "Get Transposed (Matrix)", ScriptMethod = "GetTransposed"), Category = "Math|Matrix")
2515
2516 // @return determinant of this matrix.
2517 UFUNCTION(BlueprintPure, meta = (DisplayName = "Get Determinant (Matrix)", ScriptMethod = "GetDeterminant"), Category = "Math|Matrix")
2518 static UE_INL_API float Matrix_GetDeterminant(const FMatrix& M);
2519
2523 UFUNCTION(BlueprintPure, meta = (DisplayName = "Get Rotation Determinant (Matrix)", ScriptMethod = "GetRotDeterminant"), Category = "Math|Matrix")
2524 static UE_INL_API float Matrix_GetRotDeterminant(const FMatrix& M);
2525
2527 UFUNCTION(BlueprintPure, meta = (DisplayName = "GetInverse (Matrix)", ScriptMethod = "GetInverse"), Category = "Math|Matrix")
2529
2531 UFUNCTION(BlueprintPure, meta = (DisplayName = "Get Transpose Adjoint (Matrix)", ScriptMethod = "GetTransposeAdjoint"), Category = "Math|Matrix")
2533
2537 UFUNCTION(BlueprintCallable, meta = (DisplayName = "Remove Scaling (Matrix)", ScriptMethod = "RemoveScaling"), Category = "Math|Matrix")
2538 static UE_INL_API void Matrix_RemoveScaling(UPARAM(Ref) FMatrix& M, float Tolerance = 1.e-8f);
2539
2543 UFUNCTION(BlueprintPure, meta = (DisplayName = "Get Matrix Without Scale (Matrix)", ScriptMethod = "GetMatrixWithoutScale"), Category = "Math|Matrix")
2544 static UE_INL_API FMatrix Matrix_GetMatrixWithoutScale(const FMatrix& M, float Tolerance = 1.e-8f);
2545
2549 UFUNCTION(BlueprintPure, meta = (DisplayName = "Get Scale Vector (Matrix)", ScriptMethod = "GetScaleVector"), Category = "Math|Matrix")
2550 static UE_INL_API FVector Matrix_GetScaleVector(const FMatrix& M, float Tolerance = 1.e-8f);
2551
2555 UFUNCTION(BlueprintPure, meta = (DisplayName = "Remove Translation (Matrix)", ScriptMethod = "RemoveTranslation"), Category = "Math|Matrix")
2557
2561 UFUNCTION(BlueprintPure, meta = (DisplayName = "Concatenate Translation (Matrix)", ScriptMethod = "ConcatenateTranslation"), Category = "Math|Matrix")
2563
2565 UFUNCTION(BlueprintPure, meta = (DisplayName = "Contains NaN (Matrix)", ScriptMethod = "ContainsNaN"), Category = "Math|Matrix")
2566 static UE_INL_API bool Matrix_ContainsNaN(const FMatrix& M);
2567
2571 UFUNCTION(BlueprintPure, meta = (DisplayName = "Scale Translation (Matrix)", ScriptMethod = "ScaleTranslation"), Category = "Math|Matrix")
2572 static UE_INL_API FMatrix Matrix_ScaleTranslation(const FMatrix& M, FVector Scale3D);
2573
2577 UFUNCTION(BlueprintPure, meta = (DisplayName = "Get Maximum Axis Scale (Matrix)", ScriptMethod = "GetMaximumAxisScale"), Category = "Math|Matrix")
2578 static UE_INL_API float Matrix_GetMaximumAxisScale(const FMatrix& M);
2579
2583 UFUNCTION(BlueprintPure, meta = (DisplayName = "Apply Scale (Matrix)", ScriptMethod = "ApplyScale"), Category = "Math|Matrix")
2584 static UE_INL_API FMatrix Matrix_ApplyScale(const FMatrix& M, float Scale);
2585
2593 UFUNCTION(BlueprintPure, meta = (DisplayName = "Get Scaled Axis (Matrix)", ScriptMethod = "GetScaledAxis"), Category = "Math|Matrix")
2595
2604 UFUNCTION(BlueprintPure, meta = (DisplayName = "Get Scaled Axes (Matrix)", ScriptMethod = "GetScaledAxes"), Category = "Math|Matrix")
2605 static UE_INL_API void Matrix_GetScaledAxes(const FMatrix& M, FVector &X, FVector &Y, FVector &Z);
2606
2614 UFUNCTION(BlueprintPure, meta = (DisplayName = "Get Unit Axis (Matrix)", ScriptMethod = "GetUnitAxis"), Category = "Math|Matrix")
2616
2625 UFUNCTION(BlueprintPure, meta = (DisplayName = "Get Unit Axes (Matrix)", ScriptMethod = "GetUnitAxes"), Category = "Math|Matrix")
2626 static UE_INL_API void Matrix_GetUnitAxes(const FMatrix& M, FVector &X, FVector &Y, FVector &Z);
2627
2635 UFUNCTION(BlueprintCallable, meta = (DisplayName = "Set Axis (Matrix)", ScriptMethod = "SetAxis"), Category = "Math|Matrix")
2637
2641 UFUNCTION(BlueprintCallable, meta = (DisplayName = "Set Origin (Matrix)", ScriptMethod = "SetOrigin"), Category = "Math|Matrix")
2642 static UE_INL_API void Matrix_SetOrigin(UPARAM(Ref) FMatrix& M, FVector NewOrigin);
2643
2650 UFUNCTION(BlueprintPure, meta = (DisplayName = "Get Column (Matrix)", ScriptMethod = "GetColumn"), Category = "Math|Matrix")
2652
2653 UFUNCTION(BlueprintCallable, meta = (DisplayName = "Set Column (Matrix)", ScriptMethod = "SetColumn"), Category = "Math|Matrix")
2655
2661 UFUNCTION(BlueprintPure, meta = (DisplayName = "Get Rotator (Matrix)", ScriptMethod = "GetRotator"), Category = "Math|Matrix")
2663
2670 UFUNCTION(BlueprintPure, meta = (DisplayName = "To Quat (Matrix)", ScriptMethod = "ToQuat"), Category = "Math|Matrix")
2671 static UE_INL_API FQuat Matrix_ToQuat(const FMatrix& M);
2672
2673 // Frustum plane extraction.
2674
2679 UFUNCTION(BlueprintPure, meta = (DisplayName = "Get Frustum Near Plane (Matrix)", ScriptMethod = "GetFrustumNearPlane"), Category = "Math|Matrix")
2680 static UE_INL_API bool Matrix_GetFrustumNearPlane(const FMatrix& M, FPlane& OutPlane);
2681
2686 UFUNCTION(BlueprintPure, meta = (DisplayName = "Get Frustum Far Plane (Matrix)", ScriptMethod = "GetFrustumFarPlane"), Category = "Math|Matrix")
2687 static UE_INL_API bool Matrix_GetFrustumFarPlane(const FMatrix& M, FPlane& OutPlane);
2688
2693 UFUNCTION(BlueprintPure, meta = (DisplayName = "Get Frustum Left Plane (Matrix)", ScriptMethod = "GetFrustumLeftPlane"), Category = "Math|Matrix")
2694 static UE_INL_API bool Matrix_GetFrustumLeftPlane(const FMatrix& M, FPlane& OutPlane);
2695
2700 UFUNCTION(BlueprintPure, meta = (DisplayName = "Get Frustum Right Plane (Matrix)", ScriptMethod = "GetFrustumRightPlane"), Category = "Math|Matrix")
2701 static UE_INL_API bool Matrix_GetFrustumRightPlane(const FMatrix& M, FPlane& OutPlane);
2702
2707 UFUNCTION(BlueprintPure, meta = (DisplayName = "Get Frustum Top Plane (Matrix)", ScriptMethod = "GetFrustumTopPlane"), Category = "Math|Matrix")
2708 static UE_INL_API bool Matrix_GetFrustumTopPlane(const FMatrix& M, FPlane& OutPlane);
2709
2714 UFUNCTION(BlueprintPure, meta = (DisplayName = "Get Frustum Bottom Plane (Matrix)", ScriptMethod = "GetFrustumBottomPlane"), Category = "Math|Matrix")
2715 static UE_INL_API bool Matrix_GetFrustumBottomPlane(const FMatrix& M, FPlane& OutPlane);
2716
2721 UFUNCTION(BlueprintPure, meta = (DisplayName = "Mirror (Matrix)", ScriptMethod = "Mirror"), Category = "Math|Matrix")
2723
2724 //
2725 // Quat constants - exposed for scripting
2726 //
2727
2729 UFUNCTION(BlueprintPure, meta = (ScriptConstant = "Identity", ScriptConstantHost = "/Script/CoreUObject.Quat"), Category = "Math|Quat")
2730 static UE_INL_API FQuat Quat_Identity();
2731
2732 //
2733 // Quat functions
2734 //
2735
2737 UFUNCTION(BlueprintPure, meta = (DisplayName = "Equal (Quat)", CompactNodeTitle = "==", ScriptMethod = "Equals", ScriptOperator = "==", Keywords = "== equal"), Category = "Math|Quat")
2738 static UE_INL_API bool EqualEqual_QuatQuat(const FQuat& A, const FQuat& B, float Tolerance = 1.e-4f);
2739
2741 UFUNCTION(BlueprintPure, meta = (DisplayName = "Not Equal (Quat)", CompactNodeTitle = "!=", ScriptMethod = "NotEqual", ScriptOperator = "!=", Keywords = "!= not equal"), Category = "Math|Quat")
2742 static UE_INL_API bool NotEqual_QuatQuat(const FQuat& A, const FQuat& B, float ErrorTolerance = 1.e-4f);
2743
2745 UFUNCTION(BlueprintPure, meta = (DisplayName = "Quat + Quat", CompactNodeTitle = "+", ScriptMethod = "Add", ScriptOperator = "+;+=", Keywords = "+ add plus", CommutativeAssociativeBinaryOperator = "true"), Category = "Math|Quat")
2746 static UE_INL_API FQuat Add_QuatQuat(const FQuat& A, const FQuat& B);
2747
2749 UFUNCTION(BlueprintPure, meta = (DisplayName = "Quat - Quat", CompactNodeTitle = "-", ScriptMethod = "Subtract", ScriptOperator = "-;-=", Keywords = "- subtract minus"), Category = "Math|Quat")
2750 static UE_INL_API FQuat Subtract_QuatQuat(const FQuat& A, const FQuat& B);
2751
2753 UFUNCTION(BlueprintPure, Category = "Math|Quat", meta = (Keywords = "construct build", NativeMakeFunc))
2754 static UE_INL_API FQuat MakeQuat(float X, float Y, float Z, float W);
2755
2757 UFUNCTION(BlueprintPure, Category = "Math|Quat", meta = (NativeBreakFunc))
2758 static UE_INL_API void BreakQuat(const FQuat& InQuat, float& X, float& Y, float& Z, float& W);
2759
2769 UFUNCTION(BlueprintPure, meta = (DisplayName = "Quat * Quat", CompactNodeTitle = "*", ScriptMethod = "Multiply", ScriptOperator = "*;*=", Keywords = "* multiply", CommutativeAssociativeBinaryOperator = "true"), Category = "Math|Quat")
2770 static UE_INL_API FQuat Multiply_QuatQuat(const FQuat& A, const FQuat& B);
2771
2779 UFUNCTION(BlueprintPure, meta = (DisplayName = "Is Identity (Quat)", ScriptMethod = "IsIdentity"), Category = "Math|Quat")
2780 static UE_INL_API bool Quat_IsIdentity(const FQuat& Q, float Tolerance = 1.e-4f);
2781
2783 UFUNCTION(BlueprintPure, meta = (DisplayName = "Is Normalized (Quat)", ScriptMethod = "IsNormalized"), Category = "Math|Quat")
2784 static UE_INL_API bool Quat_IsNormalized(const FQuat& Q);
2785
2787 UFUNCTION(BlueprintPure, meta = (DisplayName = "Is Finite (Quat)", ScriptMethod = "IsFinite"), Category = "Math|Quat")
2788 static UE_INL_API bool Quat_IsFinite(const FQuat& Q);
2789
2791 UFUNCTION(BlueprintPure, meta = (DisplayName = "Is Non-Finite (Quat)", ScriptMethod = "IsNonFinite"), Category = "Math|Quat")
2792 static UE_INL_API bool Quat_IsNonFinite(const FQuat& Q);
2793
2800 UFUNCTION(BlueprintPure, meta = (DisplayName = "Angular Distance (Quat)", ScriptMethod = "AngularDistance"), Category = "Math|Quat")
2801 static UE_INL_API float Quat_AngularDistance(const FQuat& A, const FQuat& B);
2802
2804 UFUNCTION(BlueprintCallable, meta = (DisplayName = "Ensure Shortest Arc To (Quat)", ScriptMethod = "EnsureShortestArcTo"), Category = "Math|Quat")
2805 static UE_INL_API void Quat_EnforceShortestArcWith(UPARAM(ref) FQuat& A, const FQuat& B);
2806
2808 UFUNCTION(BlueprintPure, meta = (DisplayName = "Get Shortest Arc To (Quat)", ScriptMethod = "GetShortestArcTo"), Category = "Math|Quat")
2809 static UE_INL_API FQuat Quat_GetShortestArcWith(const FQuat& A, const FQuat& B);
2810
2812 UFUNCTION(BlueprintPure, meta = (DisplayName = "Euler (Quat)", ScriptMethod = "Euler"), Category = "Math|Quat")
2813 static UE_INL_API FVector Quat_Euler(const FQuat& Q);
2814
2820 UFUNCTION(BlueprintPure, meta = (DisplayName = "Exp (Quat)", ScriptMethod = "Exp"), Category = "Math|Quat")
2821 static UE_INL_API FQuat Quat_Exp(const FQuat& Q);
2822
2824 UFUNCTION(BlueprintPure, meta = (DisplayName = "Angle (Quat)", ScriptMethod = "GetAngle"), Category = "Math|Quat")
2825 static UE_INL_API float Quat_GetAngle(const FQuat& Q);
2826
2828 UFUNCTION(BlueprintPure, meta = (DisplayName = "Axis X (Quat)", ScriptMethod = "GetAxisX"), Category = "Math|Quat")
2829 static UE_INL_API FVector Quat_GetAxisX(const FQuat& Q);
2830
2832 UFUNCTION(BlueprintPure, meta = (DisplayName = "Axis Y (Quat)", ScriptMethod = "GetAxisY"), Category = "Math|Quat")
2833 static UE_INL_API FVector Quat_GetAxisY(const FQuat& Q);
2834
2836 UFUNCTION(BlueprintPure, meta = (DisplayName = "Axis Z (Quat)", ScriptMethod = "GetAxisZ"), Category = "Math|Quat")
2837 static UE_INL_API FVector Quat_GetAxisZ(const FQuat& Q);
2838
2840 UFUNCTION(BlueprintPure, meta = (DisplayName = "Vector Forward (Quat)", ScriptMethod = "VectorForward"), Category = "Math|Quat")
2841 static UE_INL_API FVector Quat_VectorForward(const FQuat& Q);
2842
2844 UFUNCTION(BlueprintPure, meta = (DisplayName = "Vector Right (Quat)", ScriptMethod = "VectorRight"), Category = "Math|Quat")
2845 static UE_INL_API FVector Quat_VectorRight(const FQuat& Q);
2846
2848 UFUNCTION(BlueprintPure, meta = (DisplayName = "Vector Up (Quat)", ScriptMethod = "VectorUp"), Category = "Math|Quat")
2849 static UE_INL_API FVector Quat_VectorUp(const FQuat& Q);
2850
2857 UFUNCTION(BlueprintCallable, meta = (DisplayName = "Normalize (Quat)", ScriptMethod = "Normalize"), Category = "Math|Quat")
2858 static UE_INL_API void Quat_Normalize(UPARAM(ref) FQuat& Q, float Tolerance = 1.e-4f);
2859
2866 UFUNCTION(BlueprintPure, meta = (DisplayName = "Normalized (Quat)", ScriptMethod = "Normalized"), Category = "Math|Quat")
2867 static UE_INL_API FQuat Quat_Normalized(const FQuat& Q, float Tolerance = 1.e-4f);
2868
2874 UFUNCTION(BlueprintPure, meta = (DisplayName = "Rotation Axis (Quat)", ScriptMethod = "GetRotationAxis"), Category = "Math|Quat")
2876
2878 UFUNCTION(BlueprintPure, meta = (DisplayName = "Inversed (Quat)", ScriptMethod = "Inversed"), Category = "Math|Quat")
2879 static UE_INL_API FQuat Quat_Inversed(const FQuat& Q);
2880
2882 UFUNCTION(BlueprintPure, meta = (DisplayName = "Log (Quat)", ScriptMethod = "Log"), Category = "Math|Quat")
2883 static UE_INL_API FQuat Quat_Log(const FQuat& Q);
2884
2886 UFUNCTION(BlueprintCallable, meta = (DisplayName = "Set Components (Quat)", ScriptMethod = "SetComponents"), Category = "Math|Quat")
2887 static UE_INL_API void Quat_SetComponents(UPARAM(ref) FQuat& Q, float X, float Y, float Z, float W);
2888
2895 UFUNCTION(BlueprintCallable, meta = (DisplayName = "Set from Euler (Quat)", ScriptMethod = "SetFromEuler"), Category = "Math|Quat")
2896 static UE_INL_API void Quat_SetFromEuler(UPARAM(ref) FQuat& Q, const FVector& Euler);
2897
2904 UFUNCTION(BlueprintPure, meta = (DisplayName = "Make from Euler (Quat)"), Category = "Math|Quat")
2905 static UE_INL_API FQuat Quat_MakeFromEuler(const FVector& Euler);
2906
2908 UFUNCTION(BlueprintPure, meta = (DisplayName = "ToRotator (Quat)", CompactNodeTitle = "->", ScriptMethod = "Rotator", Keywords = "cast convert", BlueprintAutocast), Category = "Math|Conversions")
2909 static UE_INL_API FRotator Quat_Rotator(const FQuat& Q);
2910
2912 UFUNCTION(BlueprintPure, meta=(DisplayName = "ToQuaternion (Rotator)", CompactNodeTitle = "->", ScriptMethod = "Quaternion", Keywords="cast convert", BlueprintAutocast), Category="Math|Conversions")
2914
2920 UFUNCTION(BlueprintPure, meta = (DisplayName = "To Rotation Vector (Quat)", ScriptMethod = "ToRotationVector"), Category = "Math|Quat")
2922
2928 UFUNCTION(BlueprintPure, meta = (DisplayName = "Make from Rotation Vector (Quat)", ScriptMethod = "MakeFromRotationVector"), Category = "Math|Quat")
2930
2936 UFUNCTION(BlueprintPure, meta = (DisplayName = "Size (Quat)", ScriptMethod = "Size"), Category = "Math|Quat")
2937 static UE_INL_API float Quat_Size(const FQuat& Q);
2938
2944 UFUNCTION(BlueprintPure, meta = (DisplayName = "Size Squared (Quat)", ScriptMethod = "SizeSquared"), Category = "Math|Quat")
2945 static UE_INL_API float Quat_SizeSquared(const FQuat& Q);
2946
2953 UFUNCTION(BlueprintPure, meta = (DisplayName = "Rotate Vector (Quat)", ScriptMethod = "RotateVector"), Category = "Math|Quat")
2954 static UE_INL_API FVector Quat_RotateVector(const FQuat& Q, const FVector& V);
2955
2962 UFUNCTION(BlueprintPure, meta = (DisplayName = "Unrotate Vector (Quat)", ScriptMethod = "UnrotateVector"), Category = "Math|Quat")
2963 static UE_INL_API FVector Quat_UnrotateVector(const FQuat& Q, const FVector& V);
2964
2973 UFUNCTION(BlueprintPure, meta = (DisplayName = "Slerp (Quat)", ScriptMethod = "SlerpQuat", Keywords = "spherical interpolate"), Category = "Math|Quat")
2974 static UE_INL_API FQuat Quat_Slerp(const FQuat& A, const FQuat& B, double Alpha);
2975
2983 UFUNCTION(BlueprintPure, meta = (DisplayName = "Find Quat Between Vectors", ScriptMethod = "FindQuatBetweenVectors", Keywords = "FindQuat FindBetween"), Category = "Math|Quat")
2984 static UE_INL_API FQuat Quat_FindBetweenVectors(FVector Start, FVector End);
2985
2993 UFUNCTION(BlueprintPure, meta = (DisplayName = "Find Quat Between Normals", ScriptMethod = "FindQuatBetweenNormals", Keywords = "FindQuat FindBetween"), Category = "Math|Quat")
2994 static UE_INL_API FQuat Quat_FindBetweenNormals(FVector StartNormal, FVector EndNormal);
2995
2996 //
2997 // LinearColor constants - exposed for scripting
2998 //
2999
3001 UFUNCTION(BlueprintPure, meta = (ScriptConstant = "White", ScriptConstantHost = "/Script/CoreUObject.LinearColor"), Category = "Math|Color")
3002 static UE_INL_API FLinearColor LinearColor_White();
3003
3005 UFUNCTION(BlueprintPure, meta = (ScriptConstant = "Gray", ScriptConstantHost = "/Script/CoreUObject.LinearColor"), Category = "Math|Color")
3006 static UE_INL_API FLinearColor LinearColor_Gray();
3007
3009 UFUNCTION(BlueprintPure, meta = (ScriptConstant = "Black", ScriptConstantHost = "/Script/CoreUObject.LinearColor"), Category = "Math|Color")
3010 static UE_INL_API FLinearColor LinearColor_Black();
3011
3013 UFUNCTION(BlueprintPure, meta = (ScriptConstant = "Red", ScriptConstantHost = "/Script/CoreUObject.LinearColor"), Category = "Math|Color")
3014 static UE_INL_API FLinearColor LinearColor_Red();
3015
3017 UFUNCTION(BlueprintPure, meta = (ScriptConstant = "Green", ScriptConstantHost = "/Script/CoreUObject.LinearColor"), Category = "Math|Color")
3018 static UE_INL_API FLinearColor LinearColor_Green();
3019
3021 UFUNCTION(BlueprintPure, meta = (ScriptConstant = "Blue", ScriptConstantHost = "/Script/CoreUObject.LinearColor"), Category = "Math|Color")
3022 static UE_INL_API FLinearColor LinearColor_Blue();
3023
3025 UFUNCTION(BlueprintPure, meta = (ScriptConstant = "Yellow", ScriptConstantHost = "/Script/CoreUObject.LinearColor"), Category = "Math|Color")
3026 static UE_INL_API FLinearColor LinearColor_Yellow();
3027
3029 UFUNCTION(BlueprintPure, meta = (ScriptConstant = "Transparent", ScriptConstantHost = "/Script/CoreUObject.LinearColor"), Category = "Math|Color")
3030 static UE_INL_API FLinearColor LinearColor_Transparent();
3031
3032
3033 //
3034 // LinearColor functions
3035 //
3036
3038 UFUNCTION(BlueprintPure, Category = "Math|Color", meta = (Keywords = "construct build", NativeMakeFunc))
3039 static UE_INL_API FLinearColor MakeColor(float R, float G, float B, float A = 1.0f);
3040
3042 UFUNCTION(BlueprintPure, Category = "Math|Color")
3043 static UE_INL_API void BreakColor(FLinearColor InColor, float& R, float& G, float& B, float& A);
3044
3046 UFUNCTION(BlueprintCallable, meta = (ScriptMethod = "Set"), Category = "Math|Color")
3047 static UE_INL_API void LinearColor_Set(UPARAM(ref) FLinearColor& InOutColor, FLinearColor InColor);
3048
3050 UFUNCTION(BlueprintCallable, meta = (ScriptMethod = "SetRGBA"), Category = "Math|Color")
3051 static UE_INL_API void LinearColor_SetRGBA(UPARAM(ref) FLinearColor& InOutColor, float R, float G, float B, float A = 1.0f);
3052
3054 UFUNCTION(BlueprintCallable, meta = (ScriptMethod = "SetFromHSV"), Category = "Math|Color")
3055 static UE_INL_API void LinearColor_SetFromHSV(UPARAM(ref) FLinearColor& InOutColor, float H, float S, float V, float A = 1.0f);
3056
3061 UFUNCTION(BlueprintCallable, meta = (ScriptMethod = "SetFromSRGB"), Category = "Math|Color")
3062 static UE_INL_API void LinearColor_SetFromSRGB(UPARAM(ref) FLinearColor& InOutColor, const FColor& InSRGB);
3063
3068 UFUNCTION(BlueprintCallable, meta = (ScriptMethod = "SetFromPow22"), Category = "Math|Color")
3069 static UE_INL_API void LinearColor_SetFromPow22(UPARAM(ref) FLinearColor& InOutColor, const FColor& InColor);
3070
3072 UFUNCTION(BlueprintCallable, meta = (ScriptMethod = "SetTemperature"), Category = "Math|Color")
3073 static UE_INL_API void LinearColor_SetTemperature(UPARAM(ref) FLinearColor& InOutColor, float InTemperature);
3074
3076 UFUNCTION(BlueprintCallable, meta = (ScriptMethod = "SetRandomHue"), Category = "Math|Color")
3077 static UE_INL_API void LinearColor_SetRandomHue(UPARAM(ref) FLinearColor& InOutColor);
3078
3080 UFUNCTION(BlueprintPure, meta = (DisplayName = "To LinearColor (Float)", CompactNodeTitle = "->", Keywords = "cast convert", BlueprintAutocast), Category = "Math|Conversions")
3081 static UE_INL_API FLinearColor Conv_DoubleToLinearColor(double InDouble);
3082
3084 UFUNCTION(BlueprintPure, Category = "Math|Color", meta = (DisplayName = "HSV to RGB"))
3085 static UE_INL_API FLinearColor HSVToRGB(float H, float S, float V, float A = 1.0f);
3086
3088 UFUNCTION(BlueprintPure, meta = (DisplayName = "HSV to RGB (Vector)", ScriptMethod = "HSVIntoRGB", Keywords = "cast convert"), Category = "Math|Color")
3090
3092 UFUNCTION(BlueprintPure, meta = (DisplayName = "HSV to RGB linear color", ScriptMethod = "HSVToRGB", Keywords = "cast convert"), Category = "Math|Color")
3093 static UE_INL_API FLinearColor HSVToRGBLinear(FLinearColor HSV);
3094
3096 UFUNCTION(BlueprintPure, meta = (DisplayName = "RGB to HSV", ScriptMethod = "RGBIntoHSVComponents"), Category = "Math|Color")
3097 static UE_INL_API void RGBToHSV(FLinearColor InColor, float& H, float& S, float& V, float& A);
3098
3100 UFUNCTION(BlueprintPure, meta = (DisplayName = "RGB to HSV (Vector)", ScriptMethod = "RGBIntoHSV", Keywords = "cast convert"), Category = "Math|Color")
3102
3104 UFUNCTION(BlueprintPure, meta = (DisplayName = "RGB to HSV (LinearColor)", ScriptMethod = "RGBToHSV", Keywords = "cast convert"), Category = "Math|Color")
3106
3108 UFUNCTION(BlueprintPure, meta = (DisplayName = "To Vector (LinearColor)", ScriptMethod = "ToRGBVector", CompactNodeTitle = "->", Keywords = "cast convert", BlueprintAutocast), Category = "Math|Conversions")
3110
3112 UFUNCTION(BlueprintPure, meta = (DisplayName = "To RGBE (LinearColor)", ScriptMethod = "ToRGBE", Keywords = "cast convert", BlueprintAutocast), Category = "Math|Color")
3114
3116 UFUNCTION(BlueprintPure, meta = (DisplayName = "To Color (LinearColor)", ScriptMethod = "ToColor", CompactNodeTitle = "->", Keywords = "cast convert", BlueprintAutocast), Category = "Math|Conversions")
3118
3120 UFUNCTION(BlueprintPure, meta = (DeprecatedFunction, DeprecationMessage = "Use LinearColor_QuantizeRound instead for correct color conversion.", DisplayName = "Quantize to 8-bit (LinearColor)", ScriptMethod = "Quantize", Keywords = "cast convert"), Category = "Math|Color")
3122
3124 UFUNCTION(BlueprintPure, meta = (DisplayName = "Quantize With Rounding To 8-bit (LinearColor)", ScriptMethod = "QuantizeRound", Keywords = "cast convert"), Category = "Math|Color")
3126
3133 UFUNCTION(BlueprintPure, meta = (DisplayName = "Desaturate (LinearColor)", ScriptMethod = "Desaturated"), Category = "Math|Color")
3134 static UE_INL_API FLinearColor LinearColor_Desaturated(FLinearColor InColor, float InDesaturation);
3135
3137 UFUNCTION(BlueprintPure, meta = (DisplayName = "Distance (LinearColor)", ScriptMethod = "Distance", Keywords = "magnitude"), Category = "Math|Color")
3139
3141 UFUNCTION(BlueprintPure, meta = (DisplayName = "New Opacity (LinearColor)", ScriptMethod = "ToNewOpacity"), Category = "Math|Color")
3142 static UE_INL_API FLinearColor LinearColor_ToNewOpacity(FLinearColor InColor, float InOpacity);
3143
3145 UFUNCTION(BlueprintPure, meta = (DisplayName = "Luminance (LinearColor)", ScriptMethod = "GetLuminance"), Category = "Math|Color")
3146 static UE_INL_API float LinearColor_GetLuminance(FLinearColor InColor);
3147
3153 UFUNCTION(BlueprintPure, meta = (DisplayName = "Max (LinearColor)", ScriptMethod = "GetMax"), Category = "Math|Color")
3154 static UE_INL_API float LinearColor_GetMax(FLinearColor InColor);
3155
3161 UFUNCTION(BlueprintPure, meta = (DisplayName = "Min (LinearColor)", ScriptMethod = "GetMin"), Category = "Math|Color")
3162 static UE_INL_API float LinearColor_GetMin(FLinearColor InColor);
3163
3173 UFUNCTION(BlueprintPure, meta = (DisplayName = "Interpolate (LinearColor)", ScriptMethod = "InterpolateTo", Keywords = "color"), Category = "Math|Interpolation")
3174 static UE_INL_API FLinearColor CInterpTo(FLinearColor Current, FLinearColor Target, float DeltaTime, float InterpSpeed);
3175
3177 UFUNCTION(BlueprintPure, meta=(DisplayName = "Lerp (LinearColor)", ScriptMethod = "LerpTo"), Category="Math|Color")
3179
3189 UFUNCTION(BlueprintPure, meta=(DisplayName = "Lerp Using HSV (LinearColor)", ScriptMethod = "LerpUsingHSVTo"), Category="Math|Color")
3191
3193 UFUNCTION(BlueprintPure, meta = (DisplayName = "Near Equal (LinearColor)", CompactNodeTitle = "~==", ScriptMethod = "IsNearEqual", ScriptOperator = "==", Keywords = "== equal"), Category = "Math|Color")
3194 static UE_INL_API bool LinearColor_IsNearEqual(FLinearColor A, FLinearColor B, float Tolerance = 1.e-4f);
3195
3197 UFUNCTION(BlueprintPure, meta = (DisplayName = "Equal (LinearColor)", CompactNodeTitle = "==", ScriptMethod = "Equals", ScriptOperator = "==", Keywords = "== equal"), Category = "Math|Color")
3199
3201 UFUNCTION(BlueprintPure, meta = (DisplayName = "Not Equal (LinearColor)", CompactNodeTitle = "!=", ScriptMethod = "NotEqual", ScriptOperator = "!=", Keywords = "!= not equal"), Category = "Math|Color")
3203
3205 UFUNCTION(BlueprintPure, meta=(DisplayName = "LinearColor + LinearColor", CompactNodeTitle = "+", ScriptMethod = "Add", ScriptOperator = "+;+=", Keywords = "+ add plus"), Category="Math|Color")
3206 static UE_INL_API FLinearColor Add_LinearColorLinearColor(FLinearColor A, FLinearColor B);
3207
3209 UFUNCTION(BlueprintPure, meta=(DisplayName = "LinearColor - LinearColor", CompactNodeTitle = "-", ScriptMethod = "Subtract", ScriptOperator = "-;-=", Keywords = "- subtract minus"), Category="Math|Color")
3210 static UE_INL_API FLinearColor Subtract_LinearColorLinearColor(FLinearColor A, FLinearColor B);
3211
3213 UFUNCTION(BlueprintPure, meta=(DisplayName = "LinearColor * LinearColor", CompactNodeTitle = "*", ScriptMethod = "Multiply", ScriptOperator = "*;*=", Keywords = "* multiply"), Category="Math|Color")
3214 static UE_INL_API FLinearColor Multiply_LinearColorLinearColor(FLinearColor A, FLinearColor B);
3215
3217 UFUNCTION(BlueprintPure, meta=(DisplayName = "LinearColor * Float", CompactNodeTitle = "*", ScriptMethod = "MultiplyFloat", Keywords = "* multiply"), Category="Math|Color")
3218 static UE_INL_API FLinearColor Multiply_LinearColorFloat(FLinearColor A, float B);
3219
3221 UFUNCTION(BlueprintPure, meta=(DisplayName = "LinearColor / LinearColor", CompactNodeTitle = "/", ScriptMethod = "Divide", ScriptOperator = "/;/=", Keywords = "/ divide"), Category="Math|Color")
3222 static UE_INL_API FLinearColor Divide_LinearColorLinearColor(FLinearColor A, FLinearColor B);
3223
3225 UFUNCTION(BlueprintPure, meta = (DisplayName = "ToHex"), Category = "Math|Color")
3226 static UE_INL_API FString ToHex_LinearColor(FLinearColor InColor);
3227
3228 //
3229 // Plane functions.
3230 //
3231
3239 UFUNCTION(BlueprintPure, Category = "Math|Plane", meta=(Keywords="make plane"))
3240 static ENGINE_API FPlane MakePlaneFromPointAndNormal(FVector Point, FVector Normal);
3241
3242
3243 //
3244 // DateTime functions.
3245 //
3246
3248 UFUNCTION(BlueprintPure, Category="Math|DateTime", meta=(IgnoreTypePromotion, NativeMakeFunc, AdvancedDisplay = "3"))
3249 static ENGINE_API FDateTime MakeDateTime(int32 Year, int32 Month, int32 Day, int32 Hour = 0, int32 Minute = 0, int32 Second = 0, int32 Millisecond = 0);
3250
3252 UFUNCTION(BlueprintPure, Category="Math|DateTime", meta=(IgnoreTypePromotion, NativeBreakFunc, AdvancedDisplay = "4"))
3254
3256 UFUNCTION(BlueprintPure, meta=(IgnoreTypePromotion, DisplayName="DateTime + Timespan", CompactNodeTitle="+", Keywords="+ add plus"), Category="Math|DateTime")
3257 static UE_INL_API FDateTime Add_DateTimeTimespan( FDateTime A, FTimespan B );
3258
3260 UFUNCTION(BlueprintPure, meta=(IgnoreTypePromotion, DisplayName="DateTime - Timespan", CompactNodeTitle="-", Keywords="- subtract minus"), Category="Math|DateTime")
3261 static UE_INL_API FDateTime Subtract_DateTimeTimespan(FDateTime A, FTimespan B);
3262
3264 UFUNCTION(BlueprintPure, meta = (IgnoreTypePromotion, DisplayName = "DateTime + DateTime", CompactNodeTitle = "+", Keywords = "+ add plus"), Category = "Math|DateTime")
3265 static UE_INL_API FDateTime Add_DateTimeDateTime(FDateTime A, FDateTime B);
3266
3268 UFUNCTION(BlueprintPure, meta = (IgnoreTypePromotion, DisplayName = "DateTime - DateTime", CompactNodeTitle = "-", Keywords = "- subtract minus"), Category = "Math|DateTime")
3269 static UE_INL_API FTimespan Subtract_DateTimeDateTime(FDateTime A, FDateTime B);
3270
3272 UFUNCTION(BlueprintPure, meta=(IgnoreTypePromotion, DisplayName="Equal (DateTime)", CompactNodeTitle="==", Keywords="== equal"), Category="Math|DateTime")
3274
3276 UFUNCTION(BlueprintPure, meta=(IgnoreTypePromotion, DisplayName="Not Equal (DateTime)", CompactNodeTitle="!=", Keywords="!= not equal"), Category="Math|DateTime")
3278
3280 UFUNCTION(BlueprintPure, meta=(IgnoreTypePromotion, DisplayName="DateTime > DateTime", CompactNodeTitle=">", Keywords="> greater"), Category="Math|DateTime")
3281 static UE_INL_API bool Greater_DateTimeDateTime( FDateTime A, FDateTime B );
3282
3284 UFUNCTION(BlueprintPure, meta=(IgnoreTypePromotion, DisplayName="DateTime >= DateTime", CompactNodeTitle=">=", Keywords=">= greater"), Category="Math|DateTime")
3285 static UE_INL_API bool GreaterEqual_DateTimeDateTime( FDateTime A, FDateTime B );
3286
3288 UFUNCTION(BlueprintPure, meta=(IgnoreTypePromotion, DisplayName="DateTime < DateTime", CompactNodeTitle="<", Keywords="< less"), Category="Math|DateTime")
3289 static UE_INL_API bool Less_DateTimeDateTime( FDateTime A, FDateTime B );
3290
3292 UFUNCTION(BlueprintPure, meta=(IgnoreTypePromotion, DisplayName="DateTime <= DateTime", CompactNodeTitle="<=", Keywords="<= less"), Category="Math|DateTime")
3293 static UE_INL_API bool LessEqual_DateTimeDateTime( FDateTime A, FDateTime B );
3294
3296 UFUNCTION(BlueprintPure, meta=(DisplayName="Get Date"), Category="Math|DateTime")
3297 static UE_INL_API FDateTime GetDate( FDateTime A );
3298
3300 UFUNCTION(BlueprintPure, meta=(DisplayName="Get Day"), Category="Math|DateTime")
3301 static UE_INL_API int32 GetDay( FDateTime A );
3302
3304 UFUNCTION(BlueprintPure, meta=(DisplayName="Get Day Of Year"), Category="Math|DateTime")
3305 static UE_INL_API int32 GetDayOfYear( FDateTime A );
3306
3308 UFUNCTION(BlueprintPure, meta=(DisplayName="Get Hour"), Category="Math|DateTime")
3309 static UE_INL_API int32 GetHour( FDateTime A );
3310
3312 UFUNCTION(BlueprintPure, meta=(DisplayName="Get Hour 12"), Category="Math|DateTime")
3313 static UE_INL_API int32 GetHour12( FDateTime A );
3314
3316 UFUNCTION(BlueprintPure, meta=(DisplayName="Get Millisecond"), Category="Math|DateTime")
3317 static UE_INL_API int32 GetMillisecond( FDateTime A );
3318
3320 UFUNCTION(BlueprintPure, meta=(DisplayName="Get Minute"), Category="Math|DateTime")
3321 static UE_INL_API int32 GetMinute( FDateTime A );
3322
3324 UFUNCTION(BlueprintPure, meta=(DisplayName="Get Month"), Category="Math|DateTime")
3325 static UE_INL_API int32 GetMonth( FDateTime A );
3326
3328 UFUNCTION(BlueprintPure, meta=(DisplayName="Get Second"), Category="Math|DateTime")
3329 static UE_INL_API int32 GetSecond( FDateTime A );
3330
3332 UFUNCTION(BlueprintPure, meta=(DisplayName="Get Time Of Day"), Category="Math|DateTime")
3333 static UE_INL_API FTimespan GetTimeOfDay( FDateTime A );
3334
3336 UFUNCTION(BlueprintPure, meta=(DisplayName="Get Year"), Category="Math|DateTime")
3337 static UE_INL_API int32 GetYear( FDateTime A );
3338
3340 UFUNCTION(BlueprintPure, meta=(DisplayName="Is Afternoon"), Category="Math|DateTime")
3341 static UE_INL_API bool IsAfternoon( FDateTime A );
3342
3344 UFUNCTION(BlueprintPure, meta=(DisplayName="Is Morning"), Category="Math|DateTime")
3345 static UE_INL_API bool IsMorning( FDateTime A );
3346
3348 UFUNCTION(BlueprintPure, meta=(DisplayName="Days In Month"), Category="Math|DateTime")
3349 static UE_INL_API int32 DaysInMonth( int32 Year, int32 Month );
3350
3352 UFUNCTION(BlueprintPure, meta=(DisplayName="Days In Year"), Category="Math|DateTime")
3353 static UE_INL_API int32 DaysInYear( int32 Year );
3354
3356 UFUNCTION(BlueprintPure, meta=(DisplayName="Is Leap Year"), Category="Math|DateTime")
3357 static UE_INL_API bool IsLeapYear( int32 Year );
3358
3360 UFUNCTION(BlueprintPure, meta=(DisplayName="Max Value (DateTime)"), Category="Math|DateTime")
3362
3364 UFUNCTION(BlueprintPure, meta=(DisplayName="MinValue (DateTime)"), Category="Math|DateTime")
3366
3368 UFUNCTION(BlueprintPure, meta=(DisplayName="Now"), Category="Math|DateTime")
3369 static UE_INL_API FDateTime Now( );
3370
3372 UFUNCTION(BlueprintPure, meta=(DisplayName="Today"), Category="Math|DateTime")
3373 static UE_INL_API FDateTime Today( );
3374
3376 UFUNCTION(BlueprintPure, meta=(DisplayName="UTC Now"), Category="Math|DateTime")
3377 static UE_INL_API FDateTime UtcNow( );
3378
3380 UFUNCTION(BlueprintPure, Category="Math|DateTime")
3381 static UE_INL_API bool DateTimeFromIsoString(FString IsoString, FDateTime& Result);
3382
3384 UFUNCTION(BlueprintPure, Category="Math|DateTime")
3385 static UE_INL_API bool DateTimeFromString(FString DateTimeString, FDateTime& Result);
3386
3393 UFUNCTION(BlueprintPure, Category="Math|DateTime")
3394 static UE_INL_API int64 ToUnixTimestamp(const FDateTime& Time);
3395
3402 UFUNCTION(BlueprintPure, Category="Math|DateTime")
3403 static UE_INL_API double ToUnixTimestampDouble(const FDateTime& Time);
3404
3412 UFUNCTION(BlueprintPure, Category="Math|DateTime")
3413 static UE_INL_API FDateTime FromUnixTimestamp(const int64 UnixTime);
3414
3415 //
3416 // Timespan constants
3417 //
3418
3420 UFUNCTION(BlueprintPure, meta=(DisplayName="Max Value (Timespan)", ScriptConstant = "MaxValue", ScriptConstantHost = "/Script/CoreUObject.Timespan"), Category="Math|Timespan")
3422
3424 UFUNCTION(BlueprintPure, meta=(DisplayName="Min Value (Timespan)", ScriptConstant = "MinValue", ScriptConstantHost = "/Script/CoreUObject.Timespan"), Category="Math|Timespan")
3426
3428 UFUNCTION(BlueprintPure, meta=(DisplayName="Zero Value (Timespan)", ScriptConstant = "Zero", ScriptConstantHost = "/Script/CoreUObject.Timespan"), Category="Math|Timespan")
3430
3431 //
3432 // Timespan functions.
3433 //
3434
3436 UFUNCTION(BlueprintPure, Category="Math|Timespan", meta=(NativeMakeFunc))
3438
3440 UFUNCTION(BlueprintPure, Category="Math|Timespan", meta=(NativeMakeFunc))
3442
3444 UFUNCTION(BlueprintPure, Category="Math|Timespan", meta=(NativeBreakFunc))
3446
3448 UFUNCTION(BlueprintPure, Category="Math|Timespan", meta=(NativeBreakFunc))
3450
3452 UFUNCTION(BlueprintPure, meta=(DisplayName="Timespan + Timespan", CompactNodeTitle="+", Keywords="+ add plus"), Category="Math|Timespan")
3453 static UE_INL_API FTimespan Add_TimespanTimespan( FTimespan A, FTimespan B );
3454
3456 UFUNCTION(BlueprintPure, meta=(DisplayName="Timespan - Timespan", CompactNodeTitle="-", Keywords="- subtract minus"), Category="Math|Timespan")
3457 static UE_INL_API FTimespan Subtract_TimespanTimespan( FTimespan A, FTimespan B );
3458
3460 UFUNCTION(BlueprintPure, meta=(DisplayName="Timespan * float", CompactNodeTitle="*", Keywords="* multiply"), Category="Math|Timespan")
3461 static UE_INL_API FTimespan Multiply_TimespanFloat( FTimespan A, float Scalar );
3462
3464 UFUNCTION(BlueprintPure, meta=(DisplayName="Timespan / float", CompactNodeTitle="/", Keywords="/ divide"), Category="Math|Timespan")
3465 static UE_INL_API FTimespan Divide_TimespanFloat( FTimespan A, float Scalar );
3466
3468 UFUNCTION(BlueprintPure, meta=(DisplayName="Equal (Timespan)", CompactNodeTitle="==", Keywords="== equal"), Category="Math|Timespan")
3470
3472 UFUNCTION(BlueprintPure, meta=(DisplayName="Not Equal (Timespan)", CompactNodeTitle="!=", Keywords="!= not equal"), Category="Math|Timespan")
3474
3476 UFUNCTION(BlueprintPure, meta=(DisplayName="Timespan > Timespan", CompactNodeTitle=">", Keywords="> greater"), Category="Math|Timespan")
3477 static UE_INL_API bool Greater_TimespanTimespan( FTimespan A, FTimespan B );
3478
3480 UFUNCTION(BlueprintPure, meta=(DisplayName="Timespan >= Timespan", CompactNodeTitle=">=", Keywords=">= greater"), Category="Math|Timespan")
3481 static UE_INL_API bool GreaterEqual_TimespanTimespan( FTimespan A, FTimespan B );
3482
3484 UFUNCTION(BlueprintPure, meta=(DisplayName="Timespan < Timespan", CompactNodeTitle="<", Keywords="< less"), Category="Math|Timespan")
3485 static UE_INL_API bool Less_TimespanTimespan( FTimespan A, FTimespan B );
3486
3488 UFUNCTION(BlueprintPure, meta=(DisplayName="Timespan <= Timespan", CompactNodeTitle="<=", Keywords="<= less"), Category="Math|Timespan")
3489 static UE_INL_API bool LessEqual_TimespanTimespan( FTimespan A, FTimespan B );
3490
3492 UFUNCTION(BlueprintPure, meta=(DisplayName="Get Days"), Category="Math|Timespan")
3493 static UE_INL_API int32 GetDays( FTimespan A );
3494
3496 UFUNCTION(BlueprintPure, meta=(DisplayName="Get Duration"), Category="Math|Timespan")
3497 static UE_INL_API FTimespan GetDuration( FTimespan A );
3498
3500 UFUNCTION(BlueprintPure, meta=(DisplayName="Get Hours"), Category="Math|Timespan")
3501 static UE_INL_API int32 GetHours( FTimespan A );
3502
3504 UFUNCTION(BlueprintPure, meta=(DisplayName="Get Milliseconds"), Category="Math|Timespan")
3505 static UE_INL_API int32 GetMilliseconds( FTimespan A );
3506
3508 UFUNCTION(BlueprintPure, meta=(DisplayName="Get Minutes"), Category="Math|Timespan")
3509 static UE_INL_API int32 GetMinutes( FTimespan A );
3510
3512 UFUNCTION(BlueprintPure, meta=(DisplayName="Get Seconds"), Category="Math|Timespan")
3513 static UE_INL_API int32 GetSeconds( FTimespan A );
3514
3516 UFUNCTION(BlueprintPure, meta=(DisplayName="Get Total Days"), Category="Math|Timespan")
3517 static UE_INL_API double GetTotalDays( FTimespan A );
3518
3520 UFUNCTION(BlueprintPure, meta=(DisplayName="Get Total Hours"), Category="Math|Timespan")
3521 static UE_INL_API double GetTotalHours( FTimespan A );
3522
3524 UFUNCTION(BlueprintPure, meta=(DisplayName="Get Total Milliseconds"), Category="Math|Timespan")
3525 static UE_INL_API double GetTotalMilliseconds( FTimespan A );
3526
3528 UFUNCTION(BlueprintPure, meta=(DisplayName="Get Total Minutes"), Category="Math|Timespan")
3529 static UE_INL_API double GetTotalMinutes( FTimespan A );
3530
3532 UFUNCTION(BlueprintPure, meta=(DisplayName="Get Total Seconds"), Category="Math|Timespan")
3533 static UE_INL_API double GetTotalSeconds( FTimespan A );
3534
3536 UFUNCTION(BlueprintPure, meta=(DisplayName="From Days"), Category="Math|Timespan")
3537 static ENGINE_API FTimespan FromDays( double Days );
3538
3540 UFUNCTION(BlueprintPure, meta=(DisplayName="From Hours"), Category="Math|Timespan")
3541 static ENGINE_API FTimespan FromHours(double Hours );
3542
3544 UFUNCTION(BlueprintPure, meta=(DisplayName="From Milliseconds"), Category="Math|Timespan")
3545 static ENGINE_API FTimespan FromMilliseconds(double Milliseconds );
3546
3548 UFUNCTION(BlueprintPure, meta=(DisplayName="From Minutes"), Category="Math|Timespan")
3549 static ENGINE_API FTimespan FromMinutes(double Minutes );
3550
3552 UFUNCTION(BlueprintPure, meta=(DisplayName="From Seconds"), Category="Math|Timespan")
3553 static ENGINE_API FTimespan FromSeconds(double Seconds );
3554
3556 UFUNCTION(BlueprintPure, meta=(DisplayName="Timespan Ratio"), Category="Math|Timespan")
3557 static UE_INL_API float TimespanRatio( FTimespan A, FTimespan B );
3558
3560 UFUNCTION(BlueprintPure, Category="Math|Timespan")
3561 static UE_INL_API bool TimespanFromString(FString TimespanString, FTimespan& Result);
3562
3563 //
3564 // Frame Time and Frame Rate Functions
3565 //
3566
3568 UFUNCTION(BlueprintPure, Category = "Utilities|Time Management", meta = (NativeMakeFunc))
3569 static ENGINE_API FQualifiedFrameTime MakeQualifiedFrameTime(FFrameNumber Frame, FFrameRate FrameRate, float SubFrame = 0.f);
3570
3572 UFUNCTION(BlueprintPure, Category = "Utilities|Time Management", meta = (NativeBreakFunc))
3573 static ENGINE_API void BreakQualifiedFrameTime(const FQualifiedFrameTime& InFrameTime, FFrameNumber& Frame, FFrameRate& FrameRate, float& SubFrame);
3574
3576 UFUNCTION(BlueprintPure, Category = "Utilities|Time Management", meta = (NativeMakeFunc))
3577 static ENGINE_API FFrameRate MakeFrameRate(int32 Numerator, int32 Denominator = 1);
3578
3580 UFUNCTION(BlueprintPure, Category = "Utilities|Time Management", meta = (NativeBreakFunc))
3581 static ENGINE_API void BreakFrameRate(const FFrameRate& InFrameRate, int32& Numerator, int32& Denominator);
3582
3583 // -- Begin K2 utilities
3584
3586 UFUNCTION(BlueprintPure, meta = (DisplayName = "To Float (Byte)", CompactNodeTitle = "->", Keywords = "cast convert", BlueprintAutocast), Category = "Math|Conversions")
3588
3590 UFUNCTION(BlueprintPure, meta = (DisplayName = "To Float (Integer)", CompactNodeTitle = "->", Keywords = "cast convert", BlueprintAutocast), Category = "Math|Conversions")
3591 static UE_INL_API double Conv_IntToDouble(int32 InInt);
3592
3594 UFUNCTION(BlueprintPure, meta = (DisplayName = "To Integer64 (Integer)", CompactNodeTitle = "->", Keywords = "cast convert", BlueprintAutocast), Category = "Math|Conversions")
3595 static UE_INL_API int64 Conv_IntToInt64(int32 InInt);
3596
3598 UFUNCTION(BlueprintPure, meta=(DisplayName = "To Byte (Integer)", CompactNodeTitle = "->", Keywords="cast convert", BlueprintAutocast), Category="Math|Conversions")
3599 static UE_INL_API uint8 Conv_IntToByte(int32 InInt);
3600
3602 UFUNCTION(BlueprintPure, meta=(DisplayName = "To Integer (Integer64)", CompactNodeTitle = "->", Keywords="cast convert", BlueprintAutocast), Category="Math|Conversions")
3603 static UE_INL_API int32 Conv_Int64ToInt(int64 InInt);
3604
3606 UFUNCTION(BlueprintPure, meta = (BlueprintInternalUseOnly = "true", DeprecatedFunction, DeprecationMessage = "Explicit conversions between floats and doubles are not necessary. Please remove node."))
3607 static UE_INL_API float Conv_DoubleToFloat(double InDouble);
3608
3610 UFUNCTION(BlueprintPure, meta = (BlueprintInternalUseOnly = "true", DeprecatedFunction, DeprecationMessage = "Explicit conversions between floats and doubles are not necessary. Please remove node."))
3611 static UE_INL_API double Conv_FloatToDouble(float InFloat);
3612
3614 UFUNCTION(BlueprintPure, meta=(DisplayName = "To Byte (Integer64)", CompactNodeTitle = "->", Keywords="cast convert", BlueprintAutocast), Category="Math|Conversions")
3615 static UE_INL_API uint8 Conv_Int64ToByte(int64 InInt);
3616
3618 UFUNCTION(BlueprintPure, meta = (DisplayName = "To Integer64 (Float)", CompactNodeTitle = "->", Keywords = "cast convert", BlueprintAutocast), Category = "Math|Conversions")
3619 static UE_INL_API int64 Conv_DoubleToInt64(double InDouble);
3620
3622 UFUNCTION(BlueprintPure, meta = (DisplayName = "To Float (Integer64)", CompactNodeTitle = "->", Keywords = "cast convert", BlueprintAutocast), Category = "Math|Conversions")
3623 static UE_INL_API double Conv_Int64ToDouble(int64 InInt);
3624
3626 UFUNCTION(BlueprintPure, meta = (DisplayName = "To IntVector (Integer)", CompactNodeTitle = "->", Keywords = "cast convert", BlueprintAutocast), Category = "Math|Conversions")
3628
3630 UFUNCTION(BlueprintPure, meta = (DisplayName = "To IntVector2 (Integer)", CompactNodeTitle = "->", Keywords = "cast convert", BlueprintAutocast), Category = "Math|Conversions")
3632
3634 UFUNCTION(BlueprintPure, meta = (DisplayName = "To Vector (Integer)", CompactNodeTitle = "->", Keywords = "cast convert", BlueprintAutocast), Category = "Math|Conversions")
3636
3638 UFUNCTION(BlueprintPure, meta=(DisplayName = "To Boolean (Integer)", CompactNodeTitle = "->", Keywords="cast convert", BlueprintAutocast), Category="Math|Conversions")
3639 static UE_INL_API bool Conv_IntToBool(int32 InInt);
3640
3642 UFUNCTION(BlueprintPure, meta=(DisplayName = "To Integer (Boolean)", CompactNodeTitle = "->", Keywords="cast convert", BlueprintAutocast), Category="Math|Conversions")
3643 static UE_INL_API int32 Conv_BoolToInt(bool InBool);
3644
3646 UFUNCTION(BlueprintPure, meta = (DisplayName = "To Float (Boolean)", CompactNodeTitle = "->", Keywords = "cast convert", BlueprintAutocast), Category = "Math|Conversions")
3647 static UE_INL_API double Conv_BoolToDouble(bool InBool);
3648
3650 UFUNCTION(BlueprintPure, meta=(DisplayName = "To Byte (Boolean)", CompactNodeTitle = "->", Keywords="cast convert", BlueprintAutocast), Category="Math|Conversions")
3651 static UE_INL_API uint8 Conv_BoolToByte(bool InBool);
3652
3654 UFUNCTION(BlueprintPure, meta=(DisplayName = "To Integer (Byte)", CompactNodeTitle = "->", Keywords="cast convert", BlueprintAutocast), Category="Math|Conversions")
3656
3658 UFUNCTION(BlueprintPure, meta = (DisplayName = "To Integer64 (Byte)", CompactNodeTitle = "->", Keywords = "cast convert", BlueprintAutocast), Category = "Math|Conversions")
3660
3662 UFUNCTION(BlueprintPure, meta = (DisplayName = "To LinearColor (Color)", CompactNodeTitle = "->", Keywords = "cast convert", BlueprintAutocast), Category = "Math|Conversions")
3664
3666 UFUNCTION(BlueprintPure, meta = (DisplayName = "To Vector (IntVector)", CompactNodeTitle = "->", Keywords = "cast convert", BlueprintAutocast), Category = "Math|Conversions")
3667 static UE_INL_API FVector Conv_IntVectorToVector(const FIntVector& InIntVector);
3668
3670 UFUNCTION(BlueprintPure, meta = (DisplayName = "To Vector2D (IntVector2)", CompactNodeTitle = "->", Keywords = "cast convert", BlueprintAutocast), Category = "Math|Conversions")
3671 static UE_INL_API FVector2D Conv_IntVector2ToVector2D(const FIntVector2& InIntVector2);
3672
3674 UFUNCTION(BlueprintPure, meta = (DisplayName = "To Vector (Float)", CompactNodeTitle = "->", Keywords = "cast convert", BlueprintAutocast), Category = "Math|Conversions")
3675 static UE_INL_API FVector Conv_DoubleToVector(double InDouble);
3676
3678 UFUNCTION(BlueprintPure, meta=(DisplayName = "To Vector2D", CompactNodeTitle = "->", Keywords="cast convert", BlueprintAutocast), Category="Math|Conversions")
3679 static UE_INL_API FVector2D Conv_DoubleToVector2D(double InDouble);
3680
3681 //
3682 // Box functions
3683 //
3684
3686 UFUNCTION(BlueprintPure, Category="Math|Box", meta=(Keywords="construct build", NativeMakeFunc))
3687 static UE_INL_API FBox MakeBox(FVector Min, FVector Max);
3688
3696 UFUNCTION(BlueprintPure, Category="Math|Box", meta=(Keywords="construct build"))
3697 static ENGINE_API FBox MakeBoxWithOrigin(const FVector& Origin, const FVector& Extent);
3698
3707 UFUNCTION(BlueprintPure, Category = "Math|OrientedBox", meta = (Keywords = "construct build", NativeMakeFunc))
3708 static ENGINE_API FOrientedBox MakeOrientedBox(FVector Origin, FRotator Orientation, FVector Extent);
3709
3718 UFUNCTION(BlueprintPure, Category="Math|Box", meta=(DisplayName="Is Inside (Box)"))
3719 static ENGINE_API bool Box_IsInside(const FBox& InnerTest, const FBox& OuterTest);
3720
3729 UFUNCTION(BlueprintPure, Category="Math|Box", meta=(DisplayName="Is Inside Or On (Box)"))
3730 static ENGINE_API bool Box_IsInsideOrOn(const FBox& InnerTest, const FBox& OuterTest);
3731
3742 UFUNCTION(BlueprintPure, Category="Math|Box", meta=(DisplayName="Is Vector Inside (Box)"))
3743 static ENGINE_API bool Box_IsPointInside(const FBox& Box, const FVector& Point);
3744
3756 UFUNCTION(BlueprintPure, Category="Math|Box", meta=(DisplayName="Intersects (Box)"))
3757 static ENGINE_API bool Box_Intersects(const FBox& A, const FBox& B);
3758
3766 UFUNCTION(BlueprintPure, Category="Math|Box", meta=(DisplayName="Expand By (Box)"))
3767 static ENGINE_API FBox Box_ExpandBy(const FBox& Box, const FVector& Negative, const FVector& Positive);
3768
3777 UFUNCTION(BlueprintPure, Category="Math|Box", meta=(DisplayName="Overlap (Box)"))
3778 static ENGINE_API FBox Box_Overlap(const FBox& A, const FBox& B);
3779
3787 UFUNCTION(BlueprintPure, Category="Math|Box", meta=(DisplayName="GetClosestPointTo (Box)"))
3789
3790 //
3791 // Box2D functions
3792 //
3793
3795 UFUNCTION(BlueprintPure, Category = "Math|Box2D", meta = (Keywords = "construct build", NativeMakeFunc))
3796 static UE_INL_API FBox2D MakeBox2D(FVector2D Min, FVector2D Max);
3797
3798
3799 //
3800 // BoxSphereBounds functions
3801 //
3802
3804 UFUNCTION(BlueprintPure, meta = (Keywords = "construct build", NativeMakeFunc), Category = "Math|BoxSphereBounds")
3805 static UE_INL_API FBoxSphereBounds MakeBoxSphereBounds(FVector Origin, FVector BoxExtent, float SphereRadius);
3806
3808 UFUNCTION(BlueprintPure, meta = (NativeBreakFunc), Category = "Math|BoxSphereBounds")
3809 static UE_INL_API void BreakBoxSphereBounds(const FBoxSphereBounds& InBoxSphereBounds, FVector& Origin, FVector& BoxExtent, float& SphereRadius);
3810
3811
3812 //
3813 // Misc functions
3814 //
3815
3817 UFUNCTION(BlueprintPure, meta = (Keywords = "construct build", NativeMakeFunc), Category = "Math|Random")
3818 static ENGINE_API FRandomStream MakeRandomStream(int32 InitialSeed);
3819
3827 UFUNCTION(BlueprintPure, Category = "Math|Random", meta = (NativeMakeFunc))
3828 static ENGINE_API FRandomStream MakeRandomStreamFromLocation(const FVector& Location, float DistanceInterval = 200.f, bool bIncludeZ = false);
3829
3831 UFUNCTION(BlueprintPure, Category = "Math|Random", meta = (NativeBreakFunc))
3832 static ENGINE_API void BreakRandomStream(const FRandomStream& InRandomStream, int32& InitialSeed);
3833
3835 UFUNCTION(BlueprintPure, Category="Utilities|String")
3836 static UE_INL_API FString SelectString(const FString& A, const FString& B, bool bPickA);
3837
3839 UFUNCTION(BlueprintPure, Category="Utilities|String")
3840 static UE_INL_API FText SelectText(const FText A, const FText B, bool bPickA);
3841
3843 UFUNCTION(BlueprintPure, Category="Utilities|String")
3844 static UE_INL_API FName SelectName(const FName A, const FName B, bool bPickA);
3845
3847 UFUNCTION(BlueprintPure, Category="Math|Integer")
3848 static UE_INL_API int32 SelectInt(int32 A, int32 B, bool bPickA);
3849
3851 UFUNCTION(BlueprintPure, Category="Math|Float")
3852 static UE_INL_API double SelectFloat(double A, double B, bool bPickA);
3853
3855 UFUNCTION(BlueprintPure, Category="Math|Vector")
3856 static UE_INL_API FVector SelectVector(FVector A, FVector B, bool bPickA);
3857
3859 UFUNCTION(BlueprintPure, Category="Math|Rotator", meta=(Keywords="rotation rotate"))
3860 static UE_INL_API FRotator SelectRotator(FRotator A, FRotator B, bool bPickA);
3861
3863 UFUNCTION(BlueprintPure, Category="Math|Color")
3864 static UE_INL_API FLinearColor SelectColor(FLinearColor A, FLinearColor B, bool bPickA);
3865
3867 UFUNCTION(BlueprintPure, Category="Math|Transform")
3868 static UE_INL_API FTransform SelectTransform(const FTransform& A, const FTransform& B, bool bPickA);
3869
3871 UFUNCTION(BlueprintPure, Category="Utilities")
3872 static UE_INL_API UObject* SelectObject(UObject* A, UObject* B, bool bSelectA);
3873
3875 UFUNCTION(BlueprintPure, Category = "Utilities")
3876 static UE_INL_API UClass* SelectClass(UClass* A, UClass* B, bool bSelectA);
3877
3878
3879 //
3880 // Object operators and functions.
3881 //
3882
3884 UFUNCTION(BlueprintPure, meta=(DisplayName = "Equal (Object)", CompactNodeTitle = "==", Keywords = "== equal"), Category="Utilities")
3885 static UE_INL_API bool EqualEqual_ObjectObject(class UObject* A, class UObject* B);
3886
3888 UFUNCTION(BlueprintPure, meta=(DisplayName = "Not Equal (Object)", CompactNodeTitle = "!=", Keywords = "!= not equal"), Category="Utilities")
3889 static UE_INL_API bool NotEqual_ObjectObject(class UObject* A, class UObject* B);
3890
3891 //
3892 // Class operators and functions.
3893 //
3894
3896 UFUNCTION(BlueprintPure, meta=(DisplayName = "Equal (Class)", CompactNodeTitle = "==", Keywords = "== equal"), Category="Utilities")
3897 static UE_INL_API bool EqualEqual_ClassClass(class UClass* A, class UClass* B);
3898
3900 UFUNCTION(BlueprintPure, meta=(DisplayName = "Not Equal (Class)", CompactNodeTitle = "!=", Keywords = "!= not equal"), Category="Utilities")
3901 static UE_INL_API bool NotEqual_ClassClass(class UClass* A, class UClass* B);
3902
3909 UFUNCTION(BlueprintPure, Category="Utilities")
3910 static ENGINE_API bool ClassIsChildOf(TSubclassOf<class UObject> TestClass, TSubclassOf<class UObject> ParentClass);
3911
3912
3913 //
3914 // Name operators.
3915 //
3916
3918 UFUNCTION(BlueprintPure, meta=(DisplayName = "Equal (Name)", CompactNodeTitle = "==", Keywords = "== equal"), Category="Utilities|Name")
3920
3922 UFUNCTION(BlueprintPure, meta=(DisplayName = "Not Equal (Name)", CompactNodeTitle = "!=", Keywords = "!= not equal"), Category="Utilities|Name")
3923 static UE_INL_API bool NotEqual_NameName(FName A, FName B);
3924
3925
3926 //
3927 // Transform functions
3928 //
3929
3931 UFUNCTION(BlueprintPure, meta = (Keywords = "construct build", NativeMakeFunc), Category = "Math|Transform")
3932 static UE_INL_API FTransform MakeTransform(FVector Location, FRotator Rotation, FVector Scale = FVector(1,1,1));
3933
3935 UFUNCTION(BlueprintPure, Category = "Math|Transform", meta = (NativeBreakFunc))
3936 static UE_INL_API void BreakTransform(const FTransform& InTransform, FVector& Location, FRotator& Rotation, FVector& Scale);
3937
3939 UFUNCTION(BlueprintPure, meta = (DisplayName = "Equal (Transform)", CompactNodeTitle = "==", ScriptMethod = "Equals", ScriptOperator = "==", Keywords = "== equal"), Category="Math|Transform")
3941
3948 UFUNCTION(BlueprintPure, meta = (DisplayName = "Nearly Equal (Transform)", ScriptMethod = "IsNearEqual", Keywords = "== equal"), Category = "Math|Transform")
3949 static ENGINE_API bool NearlyEqual_TransformTransform(const FTransform& A, const FTransform& B, float LocationTolerance = 1.e-4f, float RotationTolerance = 1.e-4f, float Scale3DTolerance = 1.e-4f);
3950
3962 UFUNCTION(BlueprintPure, meta=(ScriptMethod = "Multiply", ScriptOperator = "*;*=", CompactNodeTitle = "*", Keywords="multiply *"), Category="Math|Transform")
3963 static UE_INL_API FTransform ComposeTransforms(const FTransform& A, const FTransform& B);
3964
3969 UFUNCTION(BlueprintPure, meta=(ScriptMethod="TransformLocation", Keywords="location"), Category="Math|Transform")
3970 static UE_INL_API FVector TransformLocation(const FTransform& T, FVector Location);
3971
3976 UFUNCTION(BlueprintPure, meta=(ScriptMethod="TransformDirection"), Category="Math|Transform")
3977 static UE_INL_API FVector TransformDirection(const FTransform& T, FVector Direction);
3978
3983 UFUNCTION(BlueprintPure, meta=(ScriptMethod="TransformRotation"), Category="Math|Transform")
3984 static ENGINE_API FRotator TransformRotation(const FTransform& T, FRotator Rotation);
3985
3990 UFUNCTION(BlueprintPure, meta=(ScriptMethod="InverseTransformLocation", Keywords="location"), Category="Math|Transform")
3991 static UE_INL_API FVector InverseTransformLocation(const FTransform& T, FVector Location);
3992
3997 UFUNCTION(BlueprintPure, meta=(ScriptMethod="InverseTransformDirection"), Category="Math|Transform")
3998 static UE_INL_API FVector InverseTransformDirection(const FTransform& T, FVector Direction);
3999
4004 UFUNCTION(BlueprintPure, meta=(ScriptMethod="InverseTransformRotation"), Category="Math|Transform")
4005 static ENGINE_API FRotator InverseTransformRotation(const FTransform& T, FRotator Rotation);
4006
4017 UFUNCTION(BlueprintPure, meta=(ScriptMethod = "MakeRelative", Keywords="convert torelative"), Category="Math|Transform")
4018 static UE_INL_API FTransform MakeRelativeTransform(const FTransform& A, const FTransform& RelativeTo);
4019
4028 UFUNCTION(BlueprintPure, meta = (ScriptMethod = "Inverse", Keywords = "inverse"), Category = "Math|Transform")
4029 static UE_INL_API FTransform InvertTransform(const FTransform& T);
4030
4032 UFUNCTION(BlueprintPure, meta=(DisplayName = "Lerp (Transform)", AdvancedDisplay = "3", ScriptMethod = "Lerp"), Category="Math|Transform")
4034
4036 UFUNCTION(BlueprintPure, meta = (DisplayName = "Ease (Transform)", BlueprintInternalUseOnly = "true", ScriptMethod = "Ease"), Category = "Math|Interpolation")
4037 static ENGINE_API FTransform TEase(const FTransform& A, const FTransform& B, float Alpha, TEnumAsByte<EEasingFunc::Type> EasingFunc, float BlendExp = 2, int32 Steps = 2);
4038
4048 UFUNCTION(BlueprintPure, meta = (ScriptMethod = "InterpTo"), Category="Math|Interpolation")
4049 static ENGINE_API FTransform TInterpTo(const FTransform& Current, const FTransform& Target, float DeltaTime, float InterpSpeed);
4050
4052 UFUNCTION(BlueprintPure, Category="Math|Transform", meta = (DisplayName = "Determinant", ScriptMethod = "Determinant"))
4053 static ENGINE_API float Transform_Determinant(const FTransform& Transform);
4054
4056 UFUNCTION(BlueprintPure, Category="Math|Transform", meta = (DisplayName = "To Matrix (Transform)", ScriptMethod = "ToMatrix", CompactNodeTitle = "->", Keywords = "cast convert", BlueprintAutocast))
4058
4059
4060 //
4061 // Interpolation functions
4062 //
4063
4073 UFUNCTION(BlueprintPure, Category="Math|Interpolation")
4074 static UE_INL_API double FInterpTo(double Current, double Target, double DeltaTime, double InterpSpeed);
4075
4085 UFUNCTION(BlueprintPure, Category="Math|Interpolation")
4086 static UE_INL_API double FInterpTo_Constant(double Current, double Target, double DeltaTime, double InterpSpeed);
4087
4097 UFUNCTION(BlueprintPure, Category="Math|Interpolation", meta=(Keywords="rotation rotate"))
4098 static UE_INL_API FRotator RInterpTo(FRotator Current, FRotator Target, float DeltaTime, float InterpSpeed);
4099
4109 UFUNCTION(BlueprintPure, Category="Math|Interpolation", meta=(Keywords="rotation rotate"))
4110 static UE_INL_API FRotator RInterpTo_Constant(FRotator Current, FRotator Target, float DeltaTime, float InterpSpeed);
4111
4128 UFUNCTION(BlueprintCallable, Category = "Math|Interpolation", meta=(AdvancedDisplay = "8"))
4129 static ENGINE_API float FloatSpringInterp(float Current, float Target, UPARAM(ref) FFloatSpringState& SpringState,
4130 float Stiffness, float CriticalDampingFactor, float DeltaTime,
4131 float Mass = 1.f, float TargetVelocityAmount = 1.f,
4132 bool bClamp = false, float MinValue = -1.f, float MaxValue = 1.f,
4133 bool bInitializeFromTarget = false);
4134
4136 UFUNCTION(BlueprintCallable, Category = "Math|Interpolation")
4137 static ENGINE_API void ResetFloatSpringState(UPARAM(ref) FFloatSpringState& SpringState);
4138
4140 UFUNCTION(BlueprintCallable, Category = "Math|Interpolation")
4141 static ENGINE_API void ResetVectorSpringState(UPARAM(ref) FVectorSpringState& SpringState);
4142
4144 UFUNCTION(BlueprintCallable, Category = "Math|Interpolation")
4145 static ENGINE_API void ResetQuaternionSpringState(UPARAM(ref) FQuaternionSpringState& SpringState);
4146
4148 UFUNCTION(BlueprintCallable, Category = "Math|Interpolation")
4149 static ENGINE_API void SetFloatSpringStateVelocity(UPARAM(ref) FFloatSpringState& SpringState, float Velocity);
4150
4152 UFUNCTION(BlueprintCallable, Category = "Math|Interpolation")
4153 static ENGINE_API void SetVectorSpringStateVelocity(UPARAM(ref) FVectorSpringState& SpringState, FVector Velocity);
4154
4156 UFUNCTION(BlueprintCallable, Category = "Math|Interpolation")
4157 static ENGINE_API void SetQuaternionSpringStateAngularVelocity(UPARAM(ref) FQuaternionSpringState& SpringState, FVector AngularVelocity);
4158
4159 //
4160 // Random stream functions
4161 //
4162
4164 UFUNCTION(BlueprintPure, Category="Math|Random", meta=(ScriptMethod="RandomInt", ScriptMethodMutable))
4165 static ENGINE_API int32 RandomIntegerFromStream(const FRandomStream& Stream, int32 Max);
4166
4168 UFUNCTION(BlueprintPure, Category="Math|Random", meta=(ScriptMethod="RandomIntInRange", ScriptMethodMutable))
4169 static ENGINE_API int32 RandomIntegerInRangeFromStream(const FRandomStream& Stream, int32 Min, int32 Max);
4170
4172 UFUNCTION(BlueprintPure, Category="Math|Random", meta=(ScriptMethod="RandomBool", ScriptMethodMutable))
4173 static ENGINE_API bool RandomBoolFromStream(const FRandomStream& Stream);
4174
4176 UFUNCTION(BlueprintPure, Category="Math|Random", meta=(ScriptMethod="RandomFloat", ScriptMethodMutable))
4177 static ENGINE_API float RandomFloatFromStream(const FRandomStream& Stream);
4178
4180 UFUNCTION(BlueprintPure, Category="Math|Random", meta=(ScriptMethod="RandomFloatInRange", ScriptMethodMutable))
4181 static ENGINE_API float RandomFloatInRangeFromStream(const FRandomStream& Stream, float Min, float Max);
4182
4184 UFUNCTION(BlueprintPure, Category="Math|Random", meta=(ScriptMethod="RandomUnitVector", ScriptMethodMutable))
4185 static ENGINE_API FVector RandomUnitVectorFromStream(const FRandomStream& Stream);
4186
4188 UFUNCTION(BlueprintPure, Category="Math|Random", meta=(ScriptMethod="RandomPointInBoundedBox", ScriptMethodMutable))
4189 static ENGINE_API FVector RandomPointInBoundingBoxFromStream(const FRandomStream& Stream, const FVector Center, const FVector HalfSize);
4190
4192 UFUNCTION(BlueprintPure, Category="Math|Random", meta=(DisplayName="Random Point In Bounding Box From Stream (Box)"), meta=(ScriptMethod="RandomPointInBox", ScriptMethodMutable))
4194
4196 UFUNCTION(BlueprintPure, Category="Math|Random", meta=(ScriptMethod="RandomRotator", ScriptMethodMutable))
4197 static ENGINE_API FRotator RandomRotatorFromStream(const FRandomStream& Stream, bool bRoll);
4198
4200 UFUNCTION(BlueprintCallable, Category="Math|Random", meta=(ScriptMethod="Reset", ScriptMethodMutable))
4201 static ENGINE_API void ResetRandomStream(const FRandomStream& Stream);
4202
4204 UFUNCTION(BlueprintCallable, Category="Math|Random", meta=(ScriptMethod="GenerateNewSeed"))
4205 static ENGINE_API void SeedRandomStream(UPARAM(ref) FRandomStream& Stream);
4206
4208 UFUNCTION(BlueprintCallable, Category="Math|Random", meta=(ScriptMethod="SetSeed"))
4209 static ENGINE_API void SetRandomStreamSeed(UPARAM(ref) FRandomStream& Stream, int32 NewSeed);
4210
4217 UFUNCTION(BlueprintPure, Category="Math|Random", meta = (Keywords = "RandomVector", ScriptMethod = "RandomUnitVectorInConeInRadians", ScriptMethodMutable))
4218 static ENGINE_API FVector RandomUnitVectorInConeInRadiansFromStream(const FRandomStream& Stream, const FVector& ConeDir, float ConeHalfAngleInRadians);
4219
4226 UFUNCTION(BlueprintPure, Category="Math|Random", meta = (Keywords = "RandomVector", ScriptMethod = "RandomUnitVectorInConeInDegrees", ScriptMethodMutable))
4227 static FVector RandomUnitVectorInConeInDegreesFromStream(const FRandomStream& Stream, const FVector& ConeDir, float ConeHalfAngleInDegrees)
4228 {
4229 return RandomUnitVectorInConeInRadiansFromStream(Stream, ConeDir, FMath::DegreesToRadians(ConeHalfAngleInDegrees));
4230 }
4231
4240 UFUNCTION(BlueprintPure, Category = "Math|Random", meta = (Keywords = "RandomVector", ScriptMethod = "RandomUnitVectorInEllipticalConeInRadians", ScriptMethodMutable))
4241 static ENGINE_API FVector RandomUnitVectorInEllipticalConeInRadiansFromStream(const FRandomStream& Stream, const FVector& ConeDir, float MaxYawInRadians, float MaxPitchInRadians);
4242
4251 UFUNCTION(BlueprintPure, Category = "Math|Random", meta = (Keywords = "RandomVector", ScriptMethod = "RandomUnitVectorInEllipticalConeInDegrees", ScriptMethodMutable))
4252 static FVector RandomUnitVectorInEllipticalConeInDegreesFromStream(const FRandomStream& Stream, const FVector& ConeDir, float MaxYawInDegrees, float MaxPitchInDegrees)
4253 {
4254 return RandomUnitVectorInEllipticalConeInRadiansFromStream(Stream, ConeDir, FMath::DegreesToRadians(MaxYawInDegrees), FMath::DegreesToRadians(MaxPitchInDegrees));
4255 }
4256
4264 UFUNCTION(BlueprintPure, Category="Math|Random")
4265 static ENGINE_API float PerlinNoise1D(const float Value);
4266
4267 //
4268 // Geometry
4269 //
4270
4284 UFUNCTION(BlueprintCallable, Category="Math|Geometry", meta=(WorldContext="WorldContextObject", CallableWithoutWorldContext))
4285 static ENGINE_API void MinAreaRectangle(UObject* WorldContextObject, const TArray<FVector>& InPoints, const FVector& SampleSurfaceNormal, FVector& OutRectCenter,
4286 FRotator& OutRectRotation, float& OutRectLengthX, float& OutRectLengthY, bool bDebugDraw = false);
4287
4296 UFUNCTION(BlueprintPure, Category = "Math|Geometry")
4297 static UE_INL_API bool PointsAreCoplanar(const TArray<FVector>& Points, float Tolerance = 0.1f);
4298
4307 UFUNCTION(BlueprintPure, Category = "Math|Geometry")
4308 static ENGINE_API bool IsPointInBox(FVector Point, FVector BoxOrigin, FVector BoxExtent);
4309
4317 UFUNCTION(BlueprintPure, Category = "Math|Geometry", meta=(DisplayName = "Is Point In Box (Box)"))
4319
4325 UFUNCTION(BlueprintPure, Category = "Math|Geometry", meta=(DisplayName = "Get Volume (Box)"))
4326 static ENGINE_API double GetBoxVolume(const FBox& InBox);
4327
4333 UFUNCTION(BlueprintPure, Category = "Math|Geometry", meta=(DisplayName = "Get Size (Box)"))
4334 static ENGINE_API FVector GetBoxSize(const FBox& InBox);
4335
4341 UFUNCTION(BlueprintPure, Category = "Math|Geometry", meta=(DisplayName = "Get Center (Box)"))
4342 static ENGINE_API FVector GetBoxCenter(const FBox& InBox);
4343
4352 UFUNCTION(BlueprintPure, Category = "Math|Geometry")
4353 static ENGINE_API bool IsPointInBoxWithTransform(FVector Point, const FTransform& BoxWorldTransform, FVector BoxExtent);
4354
4363 UFUNCTION(BlueprintPure, Category = "Math|Geometry", meta=(DisplayName = "Is Point In Box With Transform (Box)"))
4364 static ENGINE_API bool IsPointInBoxWithTransform_Box(FVector Point, const FTransform& BoxWorldTransform, FBox BoxExtent);
4365
4375 UFUNCTION(BlueprintPure, Category = "Math|Geometry")
4376 static ENGINE_API void GetSlopeDegreeAngles(const FVector& MyRightYAxis, const FVector& FloorNormal, const FVector& UpVector, float& OutSlopePitchDegreeAngle, float& OutSlopeRollDegreeAngle);
4377
4378 //
4379 // Intersection
4380 //
4381
4388 UFUNCTION(BlueprintPure, Category = "Math|Intersection")
4389 static ENGINE_API bool LinePlaneIntersection(const FVector& LineStart, const FVector& LineEnd, const FPlane& APlane, float& T, FVector& Intersection);
4390
4397 UFUNCTION(BlueprintPure, Category = "Math|Intersection", meta = (DisplayName = "Line Plane Intersection (Origin & Normal)"))
4398 static ENGINE_API bool LinePlaneIntersection_OriginNormal(const FVector& LineStart, const FVector& LineEnd, FVector PlaneOrigin, FVector PlaneNormal, float& T, FVector& Intersection);
4399
4409 UFUNCTION(BlueprintPure, Category="Math|Smoothing", meta=(DisplayName="Weighted Moving Average Float"))
4410 static ENGINE_API float WeightedMovingAverage_Float(float CurrentSample, float PreviousSample, float Weight);
4411
4421 UFUNCTION(BlueprintPure, Category="Math|Smoothing", meta=(DisplayName="Weighted Moving Average Vector"))
4422 static ENGINE_API FVector WeightedMovingAverage_FVector(FVector CurrentSample, FVector PreviousSample, float Weight);
4423
4433 UFUNCTION(BlueprintPure, Category="Math|Smoothing", meta=(DisplayName="Weighted Moving Average Rotator"))
4434 static ENGINE_API FRotator WeightedMovingAverage_FRotator(FRotator CurrentSample, FRotator PreviousSample, float Weight);
4435
4449 UFUNCTION(BlueprintPure, Category="Math|Smoothing", meta=(DisplayName="Dynamic Weighted Moving Average Float"))
4450 static ENGINE_API float DynamicWeightedMovingAverage_Float(float CurrentSample, float PreviousSample, float MaxDistance, float MinWeight, float MaxWeight);
4451
4465 UFUNCTION(BlueprintPure, Category="Math|Smoothing", meta=(DisplayName="Dynamic Weighted Moving Average Vector"))
4466 static ENGINE_API FVector DynamicWeightedMovingAverage_FVector(FVector CurrentSample, FVector PreviousSample, float MaxDistance, float MinWeight, float MaxWeight);
4467
4481 UFUNCTION(BlueprintPure, Category="Math|Smoothing", meta=(DisplayName="Dynamic Weighted Moving Average Rotator"))
4482 static ENGINE_API FRotator DynamicWeightedMovingAverage_FRotator(FRotator CurrentSample, FRotator PreviousSample, float MaxDistance, float MinWeight, float MaxWeight);
4483
4484 //
4485 // Multidimensional index conversions
4486 //
4487
4497 UFUNCTION(BlueprintPure, Category="Math|Conversions|Indices", meta=(DisplayName="Convert a 1D Index to a 2D Index"))
4498 static ENGINE_API FIntPoint Convert1DTo2D(int32 Index1D, int32 XSize);
4499
4510 UFUNCTION(BlueprintPure, Category="Math|Conversions|Indices", meta=(DisplayName="Convert a 1D Index to a 3D Index"))
4511 static ENGINE_API FIntVector Convert1DTo3D(int32 Index1D, int32 XSize, int32 YSize);
4512
4522 UFUNCTION(BlueprintPure, Category="Math|Conversions|Indices", meta=(DisplayName="Convert a 2D Index to a 1D Index"))
4523 static ENGINE_API int32 Convert2DTo1D(const FIntPoint& Index2D, int32 XSize);
4524
4535 UFUNCTION(BlueprintPure, Category="Math|Conversions|Indices", meta=(DisplayName="Convert a 3D Index to a 1D Index"))
4536 static ENGINE_API int32 Convert3DTo1D(const FIntVector& Index3D, int32 XSize, int32 YSize);
4537
4538 // NetQuantized vector make/breaks
4539 UFUNCTION(BlueprintPure, Category = "Math|Vector", meta = (NativeMakeFunc))
4540 static FVector_NetQuantize MakeVector_NetQuantize(double X, double Y, double Z) { return FVector_NetQuantize(X, Y, Z); }
4541 UFUNCTION(BlueprintPure, Category = "Math|Vector", meta = (NativeMakeFunc))
4542 static FVector_NetQuantize10 MakeVector_NetQuantize10(double X, double Y, double Z) { return FVector_NetQuantize10(X, Y, Z); }
4543 UFUNCTION(BlueprintPure, Category = "Math|Vector", meta = (NativeMakeFunc))
4544 static FVector_NetQuantize100 MakeVector_NetQuantize100(double X, double Y, double Z) { return FVector_NetQuantize100(X, Y, Z); }
4545 UFUNCTION(BlueprintPure, Category = "Math|Vector", meta = (NativeMakeFunc))
4546 static FVector_NetQuantizeNormal MakeVector_NetQuantizeNormal(double X, double Y, double Z) { return FVector_NetQuantizeNormal(X, Y, Z); }
4547 UFUNCTION(BlueprintPure, Category = "Math|Vector", meta = (NativeBreakFunc))
4548 static void BreakVector_NetQuantize(FVector_NetQuantize InVec, double& X, double& Y, double& Z) { BreakVector((FVector)InVec, X, Y, Z); }
4549 UFUNCTION(BlueprintPure, Category = "Math|Vector", meta = (NativeBreakFunc))
4550 static void BreakVector_NetQuantize10(FVector_NetQuantize10 InVec, double& X, double& Y, double& Z) { BreakVector((FVector)InVec, X, Y, Z); }
4551 UFUNCTION(BlueprintPure, Category = "Math|Vector", meta = (NativeBreakFunc))
4552 static void BreakVector_NetQuantize100(FVector_NetQuantize100 InVec, double& X, double& Y, double& Z) { BreakVector((FVector)InVec, X, Y, Z); }
4553 UFUNCTION(BlueprintPure, Category = "Math|Vector", meta = (NativeBreakFunc))
4554 static void BreakVector_NetQuantizeNormal(FVector_NetQuantizeNormal InVec, double& X, double& Y, double& Z) { BreakVector((FVector)InVec, X, Y, Z); }
4555
4556private:
4557
4558 static ENGINE_API void ReportError_Divide_ByteByte();
4559 static ENGINE_API void ReportError_Percent_ByteByte();
4560 static ENGINE_API void ReportError_Divide_IntInt();
4561 static ENGINE_API void ReportError_Divide_FloatFloat();
4562 static ENGINE_API void ReportError_Divide_DoubleDouble();
4563 static ENGINE_API void ReportError_Divide_Int64Int64();
4564 static ENGINE_API void ReportError_Percent_IntInt();
4565 static ENGINE_API void ReportError_Percent_Int64Int64();
4566 static ENGINE_API void ReportError_Sqrt();
4567 static ENGINE_API void ReportError_Divide_VectorFloat();
4568 static ENGINE_API void ReportError_Divide_VectorInt();
4569 static ENGINE_API void ReportError_Divide_VectorVector();
4570 static ENGINE_API void ReportError_ProjectVectorOnToVector();
4571 static ENGINE_API void ReportError_Divide_IntPointOnInt();
4572 static ENGINE_API void ReportError_Divide_IntPointOnIntPoint();
4573 static ENGINE_API void ReportError_Divide_Vector2DFloat();
4574 static ENGINE_API void ReportError_Divide_Vector2DVector2D();
4575 static ENGINE_API void ReportError_DaysInMonth();
4576};
4577
4578#undef UE_INL_API
4579
4580// Conditionally inlined
4581#if KISMET_MATH_INLINE_ENABLED
4582#include "KismetMathLibrary.inl" // IWYU pragma: export
4583#endif
@ Normal
Definition AndroidInputInterface.h:116
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::int64 int64
A 64-bit signed integer.
Definition Platform.h:1127
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define X(Name, Desc)
Definition FormatStringSan.h:47
#define FVector
Definition IOSSystemIncludes.h:8
#define UE_INL_API
Definition KismetMathLibrary.h:181
#define UPARAM(...)
Definition ObjectMacros.h:748
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UFUNCTION(...)
Definition ObjectMacros.h:745
#define DECLARE_FUNCTION(func)
Definition ObjectMacros.h:783
#define GENERATED_UCLASS_BODY(...)
Definition ObjectMacros.h:768
#define UCLASS(...)
Definition ObjectMacros.h:776
#define UENUM(...)
Definition ObjectMacros.h:749
#define USTRUCT(...)
Definition ObjectMacros.h:746
#define Square(a, x, y)
Definition Predicates.inl:251
#define P_FINISH
Definition ScriptMacros.h:141
#define P_GET_PROPERTY(PropertyType, ParamName)
Definition ScriptMacros.h:51
#define RESULT_PARAM
Definition Script.h:91
USkinnedMeshComponent float
Definition SkinnedMeshComponent.h:60
float CrossProduct2D(FVector2D Direction0, FVector2D Direction1)
Definition SubUVAnimation.cpp:238
@ Milliseconds
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition UnrealType.h:2503
Definition NameTypes.h:617
Definition Text.h:385
Definition Array.h:670
Definition EnumAsByte.h:22
Definition SubclassOf.h:30
Definition BlueprintFunctionLibrary.h:16
Definition Class.h:3793
Definition KismetMathLibrary.h:190
Definition Object.h:95
Definition KismetMathLibrary.h:25
Type
Definition KismetMathLibrary.h:27
@ SinusoidalOut
Definition KismetMathLibrary.h:38
@ SinusoidalInOut
Definition KismetMathLibrary.h:41
@ SinusoidalIn
Definition KismetMathLibrary.h:35
@ EaseIn
Definition KismetMathLibrary.h:44
@ EaseInOut
Definition KismetMathLibrary.h:50
@ ExpoInOut
Definition KismetMathLibrary.h:59
@ ExpoOut
Definition KismetMathLibrary.h:56
@ ExpoIn
Definition KismetMathLibrary.h:53
@ EaseOut
Definition KismetMathLibrary.h:47
Definition KismetMathLibrary.h:76
Type
Definition KismetMathLibrary.h:78
@ DualQuatInterp
Definition KismetMathLibrary.h:86
@ EulerInterp
Definition KismetMathLibrary.h:83
@ QuatInterp
Definition KismetMathLibrary.h:80
@ Warning
Definition LogVerbosity.h:34
Definition KismetMathLibrary.h:93
Type
Definition KismetMathLibrary.h:95
@ Third
Definition KismetMathLibrary.h:103
@ Fourth
Definition KismetMathLibrary.h:106
@ false
Definition radaudio_common.h:23
Definition Color.h:486
Definition DateTime.h:76
Definition KismetMathLibrary.h:112
void Reset()
Definition KismetMathLibrary.h:126
Definition FrameNumber.h:18
Definition FrameRate.h:21
static COREUOBJECT_API void KismetExecutionMessage(const TCHAR *Message, ELogVerbosity::Type Verbosity, FName WarningId=FName())
Definition ScriptCore.cpp:644
Definition Color.h:48
static constexpr UE_FORCEINLINE_HINT auto DegreesToRadians(T const &DegVal) -> decltype(DegVal *(UE_PI/180.f))
Definition UnrealMathUtility.h:871
Definition OrientedBox.h:13
Definition QualifiedFrameTime.h:13
Definition KismetMathLibrary.h:158
void Reset()
Definition KismetMathLibrary.h:172
Definition RandomStream.h:20
Definition CurveFloat.h:13
Definition Timespan.h:76
Definition KismetMathLibrary.h:135
void Reset()
Definition KismetMathLibrary.h:149
Definition NetSerialization.h:500
Definition NetSerialization.h:455
Definition NetSerialization.h:541
Definition NetSerialization.h:410
Definition BoxSphereBounds.h:25
Definition IntPoint.h:25
static CORE_API const TQuat< double > Identity
Definition Quat.h:63
static CORE_API const TVector< double > ZeroVector
Definition Vector.h:79