UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
KismetMathLibrary.inl
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5// When KISMET_MATH_INLINE_ENABLED is true this file is included in the header
6// so we need to mark these functions as inline.
7#if KISMET_MATH_INLINE_ENABLED
8 #define KISMET_MATH_INLINE inline
9#else
10 #define KISMET_MATH_INLINE // nothing
11#endif
12
14bool UKismetMathLibrary::RandomBool()
15{
16 return FMath::RandBool();
17}
18
20bool UKismetMathLibrary::Not_PreBool(bool A)
21{
22 return !A;
23}
24
26bool UKismetMathLibrary::EqualEqual_BoolBool(bool A, bool B)
27{
28 return ((!A) == (!B));
29}
30
32bool UKismetMathLibrary::NotEqual_BoolBool(bool A, bool B)
33{
34 return ((!A) != (!B));
35}
36
38bool UKismetMathLibrary::BooleanAND(bool A, bool B)
39{
40 return A && B;
41}
42
44bool UKismetMathLibrary::BooleanNAND(bool A, bool B)
45{
46 return !(A && B);
47}
48
50bool UKismetMathLibrary::BooleanOR(bool A, bool B)
51{
52 return A || B;
53}
54
56bool UKismetMathLibrary::BooleanXOR(bool A, bool B)
57{
58 return A ^ B;
59}
60
62bool UKismetMathLibrary::BooleanNOR(bool A, bool B)
63{
64 return !(A || B);
65}
66
68uint8 UKismetMathLibrary::Multiply_ByteByte(uint8 A, uint8 B)
69{
70 return A * B;
71}
72
74uint8 UKismetMathLibrary::Add_ByteByte(uint8 A, uint8 B)
75{
76 return A + B;
77}
78
80uint8 UKismetMathLibrary::Subtract_ByteByte(uint8 A, uint8 B)
81{
82 return A - B;
83}
84
86uint8 UKismetMathLibrary::Divide_ByteByte(uint8 A, uint8 B)
87{
88 if (B == 0)
89 {
90 ReportError_Divide_ByteByte();
91 return 0;
92 }
93
94 return (A / B);
95}
96
98uint8 UKismetMathLibrary::Percent_ByteByte(uint8 A, uint8 B)
99{
100 if (B == 0)
101 {
102 ReportError_Percent_ByteByte();
103 return 0;
104 }
105
106 return (A % B);
107}
108
110uint8 UKismetMathLibrary::BMin(uint8 A, uint8 B)
111{
112 return FMath::Min<uint8>(A, B);
113}
114
116uint8 UKismetMathLibrary::BMax(uint8 A, uint8 B)
117{
118 return FMath::Max<uint8>(A, B);
119}
120
122bool UKismetMathLibrary::Less_ByteByte(uint8 A, uint8 B)
123{
124 return A < B;
125}
126
128bool UKismetMathLibrary::Greater_ByteByte(uint8 A, uint8 B)
129{
130 return A > B;
131}
132
134bool UKismetMathLibrary::LessEqual_ByteByte(uint8 A, uint8 B)
135{
136 return A <= B;
137}
138
140bool UKismetMathLibrary::GreaterEqual_ByteByte(uint8 A, uint8 B)
141{
142 return A >= B;
143}
144
146bool UKismetMathLibrary::EqualEqual_ByteByte(uint8 A, uint8 B)
147{
148 return A == B;
149}
150
152bool UKismetMathLibrary::NotEqual_ByteByte(uint8 A, uint8 B)
153{
154 return A != B;
155}
156
158int32 UKismetMathLibrary::Multiply_IntInt(int32 A, int32 B)
159{
160 return A * B;
161}
162
164int32 UKismetMathLibrary::Add_IntInt(int32 A, int32 B)
165{
166 return A + B;
167}
168
170int32 UKismetMathLibrary::Subtract_IntInt(int32 A, int32 B)
171{
172 return A - B;
173}
174
176bool UKismetMathLibrary::Less_IntInt(int32 A, int32 B)
177{
178 return A < B;
179}
180
182bool UKismetMathLibrary::Greater_IntInt(int32 A, int32 B)
183{
184 return A > B;
185}
186
188bool UKismetMathLibrary::LessEqual_IntInt(int32 A, int32 B)
189{
190 return A <= B;
191}
192
194bool UKismetMathLibrary::GreaterEqual_IntInt(int32 A, int32 B)
195{
196 return A >= B;
197}
198
200bool UKismetMathLibrary::EqualEqual_IntInt(int32 A, int32 B)
201{
202 return A == B;
203}
204
206bool UKismetMathLibrary::NotEqual_IntInt(int32 A, int32 B)
207{
208 return A != B;
209}
210
212int32 UKismetMathLibrary::And_IntInt(int32 A, int32 B)
213{
214 return A & B;
215}
216
218int32 UKismetMathLibrary::Xor_IntInt(int32 A, int32 B)
219{
220 return A ^ B;
221}
222
224int32 UKismetMathLibrary::Or_IntInt(int32 A, int32 B)
225{
226 return A | B;
227}
228
230int32 UKismetMathLibrary::Not_Int(int32 A)
231{
232 return ~A;
233}
234
236int32 UKismetMathLibrary::SignOfInteger(int32 A)
237{
238 return FMath::Sign<int32>(A);
239}
240
242int32 UKismetMathLibrary::RandomInteger(int32 A)
243{
244 return FMath::RandHelper(A);
245}
246
248int32 UKismetMathLibrary::RandomIntegerInRange(int32 Min, int32 Max)
249{
250 return FMath::RandRange(Min, Max);
251}
252
254int32 UKismetMathLibrary::Min(int32 A, int32 B)
255{
256 return FMath::Min(A, B);
257}
258
260int32 UKismetMathLibrary::Max(int32 A, int32 B)
261{
262 return FMath::Max(A, B);
263}
264
266int32 UKismetMathLibrary::Clamp(int32 V, int32 A, int32 B)
267{
268 return FMath::Clamp(V, A, B);
269}
270
272int32 UKismetMathLibrary::Wrap(int32 Value, int32 Min, int32 Max)
273{
274 // FMath::Wrap only takes floating point types, so operate in doubles, which can hold int32 losslessly.
275 return (int32)FMath::Wrap((double)Value, (double)Min, (double)Max);
276}
277
279int32 UKismetMathLibrary::Abs_Int(int32 A)
280{
281 return FMath::Abs(A);
282}
283
285int64 UKismetMathLibrary::Multiply_Int64Int64(int64 A, int64 B)
286{
287 return A * B;
288}
289
291int64 UKismetMathLibrary::Add_Int64Int64(int64 A, int64 B)
292{
293 return A + B;
294}
295
297int64 UKismetMathLibrary::Subtract_Int64Int64(int64 A, int64 B)
298{
299 return A - B;
300}
301
303bool UKismetMathLibrary::Less_Int64Int64(int64 A, int64 B)
304{
305 return A < B;
306}
307
309bool UKismetMathLibrary::Greater_Int64Int64(int64 A, int64 B)
310{
311 return A > B;
312}
313
315bool UKismetMathLibrary::LessEqual_Int64Int64(int64 A, int64 B)
316{
317 return A <= B;
318}
319
321bool UKismetMathLibrary::GreaterEqual_Int64Int64(int64 A, int64 B)
322{
323 return A >= B;
324}
325
327bool UKismetMathLibrary::EqualEqual_Int64Int64(int64 A, int64 B)
328{
329 return A == B;
330}
331
333bool UKismetMathLibrary::NotEqual_Int64Int64(int64 A, int64 B)
334{
335 return A != B;
336}
337
339int64 UKismetMathLibrary::And_Int64Int64(int64 A, int64 B)
340{
341 return A & B;
342}
343
345int64 UKismetMathLibrary::Xor_Int64Int64(int64 A, int64 B)
346{
347 return A ^ B;
348}
349
351int64 UKismetMathLibrary::Or_Int64Int64(int64 A, int64 B)
352{
353 return A | B;
354}
355
357int64 UKismetMathLibrary::Not_Int64(int64 A)
358{
359 return ~A;
360}
361
363int64 UKismetMathLibrary::SignOfInteger64(int64 A)
364{
365 return FMath::Sign<int64>(A);
366}
367
369int64 UKismetMathLibrary::RandomInteger64(int64 A)
370{
371 return FMath::RandHelper64(A);
372}
373
375int64 UKismetMathLibrary::RandomInteger64InRange(int64 Min, int64 Max)
376{
377 return FMath::RandRange(Min, Max);
378}
379
381int64 UKismetMathLibrary::MinInt64(int64 A, int64 B)
382{
383 return FMath::Min(A, B);
384}
385
387int64 UKismetMathLibrary::MaxInt64(int64 A, int64 B)
388{
389 return FMath::Max(A, B);
390}
391
393int64 UKismetMathLibrary::ClampInt64(int64 V, int64 A, int64 B)
394{
395 return FMath::Clamp(V, A, B);
396}
397
399int64 UKismetMathLibrary::Abs_Int64(int64 A)
400{
401 return FMath::Abs(A);
402}
403
405double UKismetMathLibrary::MultiplyMultiply_FloatFloat(double Base, double Exp)
406{
407 return FMath::Pow(Base, Exp);
408}
409
411double UKismetMathLibrary::Multiply_IntFloat(int32 A, double B)
412{
413 return A * B;
414}
415
417int32 UKismetMathLibrary::Divide_IntInt(int32 A, int32 B)
418{
419 if (B == 0)
420 {
421 ReportError_Divide_IntInt();
422 return 0;
423 }
424
425 return (A / B);
426}
427
429int64 UKismetMathLibrary::Divide_Int64Int64(int64 A, int64 B)
430{
431 if (B == 0)
432 {
433 ReportError_Divide_Int64Int64();
434 return 0;
435 }
436
437 return (A / B);
438}
439
440
442int32 UKismetMathLibrary::Percent_IntInt(int32 A, int32 B)
443{
444 if (B == 0)
445 {
446 ReportError_Percent_IntInt();
447 return 0;
448 }
449
450 return (A % B);
451}
452
454int64 UKismetMathLibrary::Percent_Int64Int64(int64 A, int64 B)
455{
456 if (B == 0)
457 {
458 ReportError_Percent_Int64Int64();
459 return 0;
460 }
461
462 return (A % B);
463}
464
466double UKismetMathLibrary::Fraction(double A)
467{
468 return FMath::Fractional(A);
469}
470
472double UKismetMathLibrary::Add_DoubleDouble(double A, double B)
473{
474 return A + B;
475}
476
478double UKismetMathLibrary::Subtract_DoubleDouble(double A, double B)
479{
480 return A - B;
481}
482
484double UKismetMathLibrary::Multiply_DoubleDouble(double A, double B)
485{
486 return A * B;
487}
488
490double UKismetMathLibrary::Divide_DoubleDouble(double A, double B)
491{
492 if (B == 0.0)
493 {
494 ReportError_Divide_DoubleDouble();
495 return 0.0;
496 }
497 return A / B;
498}
499
501bool UKismetMathLibrary::Less_DoubleDouble(double A, double B)
502{
503 return A < B;
504}
505
507bool UKismetMathLibrary::Greater_DoubleDouble(double A, double B)
508{
509 return A > B;
510}
511
513bool UKismetMathLibrary::LessEqual_DoubleDouble(double A, double B)
514{
515 return A <= B;
516}
517
519bool UKismetMathLibrary::GreaterEqual_DoubleDouble(double A, double B)
520{
521 return A >= B;
522}
523
525bool UKismetMathLibrary::EqualEqual_DoubleDouble(double A, double B)
526{
527 return A == B;
528}
529
531bool UKismetMathLibrary::NearlyEqual_FloatFloat(double A, double B, double ErrorTolerance)
532{
533 return FMath::IsNearlyEqual(A, B, ErrorTolerance);
534}
535
537bool UKismetMathLibrary::NotEqual_DoubleDouble(double A, double B)
538{
539 return A != B;
540}
541
543double UKismetMathLibrary::GridSnap_Float(double Location, double GridSize)
544{
545 return FMath::GridSnap(Location, GridSize);
546}
547
549double UKismetMathLibrary::GetPI()
550{
551 return UE_DOUBLE_PI;
552}
553
555double UKismetMathLibrary::GetTAU()
556{
557 return 2.0 * UE_DOUBLE_PI;
558}
559
561double UKismetMathLibrary::DegreesToRadians(double A)
562{
564}
565
567double UKismetMathLibrary::RadiansToDegrees(double A)
568{
570}
571
573double UKismetMathLibrary::Abs(double A)
574{
575 return FMath::Abs(A);
576}
577
579double UKismetMathLibrary::Sin(double A)
580{
581 return FMath::Sin(A);
582}
583
585double UKismetMathLibrary::Asin(double A)
586{
587 return FMath::Asin(A);
588}
589
591double UKismetMathLibrary::Cos(double A)
592{
593 return FMath::Cos(A);
594}
595
597double UKismetMathLibrary::Acos(double A)
598{
599 return FMath::Acos(A);
600}
601
603double UKismetMathLibrary::Tan(double A)
604{
605 return FMath::Tan(A);
606}
607
609double UKismetMathLibrary::Atan(double A)
610{
611 return FMath::Atan(A);
612}
613
615double UKismetMathLibrary::Atan2(double Y, double X)
616{
617 return FMath::Atan2(Y, X);
618}
619
621double UKismetMathLibrary::DegSin(double A)
622{
623 return FMath::Sin(UE_DOUBLE_PI/(180.0) * A);
624}
625
627double UKismetMathLibrary::DegAsin(double A)
628{
629 return (180.0)/UE_DOUBLE_PI * FMath::Asin(A);
630}
631
633double UKismetMathLibrary::DegCos(double A)
634{
635 return FMath::Cos(UE_DOUBLE_PI/(180.0) * A);
636}
637
639double UKismetMathLibrary::DegAcos(double A)
640{
641 return (180.0)/UE_DOUBLE_PI * FMath::Acos(A);
642}
643
645double UKismetMathLibrary::DegTan(double A)
646{
647 return FMath::Tan(UE_DOUBLE_PI/(180.0) * A);
648}
649
651double UKismetMathLibrary::DegAtan(double A)
652{
653 return (180.0)/UE_DOUBLE_PI * FMath::Atan(A);
654}
655
657double UKismetMathLibrary::DegAtan2(double Y, double X)
658{
659 return (180.0)/UE_DOUBLE_PI * FMath::Atan2(Y, X);
660}
661
663double UKismetMathLibrary::ClampAngle(double AngleDegrees, double MinAngleDegrees, double MaxAngleDegrees)
664{
666}
667
669double UKismetMathLibrary::Exp(double A)
670{
671 return FMath::Exp(A);
672}
673
675double UKismetMathLibrary::Loge(double A)
676{
677 return FMath::Loge(A);
678}
679
681double UKismetMathLibrary::Sqrt(double A)
682{
683 if (A >= 0.0)
684 {
685 return FMath::Sqrt(A);
686 }
687 else
688 {
689 ReportError_Sqrt();
690 return 0.0;
691 }
692}
693
695double UKismetMathLibrary::Square(double A)
696{
697 return FMath::Square(A);
698}
699
701int32 UKismetMathLibrary::Round(double A)
702{
703 return static_cast<int32>(FMath::RoundToInt(A));
704}
705
707int32 UKismetMathLibrary::FFloor(double A)
708{
709 return static_cast<int32>(FMath::FloorToInt(A));
710}
711
713int32 UKismetMathLibrary::FTrunc(double A)
714{
715 return static_cast<int32>(FMath::TruncToInt(A));
716}
717
719int64 UKismetMathLibrary::Round64(double A)
720{
721 return (int64)FMath::RoundToDouble(A);
722}
723
725int64 UKismetMathLibrary::FFloor64(double A)
726{
727 return (int64)FMath::FloorToDouble(A);
728}
729
731int64 UKismetMathLibrary::FTrunc64(double A)
732{
733 return (int64)A;
734}
735
737int64 UKismetMathLibrary::FCeil64(double A)
738{
739 return (int64)FMath::CeilToDouble(A);
740}
741
743int32 UKismetMathLibrary::FCeil(double A)
744{
745 return static_cast<int32>(FMath::CeilToInt(A));
746}
747
749double UKismetMathLibrary::SignOfFloat(double A)
750{
751 return FMath::Sign<double>(A);
752}
753
755double UKismetMathLibrary::MultiplyByPi(double Value)
756{
757 return Value * UE_DOUBLE_PI;
758}
759
761float UKismetMathLibrary::FixedTurn(float InCurrent, float InDesired, float InDeltaRate)
762{
764}
765
767double UKismetMathLibrary::RandomFloat()
768{
769 return FMath::FRand(); // LWC_todo: add and switch to double version.
770}
771
773double UKismetMathLibrary::RandomFloatInRange(double Min, double Max)
774{
775 return FMath::FRandRange(Min, Max);
776}
777
779double UKismetMathLibrary::FMin(double A, double B)
780{
781 return FMath::Min(A, B);
782}
783
785double UKismetMathLibrary::FMax(double A, double B)
786{
787 return FMath::Max(A, B);
788}
789
791double UKismetMathLibrary::FClamp(double V, double A, double B)
792{
793 return FMath::Clamp(V, A, B);
794}
795
797double UKismetMathLibrary::FWrap(double Value, double Min, double Max)
798{
799 return FMath::Wrap(Value, Min, Max);
800}
801
803double UKismetMathLibrary::Lerp(double A, double B, double V)
804{
805 return A + V*(B-A);
806}
807
809double UKismetMathLibrary::FInterpTo(double Current, double Target, double DeltaTime, double InterpSpeed)
810{
811 return FMath::FInterpTo(Current, Target, DeltaTime, InterpSpeed);
812}
813
815double UKismetMathLibrary::FInterpTo_Constant(double Current, double Target, double DeltaTime, double InterpSpeed)
816{
817 return FMath::FInterpConstantTo(Current, Target, DeltaTime, InterpSpeed);
818}
819
820
821/* FRotator
822*****************************************************************************/
823
825FRotator UKismetMathLibrary::RInterpTo_Constant(FRotator Current, FRotator Target, float DeltaTime, float InterpSpeed)
826{
827 return FMath::RInterpConstantTo(Current, Target, DeltaTime, InterpSpeed);
828}
829
830
832bool UKismetMathLibrary::EqualEqual_RotatorRotator(FRotator A, FRotator B, float ErrorTolerance)
833{
834 return A.Equals(B, ErrorTolerance);
835}
836
838bool UKismetMathLibrary::NotEqual_RotatorRotator(FRotator A, FRotator B, float ErrorTolerance)
839{
840 return !A.Equals(B, ErrorTolerance);
841}
842
844FRotator UKismetMathLibrary::Multiply_RotatorFloat(FRotator A, float B)
845{
846 return A * B;
847}
848
850FRotator UKismetMathLibrary::Multiply_RotatorInt(FRotator A, int32 B)
851{
852 return A * (float)B;
853}
854
856FRotator UKismetMathLibrary::NegateRotator(FRotator A)
857{
858 return A.GetInverse();
859}
860
862FRotator UKismetMathLibrary::RInterpTo(FRotator Current, FRotator Target, float DeltaTime, float InterpSpeed)
863{
864 return FMath::RInterpTo(Current, Target, DeltaTime, InterpSpeed);
865}
866
867
868/* FTransform
869*****************************************************************************/
870
872FTransform UKismetMathLibrary::MakeTransform(FVector Translation, FRotator Rotation, FVector Scale)
873{
874 return FTransform(Rotation, Translation, Scale);
875}
876
878void UKismetMathLibrary::BreakTransform(const FTransform& InTransform, FVector& Translation, FRotator& Rotation, FVector& Scale)
879{
880 Translation = InTransform.GetLocation();
881 Rotation = InTransform.Rotator();
882 Scale = InTransform.GetScale3D();
883}
884
886FVector UKismetMathLibrary::TransformLocation(const FTransform& T, FVector Location)
887{
888 return T.TransformPosition(Location);
889}
890
892FVector UKismetMathLibrary::TransformDirection(const FTransform& T, FVector Direction)
893{
894 return T.TransformVectorNoScale(Direction);
895}
896
898FVector UKismetMathLibrary::InverseTransformLocation(const FTransform& T, FVector Location)
899{
900 return T.InverseTransformPosition(Location);
901}
902
904FVector UKismetMathLibrary::InverseTransformDirection(const FTransform& T, FVector Direction)
905{
906 return T.InverseTransformVectorNoScale(Direction);
907}
908
910FTransform UKismetMathLibrary::ComposeTransforms(const FTransform& A, const FTransform& B)
911{
912 return A * B;
913}
914
916FTransform UKismetMathLibrary::MakeRelativeTransform(const FTransform& A, const FTransform& RelativeTo)
917{
919}
920
922FTransform UKismetMathLibrary::InvertTransform(const FTransform& T)
923{
924 return T.Inverse();
925}
926
928bool UKismetMathLibrary::EqualEqual_TransformTransform(const FTransform& A, const FTransform& B)
929{
931}
932
933
934/* FIntPoint
935*****************************************************************************/
936
938FIntPoint UKismetMathLibrary::IntPoint_Zero()
939{
941}
942
944FIntPoint UKismetMathLibrary::IntPoint_One()
945{
946 return FIntPoint(1);
947}
948
950FIntPoint UKismetMathLibrary::IntPoint_Up()
951{
952 return FIntPoint(0, -1);
953}
954
956FIntPoint UKismetMathLibrary::IntPoint_Left()
957{
958 return FIntPoint(-1, 0);
959}
960
962FIntPoint UKismetMathLibrary::IntPoint_Right()
963{
964 return FIntPoint(1, 0);
965}
966
968FIntPoint UKismetMathLibrary::IntPoint_Down()
969{
970 return FIntPoint(0, 1);
971}
972
974FVector2D UKismetMathLibrary::Conv_IntPointToVector2D(FIntPoint InIntPoint)
975{
976 return FVector2D(InIntPoint.X, InIntPoint.Y);
977}
978
979
981FIntPoint UKismetMathLibrary::Add_IntPointIntPoint(FIntPoint A, FIntPoint B)
982{
983 return A + B;
984}
985
987FIntPoint UKismetMathLibrary::Add_IntPointInt(FIntPoint A, int32 B)
988{
989 return A + FIntPoint(B);
990}
991
993FIntPoint UKismetMathLibrary::Subtract_IntPointIntPoint(FIntPoint A, FIntPoint B)
994{
995 return A - B;
996}
997
999FIntPoint UKismetMathLibrary::Subtract_IntPointInt(FIntPoint A, int32 B)
1000{
1001 return A - FIntPoint(B);
1002}
1003
1005FIntPoint UKismetMathLibrary::Multiply_IntPointIntPoint(FIntPoint A, FIntPoint B)
1006{
1007 return A * B;
1008}
1009
1011FIntPoint UKismetMathLibrary::Multiply_IntPointInt(FIntPoint A, int32 B)
1012{
1013 return A * FIntPoint(B);
1014}
1015
1017FIntPoint UKismetMathLibrary::Divide_IntPointIntPoint(FIntPoint A, FIntPoint B)
1018{
1019 if (B.X == 0 || B.Y == 0)
1020 {
1021 ReportError_Divide_IntPointOnIntPoint();
1022 return FIntPoint::ZeroValue;
1023 }
1024 return A / B;
1025}
1026
1028FIntPoint UKismetMathLibrary::Divide_IntPointInt(FIntPoint A, int32 B)
1029{
1030 if (B == 0)
1031 {
1032 ReportError_Divide_IntPointOnInt();
1033 return FIntPoint::ZeroValue;
1034 }
1035
1036 return A / FIntPoint(B);
1037}
1038
1040bool UKismetMathLibrary::Equal_IntPointIntPoint(FIntPoint A, FIntPoint B)
1041{
1042 return A == B;
1043}
1044
1046bool UKismetMathLibrary::NotEqual_IntPointIntPoint(FIntPoint A, FIntPoint B)
1047{
1048 return A != B;
1049}
1050
1051
1052/* FVector2D
1053*****************************************************************************/
1054
1056FVector2D UKismetMathLibrary::Vector2D_One()
1057{
1058 return FVector2D::UnitVector;
1059}
1060
1062FVector2D UKismetMathLibrary::Vector2D_Unit45Deg()
1063{
1064 return FVector2D::Unit45Deg;
1065}
1066
1068FVector2D UKismetMathLibrary::Vector2D_Zero()
1069{
1070 return FVector2D::ZeroVector;
1071}
1072
1074FVector2D UKismetMathLibrary::MakeVector2D(double X, double Y)
1075{
1076 return FVector2D(X, Y);
1077}
1078
1080void UKismetMathLibrary::BreakVector2D(FVector2D InVec, double& X, double& Y)
1081{
1082 X = InVec.X;
1083 Y = InVec.Y;
1084}
1085
1087FVector UKismetMathLibrary::Conv_Vector2DToVector(FVector2D InVec2D, float Z)
1088{
1089 return FVector(InVec2D, Z);
1090}
1091
1093FIntPoint UKismetMathLibrary::Conv_Vector2DToIntPoint(FVector2D InVec2D)
1094{
1095 return InVec2D.IntPoint();
1096}
1097
1099FVector2D UKismetMathLibrary::Add_Vector2DVector2D(FVector2D A, FVector2D B)
1100{
1101 return A + B;
1102}
1103
1105FVector2D UKismetMathLibrary::Subtract_Vector2DVector2D(FVector2D A, FVector2D B)
1106{
1107 return A - B;
1108}
1109
1111FVector2D UKismetMathLibrary::Multiply_Vector2DFloat(FVector2D A, double B)
1112{
1113 return A * B;
1114}
1115
1117FVector2D UKismetMathLibrary::Multiply_Vector2DVector2D(FVector2D A, FVector2D B)
1118{
1119 return A * B;
1120}
1121
1123FVector2D UKismetMathLibrary::Divide_Vector2DFloat(FVector2D A, double B)
1124{
1125 if (B == 0.f)
1126 {
1127 ReportError_Divide_Vector2DFloat();
1128 return FVector2D::ZeroVector;
1129 }
1130
1131 return A / B;
1132}
1133
1135FVector2D UKismetMathLibrary::Divide_Vector2DVector2D(FVector2D A, FVector2D B)
1136{
1137 if (B.X == 0.f || B.Y == 0.f)
1138 {
1139 ReportError_Divide_Vector2DVector2D();
1140 return FVector2D::ZeroVector;
1141 }
1142
1143 return A / B;
1144}
1145
1147FVector2D UKismetMathLibrary::Add_Vector2DFloat(FVector2D A, double B)
1148{
1149 return A+B;
1150}
1151
1153FVector2D UKismetMathLibrary::Subtract_Vector2DFloat(FVector2D A, double B)
1154{
1155 return A-B;
1156}
1157
1159bool UKismetMathLibrary::EqualExactly_Vector2DVector2D(FVector2D A, FVector2D B)
1160{
1161 return A == B;
1162}
1163
1165bool UKismetMathLibrary::EqualEqual_Vector2DVector2D(FVector2D A, FVector2D B, float ErrorTolerance)
1166{
1167 return A.Equals(B,ErrorTolerance);
1168}
1169
1171bool UKismetMathLibrary::NotEqualExactly_Vector2DVector2D(FVector2D A, FVector2D B)
1172{
1173 return A != B;
1174}
1175
1177bool UKismetMathLibrary::NotEqual_Vector2DVector2D(FVector2D A, FVector2D B, float ErrorTolerance)
1178{
1179 return !A.Equals(B,ErrorTolerance);
1180}
1181
1183FVector2D UKismetMathLibrary::Negated2D(const FVector2D& A)
1184{
1185 return FVector2D(-A.X, -A.Y);
1186}
1187
1189void UKismetMathLibrary::Set2D(FVector2D& A, double X, double Y)
1190{
1191 A.Set(X, Y);
1192}
1193
1195FVector2D UKismetMathLibrary::ClampAxes2D(FVector2D A, double MinAxisVal, double MaxAxisVal)
1196{
1198}
1199
1201double UKismetMathLibrary::CrossProduct2D(FVector2D A, FVector2D B)
1202{
1203 return FVector2D::CrossProduct(A, B);
1204}
1205
1207double UKismetMathLibrary::Distance2D(FVector2D V1, FVector2D V2)
1208{
1209 return FVector2D::Distance(V1, V2);
1210}
1211
1213double UKismetMathLibrary::DistanceSquared2D(FVector2D V1, FVector2D V2)
1214{
1215 return FVector2D::DistSquared(V1, V2);
1216}
1217
1219double UKismetMathLibrary::DotProduct2D(FVector2D A, FVector2D B)
1220{
1221 return FVector2D::DotProduct(A, B);
1222}
1223
1225FVector2D UKismetMathLibrary::GetAbs2D(FVector2D A)
1226{
1227 return A.GetAbs();
1228}
1229
1231double UKismetMathLibrary::GetAbsMax2D(FVector2D A)
1232{
1233 return A.GetAbsMax();
1234}
1235
1237double UKismetMathLibrary::GetMax2D(FVector2D A)
1238{
1239 return A.GetMax();
1240}
1241
1243double UKismetMathLibrary::GetMin2D(FVector2D A)
1244{
1245 return A.GetMin();
1246}
1247
1249FVector2D UKismetMathLibrary::GetRotated2D(FVector2D A, float AngleDeg)
1250{
1251 return A.GetRotated(AngleDeg);
1252}
1253
1255bool UKismetMathLibrary::IsNearlyZero2D(const FVector2D& A, float Tolerance)
1256{
1257 return A.IsNearlyZero(Tolerance);
1258}
1259
1261bool UKismetMathLibrary::IsZero2D(const FVector2D& A)
1262{
1263 return A.IsZero();
1264}
1265
1267FVector2D UKismetMathLibrary::Vector2DInterpTo(FVector2D Current, FVector2D Target, float DeltaTime, float InterpSpeed)
1268{
1269 return FMath::Vector2DInterpTo(Current, Target, DeltaTime, InterpSpeed);
1270}
1271
1273FVector2D UKismetMathLibrary::Vector2DInterpTo_Constant(FVector2D Current, FVector2D Target, float DeltaTime, float InterpSpeed)
1274{
1275 return FMath::Vector2DInterpConstantTo(Current, Target, DeltaTime, InterpSpeed);
1276}
1277
1279FVector2D UKismetMathLibrary::Normal2D(FVector2D A)
1280{
1281 return A.GetSafeNormal();
1282}
1283
1285FVector2D UKismetMathLibrary::NormalSafe2D(FVector2D A, float Tolerance)
1286{
1287 return A.GetSafeNormal(Tolerance);
1288}
1289
1291void UKismetMathLibrary::Normalize2D(FVector2D& A, float Tolerance)
1292{
1293 A.Normalize(Tolerance);
1294}
1295
1297FVector UKismetMathLibrary::Spherical2DToUnitCartesian(FVector2D A)
1298{
1299 return A.SphericalToUnitCartesian();
1300}
1301
1303void UKismetMathLibrary::ToDirectionAndLength2D(FVector2D A, FVector2D& OutDir, double& OutLength)
1304{
1305 A.ToDirectionAndLength(OutDir, OutLength);
1306}
1307
1309FVector2D UKismetMathLibrary::ToRounded2D(FVector2D A)
1310{
1311 return A.RoundToVector();
1312}
1313
1315FVector2D UKismetMathLibrary::ToSign2D(FVector2D A)
1316{
1317 return A.GetSignVector();
1318}
1319
1321double UKismetMathLibrary::VSize2D(FVector2D A)
1322{
1323 return A.Size();
1324}
1325
1327double UKismetMathLibrary::VSize2DSquared(FVector2D A)
1328{
1329 return A.SizeSquared();
1330}
1331
1332
1333/* FVector
1334*****************************************************************************/
1335
1337FVector UKismetMathLibrary::Vector_Zero()
1338{
1339 return FVector::ZeroVector;
1340}
1341
1343FVector UKismetMathLibrary::Vector_One()
1344{
1345 return FVector::OneVector;
1346}
1347
1349FVector UKismetMathLibrary::Vector_Forward()
1350{
1352}
1353
1355FVector UKismetMathLibrary::Vector_Backward()
1356{
1358}
1359
1361FVector UKismetMathLibrary::Vector_Up()
1362{
1363 return FVector::UpVector;
1364}
1365
1367FVector UKismetMathLibrary::Vector_Down()
1368{
1369 return FVector::DownVector;
1370}
1371
1373FVector UKismetMathLibrary::Vector_Right()
1374{
1375 return FVector::RightVector;
1376}
1377
1379FVector UKismetMathLibrary::Vector_Left()
1380{
1381 return FVector::LeftVector;
1382}
1383
1385FVector UKismetMathLibrary::MakeVector(double X, double Y, double Z)
1386{
1387 return FVector(X, Y, Z);
1388}
1389
1391void UKismetMathLibrary::Vector_Assign(FVector& A, const FVector& InVector)
1392{
1393 A = InVector;
1394}
1395
1397void UKismetMathLibrary::Vector_Set(FVector& A, double X, double Y, double Z)
1398{
1399 A.Set(X, Y, Z);
1400}
1401
1403void UKismetMathLibrary::BreakVector(FVector InVec, double& X, double& Y, double& Z)
1404{
1405 X = InVec.X;
1406 Y = InVec.Y;
1407 Z = InVec.Z;
1408}
1409
1411FRotator UKismetMathLibrary::Conv_VectorToRotator(FVector InVec)
1412{
1413 return InVec.ToOrientationRotator();
1414}
1415
1417FQuat UKismetMathLibrary::Conv_VectorToQuaternion(FVector InVec)
1418{
1419 return InVec.ToOrientationQuat();
1420}
1421
1423FVector UKismetMathLibrary::Vector_SlerpVectorToDirection(FVector Vector, FVector Direction, double Alpha)
1424{
1425 return FVector::SlerpVectorToDirection(Vector, Direction, Alpha);
1426}
1427
1429FVector UKismetMathLibrary::Vector_SlerpNormals(FVector NormalA, FVector NormalB, double Alpha)
1430{
1431 return FVector::SlerpNormals(NormalA, NormalB, Alpha);
1432}
1433
1435FLinearColor UKismetMathLibrary::Conv_VectorToLinearColor(FVector InVec)
1436{
1437 return FLinearColor(InVec);
1438}
1439
1441FVector2D UKismetMathLibrary::Conv_VectorToVector2D(FVector InVec)
1442{
1443 return FVector2D(InVec);
1444}
1445
1447FTransform UKismetMathLibrary::Conv_VectorToTransform(FVector InTranslation)
1448{
1449 return FTransform(InTranslation);
1450}
1451
1453FVector UKismetMathLibrary::Multiply_VectorFloat(FVector A, double B)
1454{
1455 return A * B;
1456}
1457
1459FVector UKismetMathLibrary::Multiply_VectorInt(FVector A, int32 B)
1460{
1461 return A * (float)B;
1462}
1463
1465FVector UKismetMathLibrary::Multiply_VectorVector(FVector A, FVector B)
1466{
1467 return A * B;
1468}
1469
1471FVector UKismetMathLibrary::Divide_VectorFloat(FVector A, double B)
1472{
1473 if (B == 0.f)
1474 {
1475 ReportError_Divide_VectorFloat();
1476 return FVector::ZeroVector;
1477 }
1478
1479 return A / B;
1480}
1481
1483FVector UKismetMathLibrary::Divide_VectorInt(FVector A, int32 B)
1484{
1485 if (B == 0)
1486 {
1487 ReportError_Divide_VectorInt();
1488 return FVector::ZeroVector;
1489 }
1490
1491 return A / (float)B;
1492}
1493
1495FVector UKismetMathLibrary::Divide_VectorVector(FVector A, FVector B)
1496{
1497 if (B.X == 0.f || B.Y == 0.f || B.Z == 0.f)
1498 {
1499 ReportError_Divide_VectorVector();
1500 return FVector::ZeroVector;
1501 }
1502
1503 return A / B;
1504}
1505
1507FVector UKismetMathLibrary::Add_VectorVector(FVector A, FVector B)
1508{
1509 return A + B;
1510}
1511
1513FVector UKismetMathLibrary::Add_VectorFloat(FVector A, double B)
1514{
1515 return A + B;
1516}
1517
1519FVector UKismetMathLibrary::Add_VectorInt(FVector A, int32 B)
1520{
1521 return A + (float)B;
1522}
1523
1525FVector UKismetMathLibrary::Subtract_VectorVector(FVector A, FVector B)
1526{
1527 return A - B;
1528}
1529
1531FVector UKismetMathLibrary::Subtract_VectorFloat(FVector A, double B)
1532{
1533 return A - B;
1534}
1535
1537FVector UKismetMathLibrary::Subtract_VectorInt(FVector A, int32 B)
1538{
1539 return A - (float)B;
1540}
1541
1543FVector UKismetMathLibrary::LessLess_VectorRotator(FVector A, FRotator B)
1544{
1545 return B.UnrotateVector(A);
1546}
1547
1549FVector UKismetMathLibrary::GreaterGreater_VectorRotator(FVector A, FRotator B)
1550{
1551 return B.RotateVector(A);
1552}
1553
1555bool UKismetMathLibrary::EqualExactly_VectorVector(FVector A, FVector B)
1556{
1557 return A == B;
1558}
1559
1561bool UKismetMathLibrary::EqualEqual_VectorVector(FVector A, FVector B, float ErrorTolerance)
1562{
1563 return A.Equals(B, ErrorTolerance);
1564}
1565
1567bool UKismetMathLibrary::NotEqualExactly_VectorVector(FVector A, FVector B)
1568{
1569 return A != B;
1570}
1571
1573bool UKismetMathLibrary::NotEqual_VectorVector(FVector A, FVector B, float ErrorTolerance)
1574{
1575 return !A.Equals(B, ErrorTolerance);
1576}
1577
1579FVector UKismetMathLibrary::Cross_VectorVector(FVector A, FVector B)
1580{
1581 return FVector::CrossProduct(A, B);
1582}
1583
1585double UKismetMathLibrary::Dot_VectorVector(FVector A, FVector B)
1586{
1587 return FVector::DotProduct(A, B);
1588}
1589
1591double UKismetMathLibrary::Vector_Distance(FVector V1, FVector V2)
1592{
1593 return FVector::Distance(V1, V2);
1594}
1595
1597double UKismetMathLibrary::Vector_DistanceSquared(FVector V1, FVector V2)
1598{
1599 return FVector::DistSquared(V1, V2);
1600}
1601
1603double UKismetMathLibrary::Vector_Distance2D(FVector V1, FVector V2)
1604{
1605 return FVector::DistXY(V1, V2);
1606}
1607
1609double UKismetMathLibrary::Vector_Distance2DSquared(FVector V1, FVector V2)
1610{
1611 return FVector::DistSquaredXY(V1, V2);
1612}
1613
1615double UKismetMathLibrary::VSize(FVector A)
1616{
1617 return A.Size();
1618}
1619
1621double UKismetMathLibrary::VSizeSquared(FVector A)
1622{
1623 return A.SizeSquared();
1624}
1625
1627double UKismetMathLibrary::VSizeXY(FVector A)
1628{
1629 return A.Size2D();
1630}
1631
1633double UKismetMathLibrary::VSizeXYSquared(FVector A)
1634{
1635 return A.SizeSquared2D();
1636}
1637
1639bool UKismetMathLibrary::Vector_IsNearlyZero(const FVector& A, float Tolerance)
1640{
1641 return A.IsNearlyZero(Tolerance);
1642}
1643
1645bool UKismetMathLibrary::Vector_IsZero(const FVector& A)
1646{
1647 return (A.X == 0.0f) && (A.Y == 0.0f) && (A.Z == 0.0f);
1648}
1649
1651bool UKismetMathLibrary::Vector_IsNAN(const FVector& A)
1652{
1653 return A.ContainsNaN();
1654}
1655
1657bool UKismetMathLibrary::Vector_IsUniform(const FVector& A, float Tolerance)
1658{
1659 return A.AllComponentsEqual(Tolerance);
1660}
1661
1663bool UKismetMathLibrary::Vector_IsUnit(const FVector& A, float SquaredLenthTolerance)
1664{
1665 return A.IsUnit(SquaredLenthTolerance);
1666}
1667
1669bool UKismetMathLibrary::Vector_IsNormal(const FVector& A)
1670{
1671 return A.IsNormalized();
1672}
1673
1675FVector UKismetMathLibrary::Normal(FVector A, float Tolerance)
1676{
1677 return A.GetSafeNormal(Tolerance);
1678}
1679
1681FVector UKismetMathLibrary::Vector_Normal2D(FVector A, float Tolerance)
1682{
1683 return A.GetSafeNormal2D(Tolerance);
1684}
1685
1687FVector UKismetMathLibrary::Vector_NormalUnsafe(const FVector& A)
1688{
1689 return A.GetUnsafeNormal();
1690}
1691
1693void UKismetMathLibrary::Vector_Normalize(FVector& A, float Tolerance)
1694{
1695 A.Normalize(Tolerance);
1696}
1697
1699FVector UKismetMathLibrary::VLerp(FVector A, FVector B, float V)
1700{
1701 return A + V * (B - A);
1702}
1703
1705FVector UKismetMathLibrary::VInterpTo(FVector Current, FVector Target, float DeltaTime, float InterpSpeed)
1706{
1707 return FMath::VInterpTo(Current, Target, DeltaTime, InterpSpeed);
1708}
1709
1711FVector UKismetMathLibrary::VInterpTo_Constant(FVector Current, FVector Target, float DeltaTime, float InterpSpeed)
1712{
1713 return FMath::VInterpConstantTo(Current, Target, DeltaTime, InterpSpeed);
1714}
1715
1717FVector UKismetMathLibrary::Vector_Reciprocal(const FVector& A)
1718{
1719 return A.Reciprocal();
1720}
1721
1723FVector UKismetMathLibrary::RandomPointInBoundingBox(const FVector Center, const FVector HalfSize)
1724{
1725 const FVector BoxMin = Center - HalfSize;
1726 const FVector BoxMax = Center + HalfSize;
1727 return FMath::RandPointInBox(FBox(BoxMin, BoxMax));
1728}
1729
1731FVector UKismetMathLibrary::RandomPointInBoundingBox_Box(const FBox Box)
1732{
1733 return FMath::RandPointInBox(Box);
1734}
1735
1737FVector UKismetMathLibrary::RandomUnitVectorInConeInRadians(FVector ConeDir, float ConeHalfAngleInRadians)
1738{
1740}
1741
1743FVector UKismetMathLibrary::GetReflectionVector(FVector Direction, FVector SurfaceNormal)
1744{
1745 // Same as MirrorVectorByNormal() below - though they are bound to different names so keeping both for now
1746 return FMath::GetReflectionVector(Direction, SurfaceNormal);
1747}
1748
1750FVector UKismetMathLibrary::MirrorVectorByNormal(FVector InVect, FVector InNormal)
1751{
1752 // Same as GetReflectionVector() above - though they are bound to cdifferent names so keeping both for now
1754}
1755
1757FVector UKismetMathLibrary::Vector_MirrorByPlane(FVector A, const FPlane& InPlane)
1758{
1759 return A.MirrorByPlane(InPlane);
1760}
1761
1763FVector UKismetMathLibrary::Vector_SnappedToGrid(FVector InVect, float InGridSize)
1764{
1765 return InVect.GridSnap(InGridSize);
1766}
1767
1769FVector UKismetMathLibrary::Vector_BoundedToCube(FVector InVect, float InRadius)
1770{
1771 return InVect.BoundToCube(InRadius);
1772}
1773
1775void UKismetMathLibrary::Vector_AddBounded(FVector& A, FVector InAddVect, float InRadius)
1776{
1777 return A.AddBounded(InAddVect, InRadius);
1778}
1779
1781FVector UKismetMathLibrary::Vector_BoundedToBox(FVector InVect, FVector InBoxMin, FVector InBoxMax)
1782{
1784}
1785
1787FVector UKismetMathLibrary::Vector_ProjectOnToNormal(FVector V, FVector InNormal)
1788{
1789 return V.ProjectOnToNormal(InNormal);
1790}
1791
1793FVector UKismetMathLibrary::ProjectVectorOnToVector(FVector V, FVector Target)
1794{
1795 if (Target.SizeSquared() > UE_SMALL_NUMBER)
1796 {
1797 return V.ProjectOnTo(Target);
1798 }
1799 else
1800 {
1801 ReportError_ProjectVectorOnToVector();
1802 return FVector::ZeroVector;
1803 }
1804}
1805
1807void UKismetMathLibrary::FindNearestPointsOnLineSegments(FVector Segment1Start, FVector Segment1End, FVector Segment2Start, FVector Segment2End, FVector& Segment1Point, FVector& Segment2Point)
1808{
1810}
1811
1813FVector UKismetMathLibrary::FindClosestPointOnSegment(FVector Point, FVector SegmentStart, FVector SegmentEnd)
1814{
1816}
1817
1819float UKismetMathLibrary::GetPointDistanceToSegment(FVector Point, FVector SegmentStart, FVector SegmentEnd)
1820{
1822}
1823
1825float UKismetMathLibrary::GetPointDistanceToLine(FVector Point, FVector LineOrigin, FVector LineDirection)
1826{
1828}
1829
1831FVector UKismetMathLibrary::ProjectPointOnToPlane(FVector Point, FVector PlaneBase, FVector PlaneNormal)
1832{
1833 return FVector::PointPlaneProject(Point, PlaneBase, PlaneNormal);
1834}
1835
1837FVector UKismetMathLibrary::ProjectVectorOnToPlane(FVector V, FVector PlaneNormal)
1838{
1839 return FVector::VectorPlaneProject(V, PlaneNormal);
1840}
1841
1843FVector UKismetMathLibrary::NegateVector(FVector A)
1844{
1845 return -A;
1846}
1847
1849void UKismetMathLibrary::Vector_UnwindEuler(FVector& A)
1850{
1851 A.UnwindEuler();
1852}
1853
1855FVector UKismetMathLibrary::ClampVectorSize(FVector A, double Min, double Max)
1856{
1857 return A.GetClampedToSize(Min, Max);
1858}
1859
1861FVector UKismetMathLibrary::Vector_ClampSize2D(FVector A, double Min, double Max)
1862{
1863 return A.GetClampedToSize2D(Min, Max);
1864}
1865
1867FVector UKismetMathLibrary::Vector_ClampSizeMax(FVector A, double Max)
1868{
1869 return A.GetClampedToMaxSize(Max);
1870}
1871
1873FVector UKismetMathLibrary::Vector_ClampSizeMax2D(FVector A, double Max)
1874{
1875 return A.GetClampedToMaxSize2D(Max);
1876}
1877
1879double UKismetMathLibrary::GetMinElement(FVector A)
1880{
1881 return A.GetMin();
1882}
1883
1885double UKismetMathLibrary::GetMaxElement(FVector A)
1886{
1887 return A.GetMax();
1888}
1889
1891double UKismetMathLibrary::Vector_GetAbsMax(FVector A)
1892{
1893 return A.GetAbsMax();
1894}
1895
1897double UKismetMathLibrary::Vector_GetAbsMin(FVector A)
1898{
1899 return A.GetAbsMin();
1900}
1901
1903FVector UKismetMathLibrary::Vector_GetAbs(FVector A)
1904{
1905 return A.GetAbs();
1906}
1907
1909FVector UKismetMathLibrary::Vector_ComponentMin(FVector A, FVector B)
1910{
1911 return A.ComponentMin(B);
1912}
1913
1915FVector UKismetMathLibrary::Vector_ComponentMax(FVector A, FVector B)
1916{
1917 return A.ComponentMax(B);
1918}
1919
1921FVector UKismetMathLibrary::Vector_GetSignVector(FVector A)
1922{
1923 return A.GetSignVector();
1924}
1925
1927FVector UKismetMathLibrary::Vector_GetProjection(FVector A)
1928{
1929 return A.Projection();
1930}
1931
1933double UKismetMathLibrary::Vector_HeadingAngle(FVector A)
1934{
1935 return A.HeadingAngle();
1936}
1937
1939double UKismetMathLibrary::Vector_CosineAngle2D(FVector A, FVector B)
1940{
1941 return A.CosineAngle2D(B);
1942}
1943
1945FVector UKismetMathLibrary::Vector_ToRadians(FVector A)
1946{
1948}
1949
1951FVector UKismetMathLibrary::Vector_ToDegrees(FVector A)
1952{
1954}
1955
1957FVector2D UKismetMathLibrary::Vector_UnitCartesianToSpherical(FVector A)
1958{
1959 return A.UnitCartesianToSpherical();
1960}
1961
1963FVector UKismetMathLibrary::GetDirectionUnitVector(FVector From, FVector To)
1964{
1965 return (To - From).GetSafeNormal();
1966}
1967
1969FIntVector UKismetMathLibrary::FTruncVector(const FVector& InVector)
1970{
1971 return FIntVector(static_cast<int32>(FMath::TruncToInt(InVector.X)),
1972 static_cast<int32>(FMath::TruncToInt(InVector.Y)),
1973 static_cast<int32>(FMath::TruncToInt(InVector.Z)));
1974}
1975
1977FIntVector2 UKismetMathLibrary::FTruncVector2D(const FVector2D& InVector2D)
1978{
1979 return FIntVector2(static_cast<int32>(FMath::TruncToInt(InVector2D.X)),
1980 static_cast<int32>(FMath::TruncToInt(InVector2D.Y)));
1981}
1982
1983/* FVector4
1984*****************************************************************************/
1985
1987FVector4 UKismetMathLibrary::Vector4_Zero()
1988{
1989 return FVector4(ForceInitToZero);
1990}
1991
1993FVector4 UKismetMathLibrary::MakeVector4(double X, double Y, double Z, double W)
1994{
1995 return FVector4(X, Y, Z, W);
1996}
1997
1999void UKismetMathLibrary::BreakVector4(const FVector4& InVec, double& X, double& Y, double& Z, double& W)
2000{
2001 X = InVec.X;
2002 Y = InVec.Y;
2003 Z = InVec.Z;
2004 W = InVec.W;
2005}
2006
2008FVector UKismetMathLibrary::Conv_Vector4ToVector(const FVector4& InVector4)
2009{
2010 return FVector(InVector4.X, InVector4.Y, InVector4.Z);
2011}
2012
2014FRotator UKismetMathLibrary::Conv_Vector4ToRotator(const FVector4& InVec)
2015{
2016 return InVec.ToOrientationRotator();
2017}
2018
2020FQuat UKismetMathLibrary::Conv_Vector4ToQuaternion(const FVector4& InVec)
2021{
2022 return InVec.ToOrientationQuat();
2023}
2024
2026FVector4 UKismetMathLibrary::Add_Vector4Vector4(const FVector4& A, const FVector4& B)
2027{
2028 return A + B;
2029}
2030
2032FVector4 UKismetMathLibrary::Subtract_Vector4Vector4(const FVector4& A, const FVector4& B)
2033{
2034 return A - B;
2035}
2036
2038FVector4 UKismetMathLibrary::Multiply_Vector4Vector4(const FVector4& A, const FVector4& B)
2039{
2040 return A * B;
2041}
2042
2044FVector4 UKismetMathLibrary::Divide_Vector4Vector4(const FVector4& A, const FVector4& B)
2045{
2046 return A / B;
2047}
2048
2050bool UKismetMathLibrary::EqualExactly_Vector4Vector4(const FVector4& A, const FVector4& B)
2051{
2052 return A == B;
2053}
2054
2056bool UKismetMathLibrary::EqualEqual_Vector4Vector4(const FVector4& A, const FVector4& B, float ErrorTolerance)
2057{
2058 return A.Equals(B, ErrorTolerance);
2059}
2060
2062bool UKismetMathLibrary::NotEqualExactly_Vector4Vector4(const FVector4& A, const FVector4& B)
2063{
2064 return A != B;
2065}
2066
2068bool UKismetMathLibrary::NotEqual_Vector4Vector4(const FVector4& A, const FVector4& B, float ErrorTolerance)
2069{
2070 return !A.Equals(B, ErrorTolerance);
2071}
2072
2074FVector4 UKismetMathLibrary::Vector4_Negated(const FVector4& A)
2075{
2076 return -A;
2077}
2078
2080void UKismetMathLibrary::Vector4_Assign(FVector4& A, const FVector4& InVector)
2081{
2082 A = InVector;
2083}
2084
2086void UKismetMathLibrary::Vector4_Set(FVector4& A, double X, double Y, double Z, double W)
2087{
2088 A.Set(X, Y, Z, W);
2089}
2090
2092FVector4 UKismetMathLibrary::Vector4_CrossProduct3(const FVector4& A, const FVector4& B)
2093{
2094 return A ^ B;
2095}
2096
2098double UKismetMathLibrary::Vector4_DotProduct(const FVector4& A, const FVector4& B)
2099{
2100 return Dot4(A, B);
2101}
2102
2104double UKismetMathLibrary::Vector4_DotProduct3(const FVector4& A, const FVector4& B)
2105{
2106 return Dot3(A, B);
2107}
2108
2110bool UKismetMathLibrary::Vector4_IsNAN(const FVector4& A)
2111{
2112 return A.ContainsNaN();
2113}
2114
2116bool UKismetMathLibrary::Vector4_IsNearlyZero3(const FVector4& A, float Tolerance)
2117{
2118 return A.IsNearlyZero3(Tolerance);
2119}
2120
2122bool UKismetMathLibrary::Vector4_IsZero(const FVector4& A)
2123{
2124 return (A.X == 0.0f) && (A.Y == 0.0f) && (A.Z == 0.0f) && (A.W == 0.0f);
2125}
2126
2128double UKismetMathLibrary::Vector4_Size(const FVector4& A)
2129{
2130 return A.Size();
2131}
2132
2134double UKismetMathLibrary::Vector4_SizeSquared(const FVector4& A)
2135{
2136 return A.SizeSquared();
2137}
2138
2140double UKismetMathLibrary::Vector4_Size3(const FVector4& A)
2141{
2142 return A.Size3();
2143}
2144
2146double UKismetMathLibrary::Vector4_SizeSquared3(const FVector4& A)
2147{
2148 return A.SizeSquared3();
2149}
2150
2152bool UKismetMathLibrary::Vector4_IsUnit3(const FVector4& A, float SquaredLenthTolerance)
2153{
2154 return A.IsUnit3(SquaredLenthTolerance);
2155}
2156
2158bool UKismetMathLibrary::Vector4_IsNormal3(const FVector4& A)
2159{
2160 return A.IsUnit3(UE_THRESH_VECTOR_NORMALIZED);
2161}
2162
2164FVector4 UKismetMathLibrary::Vector4_Normal3(const FVector4& A, float Tolerance)
2165{
2166 return A.GetSafeNormal(Tolerance);
2167}
2168
2170FVector4 UKismetMathLibrary::Vector4_NormalUnsafe3(const FVector4& A)
2171{
2172 return A.GetUnsafeNormal3();
2173}
2174
2176void UKismetMathLibrary::Vector4_Normalize3(FVector4& A, float Tolerance)
2177{
2178 A = A.GetSafeNormal(Tolerance);
2179}
2180
2182FVector4 UKismetMathLibrary::Vector4_MirrorByVector3(const FVector4& Direction, const FVector4& SurfaceNormal)
2183{
2184 return Direction.Reflect3(SurfaceNormal);
2185}
2186
2188FVector4 UKismetMathLibrary::TransformVector4(const FMatrix& Matrix, const FVector4& Vec4)
2189{
2190 return Matrix.TransformFVector4(Vec4);
2191}
2192
2193
2194/* FName
2195*****************************************************************************/
2196
2198bool UKismetMathLibrary::EqualEqual_NameName(FName A, FName B)
2199{
2200 return A == B;
2201}
2202
2204bool UKismetMathLibrary::NotEqual_NameName(FName A, FName B)
2205{
2206 return A != B;
2207}
2208
2210bool UKismetMathLibrary::EqualEqual_ObjectObject(class UObject* A, class UObject* B)
2211{
2212 return A == B;
2213}
2214
2216bool UKismetMathLibrary::NotEqual_ObjectObject(class UObject* A, class UObject* B)
2217{
2218 return A != B;
2219}
2220
2222bool UKismetMathLibrary::EqualEqual_ClassClass(class UClass* A, class UClass* B)
2223{
2224 return A == B;
2225}
2226
2228bool UKismetMathLibrary::NotEqual_ClassClass(class UClass* A, class UClass* B)
2229{
2230 return A != B;
2231}
2232
2233/* DateTime functions
2234*****************************************************************************/
2235
2237FDateTime UKismetMathLibrary::Add_DateTimeTimespan(FDateTime A, FTimespan B)
2238{
2239 return A + B;
2240}
2241
2243FDateTime UKismetMathLibrary::Subtract_DateTimeTimespan(FDateTime A, FTimespan B)
2244{
2245 return A - B;
2246}
2247
2249FTimespan UKismetMathLibrary::Subtract_DateTimeDateTime(FDateTime A, FDateTime B)
2250{
2251 return A - B;
2252}
2253
2255FDateTime UKismetMathLibrary::Add_DateTimeDateTime(FDateTime A, FDateTime B)
2256{
2257 return A + FTimespan(B.GetTicks());
2258}
2259
2261bool UKismetMathLibrary::EqualEqual_DateTimeDateTime(FDateTime A, FDateTime B)
2262{
2263 return A == B;
2264}
2265
2267bool UKismetMathLibrary::NotEqual_DateTimeDateTime(FDateTime A, FDateTime B)
2268{
2269 return A != B;
2270}
2271
2273bool UKismetMathLibrary::Greater_DateTimeDateTime(FDateTime A, FDateTime B)
2274{
2275 return A > B;
2276}
2277
2279bool UKismetMathLibrary::GreaterEqual_DateTimeDateTime(FDateTime A, FDateTime B)
2280{
2281 return A >= B;
2282}
2283
2285bool UKismetMathLibrary::Less_DateTimeDateTime(FDateTime A, FDateTime B)
2286{
2287 return A < B;
2288}
2289
2291bool UKismetMathLibrary::LessEqual_DateTimeDateTime(FDateTime A, FDateTime B)
2292{
2293 return A <= B;
2294}
2295
2297FDateTime UKismetMathLibrary::GetDate(FDateTime A)
2298{
2299 return A.GetDate();
2300}
2301
2303int32 UKismetMathLibrary::GetDay(FDateTime A)
2304{
2305 return A.GetDay();
2306}
2307
2309int32 UKismetMathLibrary::GetDayOfYear(FDateTime A)
2310{
2311 return A.GetDayOfYear();
2312}
2313
2315int32 UKismetMathLibrary::GetHour(FDateTime A)
2316{
2317 return A.GetHour();
2318}
2319
2321int32 UKismetMathLibrary::GetHour12(FDateTime A)
2322{
2323 return A.GetHour12();
2324}
2325
2327int32 UKismetMathLibrary::GetMillisecond(FDateTime A)
2328{
2329 return A.GetMillisecond();
2330}
2331
2333int32 UKismetMathLibrary::GetMinute(FDateTime A)
2334{
2335 return A.GetMinute();
2336}
2337
2339int32 UKismetMathLibrary::GetMonth(FDateTime A)
2340{
2341 return A.GetMonth();
2342}
2343
2345int32 UKismetMathLibrary::GetSecond(FDateTime A)
2346{
2347 return A.GetSecond();
2348}
2349
2351FTimespan UKismetMathLibrary::GetTimeOfDay(FDateTime A)
2352{
2353 return A.GetTimeOfDay();
2354}
2355
2357int32 UKismetMathLibrary::GetYear(FDateTime A)
2358{
2359 return A.GetYear();
2360}
2361
2363bool UKismetMathLibrary::IsAfternoon(FDateTime A)
2364{
2365 return A.IsAfternoon();
2366}
2367
2369bool UKismetMathLibrary::IsMorning(FDateTime A)
2370{
2371 return A.IsMorning();
2372}
2373
2375int32 UKismetMathLibrary::DaysInMonth(int32 Year, int32 Month)
2376{
2377 if ((Month < 1) || (Month > 12))
2378 {
2379 ReportError_DaysInMonth();
2380 return 0;
2381 }
2382
2384}
2385
2387int32 UKismetMathLibrary::DaysInYear(int32 Year)
2388{
2390}
2391
2393bool UKismetMathLibrary::IsLeapYear(int32 Year)
2394{
2396}
2397
2399FDateTime UKismetMathLibrary::DateTimeMaxValue()
2400{
2401 return FDateTime::MaxValue();
2402}
2403
2405FDateTime UKismetMathLibrary::DateTimeMinValue()
2406{
2407 return FDateTime::MinValue();
2408}
2409
2411FDateTime UKismetMathLibrary::Now()
2412{
2413 return FDateTime::Now();
2414}
2415
2417FDateTime UKismetMathLibrary::Today()
2418{
2419 return FDateTime::Today();
2420}
2421
2423FDateTime UKismetMathLibrary::UtcNow()
2424{
2425 return FDateTime::UtcNow();
2426}
2427
2429bool UKismetMathLibrary::DateTimeFromIsoString(FString IsoString, FDateTime& Result)
2430{
2431 return FDateTime::ParseIso8601(*IsoString, Result);
2432}
2433
2435bool UKismetMathLibrary::DateTimeFromString(FString DateTimeString, FDateTime& Result)
2436{
2437 return FDateTime::Parse(DateTimeString, Result);
2438}
2439
2441int64 UKismetMathLibrary::ToUnixTimestamp(const FDateTime& Time)
2442{
2443 return Time.ToUnixTimestamp();
2444}
2445
2447double UKismetMathLibrary::ToUnixTimestampDouble(const FDateTime& Time)
2448{
2449 return Time.ToUnixTimestampDecimal();
2450}
2451
2453FDateTime UKismetMathLibrary::FromUnixTimestamp(const int64 UnixTime)
2454{
2456}
2457
2458/* Timespan functions
2459*****************************************************************************/
2460
2462FTimespan UKismetMathLibrary::Add_TimespanTimespan(FTimespan A, FTimespan B)
2463{
2464 return A + B;
2465}
2466
2468FTimespan UKismetMathLibrary::Subtract_TimespanTimespan(FTimespan A, FTimespan B)
2469{
2470 return A - B;
2471}
2472
2474FTimespan UKismetMathLibrary::Multiply_TimespanFloat(FTimespan A, float Scalar)
2475{
2476 return A * Scalar;
2477}
2478
2480FTimespan UKismetMathLibrary::Divide_TimespanFloat(FTimespan A, float Scalar)
2481{
2482 return A / Scalar;
2483}
2484
2486bool UKismetMathLibrary::EqualEqual_TimespanTimespan(FTimespan A, FTimespan B)
2487{
2488 return A == B;
2489}
2490
2492bool UKismetMathLibrary::NotEqual_TimespanTimespan(FTimespan A, FTimespan B)
2493{
2494 return A != B;
2495}
2496
2498bool UKismetMathLibrary::Greater_TimespanTimespan(FTimespan A, FTimespan B)
2499{
2500 return A > B;
2501}
2502
2504bool UKismetMathLibrary::GreaterEqual_TimespanTimespan(FTimespan A, FTimespan B)
2505{
2506 return A >= B;
2507}
2508
2510bool UKismetMathLibrary::Less_TimespanTimespan(FTimespan A, FTimespan B)
2511{
2512 return A < B;
2513}
2514
2516bool UKismetMathLibrary::LessEqual_TimespanTimespan(FTimespan A, FTimespan B)
2517{
2518 return A <= B;
2519}
2520
2522int32 UKismetMathLibrary::GetDays(FTimespan A)
2523{
2524 return A.GetDays();
2525}
2526
2528FTimespan UKismetMathLibrary::GetDuration(FTimespan A)
2529{
2530 return A.GetDuration();
2531}
2532
2534int32 UKismetMathLibrary::GetHours(FTimespan A)
2535{
2536 return A.GetHours();
2537}
2538
2540int32 UKismetMathLibrary::GetMilliseconds(FTimespan A)
2541{
2542 return A.GetFractionMilli();
2543}
2544
2546int32 UKismetMathLibrary::GetMinutes(FTimespan A)
2547{
2548 return A.GetMinutes();
2549}
2550
2552int32 UKismetMathLibrary::GetSeconds(FTimespan A)
2553{
2554 return A.GetSeconds();
2555}
2556
2558double UKismetMathLibrary::GetTotalDays(FTimespan A)
2559{
2560 return A.GetTotalDays();
2561}
2562
2564double UKismetMathLibrary::GetTotalHours(FTimespan A)
2565{
2566 return A.GetTotalHours();
2567}
2568
2570double UKismetMathLibrary::GetTotalMilliseconds(FTimespan A)
2571{
2572 return A.GetTotalMilliseconds();
2573}
2574
2576double UKismetMathLibrary::GetTotalMinutes(FTimespan A)
2577{
2578 return A.GetTotalMinutes();
2579}
2580
2582double UKismetMathLibrary::GetTotalSeconds(FTimespan A)
2583{
2584 return A.GetTotalSeconds();
2585}
2586
2588FTimespan UKismetMathLibrary::TimespanMaxValue()
2589{
2590 return FTimespan::MaxValue();
2591}
2592
2594FTimespan UKismetMathLibrary::TimespanMinValue()
2595{
2596 return FTimespan::MinValue();
2597}
2598
2600float UKismetMathLibrary::TimespanRatio(FTimespan A, FTimespan B)
2601{
2602 return static_cast<float>(FTimespan::Ratio(A, B));
2603}
2604
2606FTimespan UKismetMathLibrary::TimespanZeroValue()
2607{
2608 return FTimespan::Zero();
2609}
2610
2612bool UKismetMathLibrary::TimespanFromString(FString TimespanString, FTimespan& Result)
2613{
2614 return FTimespan::Parse(TimespanString, Result);
2615}
2616
2617
2618/* K2 Utilities
2619*****************************************************************************/
2620
2622double UKismetMathLibrary::Conv_ByteToDouble(uint8 InByte)
2623{
2624 return (double)InByte;
2625}
2626
2628double UKismetMathLibrary::Conv_IntToDouble(int32 InInt)
2629{
2630 return (double)InInt;
2631}
2632
2634int64 UKismetMathLibrary::Conv_IntToInt64(int32 InInt)
2635{
2636 return (int64)InInt;
2637}
2638
2640uint8 UKismetMathLibrary::Conv_IntToByte(int32 InInt)
2641{
2642 return (uint8)InInt;
2643}
2644
2646int32 UKismetMathLibrary::Conv_Int64ToInt(int64 InInt)
2647{
2648 return (int32)InInt;
2649}
2650
2652float UKismetMathLibrary::Conv_DoubleToFloat(double InDouble)
2653{
2654 return (float)InDouble;
2655}
2656
2658double UKismetMathLibrary::Conv_FloatToDouble(float InFloat)
2659{
2660 return (double)InFloat;
2661}
2662
2664uint8 UKismetMathLibrary::Conv_Int64ToByte(int64 InInt)
2665{
2666 return (uint8)InInt;
2667}
2668
2670int64 UKismetMathLibrary::Conv_DoubleToInt64(double InDouble)
2671{
2672 return (int64)InDouble;
2673}
2674
2676double UKismetMathLibrary::Conv_Int64ToDouble(int64 InInt)
2677{
2678 return (double)InInt;
2679}
2680
2682FIntVector UKismetMathLibrary::Conv_IntToIntVector(int32 InInt)
2683{
2684 return FIntVector(InInt, InInt, InInt);
2685}
2686
2688FIntVector2 UKismetMathLibrary::Conv_IntToIntVector2(int32 InInt)
2689{
2690 return FIntVector2(InInt, InInt);
2691}
2692
2694FVector UKismetMathLibrary::Conv_IntToVector(int32 InInt)
2695{
2696 return FVector((float)InInt);
2697}
2698
2700bool UKismetMathLibrary::Conv_IntToBool(int32 InInt)
2701{
2702 return InInt == 0 ? false : true;
2703}
2704
2706int32 UKismetMathLibrary::Conv_BoolToInt(bool InBool)
2707{
2708 return InBool ? 1 : 0;
2709}
2710
2712uint8 UKismetMathLibrary::Conv_BoolToByte(bool InBool)
2713{
2714 return InBool ? 1 : 0;
2715}
2716
2718double UKismetMathLibrary::Conv_BoolToDouble(bool InBool)
2719{
2720 return InBool ? 1.0 : 0.0;
2721}
2722
2724int32 UKismetMathLibrary::Conv_ByteToInt(uint8 InByte)
2725{
2726 return (int32)InByte;
2727}
2728
2730int64 UKismetMathLibrary::Conv_ByteToInt64(uint8 InByte)
2731{
2732 return (int64)InByte;
2733}
2734
2736FTransform UKismetMathLibrary::Conv_RotatorToTransform(const FRotator& InRotator)
2737{
2738 return FTransform(InRotator);
2739}
2740
2742FVector UKismetMathLibrary::Conv_RotatorToVector(FRotator InRot)
2743{
2744 return InRot.Vector();
2745}
2746
2748FVector UKismetMathLibrary::Conv_IntVectorToVector(const FIntVector& InIntVector)
2749{
2750 return FVector(InIntVector);
2751}
2752
2754FVector2D UKismetMathLibrary::Conv_IntVector2ToVector2D(const FIntVector2& InIntVector2)
2755{
2756 return FVector2D(InIntVector2.X, InIntVector2.Y);
2757}
2758
2760FLinearColor UKismetMathLibrary::Conv_ColorToLinearColor(FColor InColor)
2761{
2762 return FLinearColor(InColor);
2763}
2764
2766FVector UKismetMathLibrary::Conv_DoubleToVector(double InDouble)
2767{
2768 return FVector(InDouble);
2769}
2770
2772FVector2D UKismetMathLibrary::Conv_DoubleToVector2D(double InDouble)
2773{
2774 return FVector2D(InDouble);
2775}
2776
2778FLinearColor UKismetMathLibrary::Conv_DoubleToLinearColor(double InDouble)
2779{
2780 // potential precision loss by float conversion
2781 float Value = static_cast<float>(InDouble);
2782 return FLinearColor(Value, Value, Value);
2783}
2784
2786FBox UKismetMathLibrary::MakeBox(FVector Min, FVector Max)
2787{
2788 return FBox(Min, Max);
2789}
2790
2792FBox2D UKismetMathLibrary::MakeBox2D(FVector2D Min, FVector2D Max)
2793{
2794 return FBox2D(Min, Max);
2795}
2796
2798FBoxSphereBounds UKismetMathLibrary::MakeBoxSphereBounds(FVector Origin, FVector BoxExtent, float SphereRadius)
2799{
2800 return FBoxSphereBounds(Origin, BoxExtent, SphereRadius);
2801}
2802
2804void UKismetMathLibrary::BreakBoxSphereBounds(const FBoxSphereBounds& InBoxSphereBounds, FVector& Origin, FVector& BoxExtent, float& SphereRadius)
2805{
2806 Origin = InBoxSphereBounds.Origin;
2807 BoxExtent = InBoxSphereBounds.BoxExtent;
2808 SphereRadius = (float)InBoxSphereBounds.SphereRadius;
2809}
2810
2812FRotator UKismetMathLibrary::MakeRotator(float Roll, float Pitch, float Yaw)
2813{
2814 return FRotator(Pitch,Yaw,Roll);
2815}
2816
2818FRotator UKismetMathLibrary::FindLookAtRotation(const FVector& Start, const FVector& Target)
2819{
2820 return MakeRotFromX(Target - Start);
2821}
2822
2824FRotator UKismetMathLibrary::MakeRotFromX(const FVector& X)
2825{
2826 return FRotationMatrix::MakeFromX(X).Rotator();
2827}
2828
2830FRotator UKismetMathLibrary::MakeRotFromY(const FVector& Y)
2831{
2832 return FRotationMatrix::MakeFromY(Y).Rotator();
2833}
2834
2836FRotator UKismetMathLibrary::MakeRotFromZ(const FVector& Z)
2837{
2838 return FRotationMatrix::MakeFromZ(Z).Rotator();
2839}
2840
2842FRotator UKismetMathLibrary::MakeRotFromXY(const FVector& X, const FVector& Y)
2843{
2844 return FRotationMatrix::MakeFromXY(X, Y).Rotator();
2845}
2846
2848FRotator UKismetMathLibrary::MakeRotFromXZ(const FVector& X, const FVector& Z)
2849{
2850 return FRotationMatrix::MakeFromXZ(X, Z).Rotator();
2851}
2852
2854FRotator UKismetMathLibrary::MakeRotFromYX(const FVector& Y, const FVector& X)
2855{
2856 return FRotationMatrix::MakeFromYX(Y, X).Rotator();
2857}
2858
2860FRotator UKismetMathLibrary::MakeRotFromYZ(const FVector& Y, const FVector& Z)
2861{
2862 return FRotationMatrix::MakeFromYZ(Y, Z).Rotator();
2863}
2864
2866FRotator UKismetMathLibrary::MakeRotFromZX(const FVector& Z, const FVector& X)
2867{
2868 return FRotationMatrix::MakeFromZX(Z, X).Rotator();
2869}
2870
2872FRotator UKismetMathLibrary::MakeRotFromZY(const FVector& Z, const FVector& Y)
2873{
2874 return FRotationMatrix::MakeFromZY(Z, Y).Rotator();
2875}
2876
2878void UKismetMathLibrary::BreakRotator(FRotator InRot, float& Roll, float& Pitch, float& Yaw)
2879{
2880 Pitch = static_cast<float>(InRot.Pitch);
2881 Yaw = static_cast<float>(InRot.Yaw);
2882 Roll = static_cast<float>(InRot.Roll);
2883}
2884
2885
2886/* FMatrix
2887*****************************************************************************/
2888
2890FTransform UKismetMathLibrary::Conv_MatrixToTransform(const FMatrix& InMatrix)
2891{
2892 return FTransform(InMatrix);
2893}
2894
2896FRotator UKismetMathLibrary::Conv_MatrixToRotator(const FMatrix& InMatrix)
2897{
2898 return InMatrix.Rotator();
2899}
2900
2902FVector UKismetMathLibrary::Matrix_GetOrigin(const FMatrix& InMatrix)
2903{
2904 return InMatrix.GetOrigin();
2905}
2906
2908FMatrix UKismetMathLibrary::Matrix_Identity()
2909{
2910 return FMatrix::Identity;
2911}
2912
2914FMatrix UKismetMathLibrary::Multiply_MatrixMatrix(const FMatrix& A, const FMatrix& B)
2915{
2916 return A * B;
2917}
2918
2920FMatrix UKismetMathLibrary::Add_MatrixMatrix(const FMatrix& A, const FMatrix& B)
2921{
2922 return A + B;
2923}
2924
2926FMatrix UKismetMathLibrary::Multiply_MatrixFloat(const FMatrix& A, double B)
2927{
2928 return A * B;
2929}
2930
2932bool UKismetMathLibrary::EqualEqual_MatrixMatrix(const FMatrix& A, const FMatrix& B, float Tolerance /*= KINDA_SMALL_NUMBER*/)
2933{
2934 return A.Equals(B, Tolerance);
2935}
2936
2938bool UKismetMathLibrary::NotEqual_MatrixMatrix(const FMatrix& A, const FMatrix& B, float Tolerance /*= KINDA_SMALL_NUMBER*/)
2939{
2940 return !(A.Equals(B, Tolerance));
2941}
2942
2944FVector4 UKismetMathLibrary::Matrix_TransformVector4(const FMatrix& M, FVector4 V)
2945{
2946 return M.TransformFVector4(V);
2947}
2948
2950FVector4 UKismetMathLibrary::Matrix_TransformPosition(const FMatrix& M, FVector V)
2951{
2952 return M.TransformPosition(V);
2953}
2954
2956FVector UKismetMathLibrary::Matrix_InverseTransformPosition(const FMatrix& M, FVector V)
2957{
2958 return M.InverseTransformPosition(V);
2959}
2960
2962FVector4 UKismetMathLibrary::Matrix_TransformVector(const FMatrix& M, FVector V)
2963{
2964 return M.TransformVector(V);
2965}
2966
2968FVector UKismetMathLibrary::Matrix_InverseTransformVector(const FMatrix& M, FVector V)
2969{
2970 return M.InverseTransformVector(V);
2971}
2972
2974FMatrix UKismetMathLibrary::Matrix_GetTransposed(const FMatrix& M)
2975{
2976 return M.GetTransposed();
2977}
2978
2980float UKismetMathLibrary::Matrix_GetDeterminant(const FMatrix& M)
2981{
2982 return static_cast<float>(M.Determinant());
2983}
2984
2986float UKismetMathLibrary::Matrix_GetRotDeterminant(const FMatrix& M)
2987{
2988 return static_cast<float>(M.RotDeterminant());
2989}
2990
2992FMatrix UKismetMathLibrary::Matrix_GetInverse(const FMatrix& M)
2993{
2994 return M.Inverse();
2995}
2996
2998FMatrix UKismetMathLibrary::Matrix_GetTransposeAdjoint(const FMatrix& M)
2999{
3000 return M.TransposeAdjoint();
3001}
3002
3004void UKismetMathLibrary::Matrix_RemoveScaling(FMatrix& M, float Tolerance /*= SMALL_NUMBER*/)
3005{
3006 M.RemoveScaling(Tolerance);
3007}
3008
3010FMatrix UKismetMathLibrary::Matrix_GetMatrixWithoutScale(const FMatrix& M, float Tolerance /*= SMALL_NUMBER*/)
3011{
3012 return M.GetMatrixWithoutScale(Tolerance);
3013}
3014
3016FVector UKismetMathLibrary::Matrix_GetScaleVector(const FMatrix& M, float Tolerance /*= SMALL_NUMBER*/)
3017{
3018 return M.GetScaleVector(Tolerance);
3019}
3020
3022FMatrix UKismetMathLibrary::Matrix_RemoveTranslation(const FMatrix& M)
3023{
3024 return M.RemoveTranslation();
3025}
3026
3028FMatrix UKismetMathLibrary::Matrix_ConcatenateTranslation(const FMatrix& M, FVector Translation)
3029{
3030 return M.ConcatTranslation(Translation);
3031}
3032
3034bool UKismetMathLibrary::Matrix_ContainsNaN(const FMatrix& M)
3035{
3036 return M.ContainsNaN();
3037}
3038
3040FMatrix UKismetMathLibrary::Matrix_ScaleTranslation(const FMatrix& M, FVector Scale3D)
3041{
3044 return ScaledMatrix;
3045}
3046
3048float UKismetMathLibrary::Matrix_GetMaximumAxisScale(const FMatrix& M)
3049{
3050 return static_cast<float>(M.GetMaximumAxisScale());
3051}
3052
3054FMatrix UKismetMathLibrary::Matrix_ApplyScale(const FMatrix& M, float Scale)
3055{
3056 return M.ApplyScale(Scale);
3057}
3058
3060FVector UKismetMathLibrary::Matrix_GetScaledAxis(const FMatrix& M, TEnumAsByte<EAxis::Type> Axis)
3061{
3062 return M.GetScaledAxis(Axis);
3063}
3064
3066void UKismetMathLibrary::Matrix_GetScaledAxes(const FMatrix& M, FVector &X, FVector &Y, FVector &Z)
3067{
3068 M.GetScaledAxes(X, Y, Z);
3069}
3070
3072FVector UKismetMathLibrary::Matrix_GetUnitAxis(const FMatrix& M, TEnumAsByte<EAxis::Type> Axis)
3073{
3074 return M.GetUnitAxis(Axis);
3075}
3076
3078void UKismetMathLibrary::Matrix_GetUnitAxes(const FMatrix& M, FVector &X, FVector &Y, FVector &Z)
3079{
3080 M.GetUnitAxes(X, Y, Z);
3081}
3082
3084void UKismetMathLibrary::Matrix_SetAxis(FMatrix& M, TEnumAsByte<EAxis::Type> Axis, FVector AxisVector)
3085{
3086 M.SetAxis(StaticCast<int32>(Axis), AxisVector);
3087}
3088
3090void UKismetMathLibrary::Matrix_SetOrigin(FMatrix& M, FVector NewOrigin)
3091{
3092 M.SetOrigin(NewOrigin);
3093}
3094
3096FVector UKismetMathLibrary::Matrix_GetColumn(const FMatrix& M, TEnumAsByte<EMatrixColumns::Type> Column)
3097{
3098 return M.GetColumn(StaticCast<int32>(Column));
3099}
3100
3102void UKismetMathLibrary::Matrix_SetColumn(FMatrix& M, TEnumAsByte<EMatrixColumns::Type> Column, FVector Value)
3103{
3104 M.SetColumn(StaticCast<int32>(Column), Value);
3105}
3106
3108FRotator UKismetMathLibrary::Matrix_GetRotator(const FMatrix& M)
3109{
3110 return M.Rotator();
3111}
3112
3114FQuat UKismetMathLibrary::Matrix_ToQuat(const FMatrix& M)
3115{
3116 return M.ToQuat();
3117}
3118
3120bool UKismetMathLibrary::Matrix_GetFrustumNearPlane(const FMatrix& M, FPlane& OutPlane)
3121{
3122 return M.GetFrustumNearPlane(OutPlane);
3123}
3124
3126bool UKismetMathLibrary::Matrix_GetFrustumFarPlane(const FMatrix& M, FPlane& OutPlane)
3127{
3128 return M.GetFrustumFarPlane(OutPlane);
3129}
3130
3132bool UKismetMathLibrary::Matrix_GetFrustumLeftPlane(const FMatrix& M, FPlane& OutPlane)
3133{
3134 return M.GetFrustumLeftPlane(OutPlane);
3135}
3136
3138bool UKismetMathLibrary::Matrix_GetFrustumRightPlane(const FMatrix& M, FPlane& OutPlane)
3139{
3140 return M.GetFrustumRightPlane(OutPlane);
3141}
3142
3144bool UKismetMathLibrary::Matrix_GetFrustumTopPlane(const FMatrix& M, FPlane& OutPlane)
3145{
3146 return M.GetFrustumTopPlane(OutPlane);
3147}
3148
3150bool UKismetMathLibrary::Matrix_GetFrustumBottomPlane(const FMatrix& M, FPlane& OutPlane)
3151{
3152 return M.GetFrustumBottomPlane(OutPlane);
3153}
3154
3156FMatrix UKismetMathLibrary::Matrix_Mirror(const FMatrix& M, TEnumAsByte<EAxis::Type> MirrorAxis, TEnumAsByte<EAxis::Type> FlipAxis)
3157{
3159 MirrorMatrix.Mirror(MirrorAxis, FlipAxis);
3160 return MirrorMatrix;
3161}
3162
3163/* FQuat
3164*****************************************************************************/
3165
3167FQuat UKismetMathLibrary::Quat_Identity()
3168{
3169 return FQuat::Identity;
3170}
3171
3173bool UKismetMathLibrary::EqualEqual_QuatQuat(const FQuat& A, const FQuat& B, float Tolerance)
3174{
3175 return A.Equals(B, Tolerance);
3176}
3177
3179bool UKismetMathLibrary::NotEqual_QuatQuat(const FQuat& A, const FQuat& B, float Tolerance)
3180{
3181 return !A.Equals(B, Tolerance);
3182}
3183
3185FQuat UKismetMathLibrary::Add_QuatQuat(const FQuat& A, const FQuat& B)
3186{
3187 return A + B;
3188}
3189
3191FQuat UKismetMathLibrary::Subtract_QuatQuat(const FQuat& A, const FQuat& B)
3192{
3193 return A - B;
3194}
3195
3197FQuat UKismetMathLibrary::Multiply_QuatQuat(const FQuat& A, const FQuat& B)
3198{
3199 return A * B;
3200}
3201
3203FQuat UKismetMathLibrary::MakeQuat(float X, float Y, float Z, float W)
3204{
3205 return FQuat(X, Y, Z, W);
3206}
3207
3209void UKismetMathLibrary::BreakQuat(const FQuat& InQuat, float& X, float& Y, float& Z, float& W)
3210{
3211 X = static_cast<float>(InQuat.X);
3212 Y = static_cast<float>(InQuat.Y);
3213 Z = static_cast<float>(InQuat.Z);
3214 W = static_cast<float>(InQuat.W);
3215}
3216
3218bool UKismetMathLibrary::Quat_IsIdentity(const FQuat& Q, float Tolerance)
3219{
3220 return Q.IsIdentity(Tolerance);
3221}
3222
3224bool UKismetMathLibrary::Quat_IsNormalized(const FQuat& Q)
3225{
3226 return Q.IsNormalized();
3227}
3228
3230bool UKismetMathLibrary::Quat_IsFinite(const FQuat& Q)
3231{
3232 return !Q.ContainsNaN();
3233}
3234
3236bool UKismetMathLibrary::Quat_IsNonFinite(const FQuat& Q)
3237{
3238 return Q.ContainsNaN();
3239}
3240
3242float UKismetMathLibrary::Quat_AngularDistance(const FQuat& A, const FQuat& B)
3243{
3244 return static_cast<float>(A.AngularDistance(B));
3245}
3246
3248void UKismetMathLibrary::Quat_EnforceShortestArcWith(FQuat& A, const FQuat& B)
3249{
3250 A.EnforceShortestArcWith(B);
3251}
3252
3254FQuat UKismetMathLibrary::Quat_GetShortestArcWith(const FQuat& A, const FQuat& B)
3255{
3256 return A.GetShortestArcWith(B);
3257}
3258
3260FVector UKismetMathLibrary::Quat_Euler(const FQuat& Q)
3261{
3262 return Q.Euler();
3263}
3264
3266FQuat UKismetMathLibrary::Quat_Exp(const FQuat& Q)
3267{
3268 return Q.Exp();
3269}
3270
3272float UKismetMathLibrary::Quat_GetAngle(const FQuat& Q)
3273{
3274 return static_cast<float>(Q.GetAngle());
3275}
3276
3278FVector UKismetMathLibrary::Quat_GetAxisX(const FQuat& Q)
3279{
3280 return Q.GetAxisX();
3281}
3282
3284FVector UKismetMathLibrary::Quat_GetAxisY(const FQuat& Q)
3285{
3286 return Q.GetAxisY();
3287}
3288
3290FVector UKismetMathLibrary::Quat_GetAxisZ(const FQuat& Q)
3291{
3292 return Q.GetAxisZ();
3293}
3294
3296FVector UKismetMathLibrary::Quat_VectorForward(const FQuat& Q)
3297{
3298 return Q.GetForwardVector();
3299}
3300
3302FVector UKismetMathLibrary::Quat_VectorRight(const FQuat& Q)
3303{
3304 return Q.GetRightVector();
3305}
3306
3308FVector UKismetMathLibrary::Quat_VectorUp(const FQuat& Q)
3309{
3310 return Q.GetUpVector();
3311}
3312
3314void UKismetMathLibrary::Quat_Normalize(FQuat& Q, float Tolerance)
3315{
3316 Q.Normalize(Tolerance);
3317}
3318
3320FQuat UKismetMathLibrary::Quat_Normalized(const FQuat& Q, float Tolerance)
3321{
3322 return Q.GetNormalized(Tolerance);
3323}
3324
3326FVector UKismetMathLibrary::Quat_GetRotationAxis(const FQuat& Q)
3327{
3328 return Q.GetRotationAxis();
3329}
3330
3332FQuat UKismetMathLibrary::Quat_Inversed(const FQuat& Q)
3333{
3334 return Q.Inverse();
3335}
3336
3338FQuat UKismetMathLibrary::Quat_Log(const FQuat& Q)
3339{
3340 return Q.Log();
3341}
3342
3344void UKismetMathLibrary::Quat_SetComponents(FQuat& Q, float X, float Y, float Z, float W)
3345{
3346 Q.X = X;
3347 Q.Y = Y;
3348 Q.Z = Z;
3349 Q.W = W;
3350}
3351
3353void UKismetMathLibrary::Quat_SetFromEuler(FQuat& Q, const FVector& Euler)
3354{
3355 Q = FQuat::MakeFromEuler(Euler);
3356}
3357
3359FQuat UKismetMathLibrary::Quat_MakeFromEuler(const FVector& Euler)
3360{
3361 return FQuat::MakeFromEuler(Euler);
3362}
3363
3365FRotator UKismetMathLibrary::Quat_Rotator(const FQuat& Q)
3366{
3367 return Q.Rotator();
3368}
3369
3371FVector UKismetMathLibrary::Quat_ToRotationVector(const FQuat& Q)
3372{
3374}
3375
3377FQuat UKismetMathLibrary::Quat_MakeFromRotationVector(const FVector& V)
3378{
3380}
3381
3383FQuat UKismetMathLibrary::Conv_RotatorToQuaternion(FRotator InRot)
3384{
3385 return InRot.Quaternion();
3386}
3387
3389float UKismetMathLibrary::Quat_Size(const FQuat& Q)
3390{
3391 return static_cast<float>(Q.Size());
3392}
3393
3395float UKismetMathLibrary::Quat_SizeSquared(const FQuat& Q)
3396{
3397 return static_cast<float>(Q.SizeSquared());
3398}
3399
3401FVector UKismetMathLibrary::Quat_RotateVector(const FQuat& Q, const FVector& V)
3402{
3403 return Q.RotateVector(V);
3404}
3405
3407FVector UKismetMathLibrary::Quat_UnrotateVector(const FQuat& Q, const FVector& V)
3408{
3409 return Q.UnrotateVector(V);
3410}
3411
3413FQuat UKismetMathLibrary::Quat_Slerp(const FQuat& A, const FQuat& B, double Alpha)
3414{
3415 return FQuat::Slerp(A, B, Alpha);
3416}
3417
3419FQuat UKismetMathLibrary::Quat_FindBetweenVectors(FVector Start, FVector End)
3420{
3421 return FQuat::FindBetweenVectors(Start, End);
3422}
3423
3425FQuat UKismetMathLibrary::Quat_FindBetweenNormals(FVector StartNormal, FVector EndNormal)
3426{
3428}
3429
3430
3431/* FLinearColor
3432*****************************************************************************/
3433
3434// Constants
3435
3437FLinearColor UKismetMathLibrary::LinearColor_White()
3438{
3439 return FLinearColor::White;
3440}
3441
3443FLinearColor UKismetMathLibrary::LinearColor_Gray()
3444{
3445 return FLinearColor::Gray;
3446}
3447
3449FLinearColor UKismetMathLibrary::LinearColor_Black()
3450{
3451 return FLinearColor::Black;
3452}
3453
3455FLinearColor UKismetMathLibrary::LinearColor_Red()
3456{
3457 return FLinearColor::Red;
3458}
3459
3461FLinearColor UKismetMathLibrary::LinearColor_Green()
3462{
3463 return FLinearColor::Green;
3464}
3465
3467FLinearColor UKismetMathLibrary::LinearColor_Blue()
3468{
3469 return FLinearColor::Blue;
3470}
3471
3473FLinearColor UKismetMathLibrary::LinearColor_Yellow()
3474{
3475 return FLinearColor::Yellow;
3476}
3477
3479FLinearColor UKismetMathLibrary::LinearColor_Transparent()
3480{
3482}
3483
3484// Functions
3485
3487FLinearColor UKismetMathLibrary::MakeColor(float R, float G, float B, float A)
3488{
3489 return FLinearColor(R,G,B,A);
3490}
3491
3493void UKismetMathLibrary::BreakColor(FLinearColor InColor, float& R, float& G, float& B, float& A)
3494{
3495 R = InColor.R;
3496 G = InColor.G;
3497 B = InColor.B;
3498 A = InColor.A;
3499}
3500
3502void UKismetMathLibrary::LinearColor_Set(FLinearColor& InOutColor, FLinearColor InColor)
3503{
3504 InOutColor.R = InColor.R;
3505 InOutColor.G = InColor.G;
3506 InOutColor.B = InColor.B;
3507 InOutColor.A = InColor.A;
3508}
3509
3511void UKismetMathLibrary::LinearColor_SetRGBA(FLinearColor& InOutColor, float R, float G, float B, float A)
3512{
3513 InOutColor.R = R;
3514 InOutColor.G = G;
3515 InOutColor.B = B;
3516 InOutColor.A = A;
3517}
3518
3520void UKismetMathLibrary::LinearColor_SetFromHSV(FLinearColor& InOutColor, float H, float S, float V, float A)
3521{
3522 const FLinearColor HSV(H, S, V, A);
3523 InOutColor = HSV.HSVToLinearRGB();
3524}
3525
3527void UKismetMathLibrary::LinearColor_SetFromSRGB(FLinearColor& InOutColor, const FColor& InSRGB)
3528{
3530}
3531
3533void UKismetMathLibrary::LinearColor_SetFromPow22(FLinearColor& InOutColor, const FColor& InColor)
3534{
3536}
3537
3539void UKismetMathLibrary::LinearColor_SetTemperature(FLinearColor& InOutColor, float InTemperature)
3540{
3542}
3543
3545void UKismetMathLibrary::LinearColor_SetRandomHue(FLinearColor& InOutColor)
3546{
3548}
3549
3551FLinearColor UKismetMathLibrary::HSVToRGB(float H, float S, float V, float A)
3552{
3553 const FLinearColor HSV(H, S, V, A);
3554 return HSV.HSVToLinearRGB();
3555}
3556
3558FColor UKismetMathLibrary::LinearColor_ToRGBE(FLinearColor InLinearColor)
3559{
3560 return InLinearColor.ToRGBE();
3561}
3562
3564FVector UKismetMathLibrary::Conv_LinearColorToVector(FLinearColor InLinearColor)
3565{
3566 return FVector(InLinearColor);
3567}
3568
3570FColor UKismetMathLibrary::Conv_LinearColorToColor(FLinearColor InLinearColor, bool InUseSRGB)
3571{
3572 return InLinearColor.ToFColor(InUseSRGB);
3573}
3574
3576void UKismetMathLibrary::RGBToHSV(FLinearColor InColor, float& H, float& S, float& V, float& A)
3577{
3578 const FLinearColor HSV(InColor.LinearRGBToHSV());
3579 H = HSV.R;
3580 S = HSV.G;
3581 V = HSV.B;
3582 A = HSV.A;
3583}
3584
3586void UKismetMathLibrary::HSVToRGB_Vector(FLinearColor HSV, FLinearColor& RGB)
3587{
3588 RGB = HSV.HSVToLinearRGB();
3589}
3590
3592FLinearColor UKismetMathLibrary::HSVToRGBLinear(FLinearColor HSV)
3593{
3594 return HSV.HSVToLinearRGB();
3595}
3596
3598void UKismetMathLibrary::RGBToHSV_Vector(FLinearColor RGB, FLinearColor& HSV)
3599{
3600 HSV = RGB.LinearRGBToHSV();
3601}
3602
3604FLinearColor UKismetMathLibrary::RGBLinearToHSV(FLinearColor RGB)
3605{
3606 return RGB.LinearRGBToHSV();
3607}
3608
3610FColor UKismetMathLibrary::LinearColor_Quantize(FLinearColor InColor)
3611{
3612 // @todo remove LinearColor_Quantize from Kismet?
3613 // QuantizeRound should almost always be used instead
3614 // call QuantizeFloor to match old behavior :
3615 return InColor.QuantizeFloor();
3616}
3617
3619FColor UKismetMathLibrary::LinearColor_QuantizeRound(FLinearColor InColor)
3620{
3621 return InColor.QuantizeRound();
3622}
3623
3625FLinearColor UKismetMathLibrary::LinearColor_Desaturated(FLinearColor InColor, float InDesaturation)
3626{
3627 return InColor.Desaturate(InDesaturation);
3628}
3629
3631float UKismetMathLibrary::LinearColor_Distance(FLinearColor C1, FLinearColor C2)
3632{
3633 return FLinearColor::Dist(C1, C2);
3634}
3635
3637FLinearColor UKismetMathLibrary::LinearColor_ToNewOpacity(FLinearColor InColor, float InOpacity)
3638{
3639 return InColor.CopyWithNewOpacity(InOpacity);
3640}
3641
3643float UKismetMathLibrary::LinearColor_GetLuminance(FLinearColor InColor)
3644{
3645 return InColor.GetLuminance();
3646}
3647
3649float UKismetMathLibrary::LinearColor_GetMax(FLinearColor InColor)
3650{
3651 return InColor.GetMax();
3652}
3653
3655float UKismetMathLibrary::LinearColor_GetMin(FLinearColor InColor)
3656{
3657 return InColor.GetMin();
3658}
3659
3661FLinearColor UKismetMathLibrary::CInterpTo(FLinearColor Current, FLinearColor Target, float DeltaTime, float InterpSpeed)
3662{
3663 return FMath::CInterpTo(Current, Target, DeltaTime, InterpSpeed);
3664}
3665
3667FLinearColor UKismetMathLibrary::LinearColorLerp(FLinearColor A, FLinearColor B, float Alpha)
3668{
3669 return A + Alpha * (B - A);
3670}
3671
3673FLinearColor UKismetMathLibrary::LinearColorLerpUsingHSV(FLinearColor A, FLinearColor B, float Alpha)
3674{
3675 return FLinearColor::LerpUsingHSV(A, B, Alpha);
3676}
3677
3679bool UKismetMathLibrary::LinearColor_IsNearEqual(FLinearColor A, FLinearColor B, float Tolerance)
3680{
3681 return A.Equals(B, Tolerance);
3682}
3683
3685bool UKismetMathLibrary::EqualEqual_LinearColorLinearColor(FLinearColor A, FLinearColor B)
3686{
3687 return A == B;
3688}
3689
3691bool UKismetMathLibrary::NotEqual_LinearColorLinearColor(FLinearColor A, FLinearColor B)
3692{
3693 return A != B;
3694}
3695
3697FLinearColor UKismetMathLibrary::Add_LinearColorLinearColor(FLinearColor A, FLinearColor B)
3698{
3699 return A + B;
3700}
3701
3703FLinearColor UKismetMathLibrary::Subtract_LinearColorLinearColor(FLinearColor A, FLinearColor B)
3704{
3705 return A - B;
3706}
3707
3709FLinearColor UKismetMathLibrary::Multiply_LinearColorLinearColor(FLinearColor A, FLinearColor B)
3710{
3711 return A * B;
3712}
3713
3715FLinearColor UKismetMathLibrary::Multiply_LinearColorFloat(FLinearColor A, float B)
3716{
3717 return A * B;
3718}
3719
3721FLinearColor UKismetMathLibrary::Divide_LinearColorLinearColor(FLinearColor A, FLinearColor B)
3722{
3723 return A / B;
3724}
3725
3727FString UKismetMathLibrary::ToHex_LinearColor(FLinearColor InColor)
3728{
3729 return InColor.ToFColor(true).ToHex();
3730}
3731
3733FString UKismetMathLibrary::SelectString(const FString& A, const FString& B, bool bSelectA)
3734{
3735 return bSelectA ? A : B;
3736}
3737
3739FText UKismetMathLibrary::SelectText(const FText A, const FText B, bool bSelectA)
3740{
3741 return bSelectA ? A : B;
3742}
3743
3745FName UKismetMathLibrary::SelectName(const FName A, const FName B, bool bSelectA)
3746{
3747 return bSelectA ? A : B;
3748}
3749
3751int32 UKismetMathLibrary::SelectInt(int32 A, int32 B, bool bSelectA)
3752{
3753 return bSelectA ? A : B;
3754}
3755
3757double UKismetMathLibrary::SelectFloat(double A, double B, bool bSelectA)
3758{
3759 return bSelectA ? A : B;
3760}
3761
3763FVector UKismetMathLibrary::SelectVector(FVector A, FVector B, bool bSelectA)
3764{
3765 return bSelectA ? A : B;
3766}
3767
3769FRotator UKismetMathLibrary::SelectRotator(FRotator A, FRotator B, bool bSelectA)
3770{
3771 return bSelectA ? A : B;
3772}
3773
3775FLinearColor UKismetMathLibrary::SelectColor(FLinearColor A, FLinearColor B, bool bSelectA)
3776{
3777 return bSelectA ? A : B;
3778}
3779
3781FTransform UKismetMathLibrary::SelectTransform(const FTransform& A, const FTransform& B, bool bSelectA)
3782{
3783 return bSelectA ? A : B;
3784}
3785
3787UObject* UKismetMathLibrary::SelectObject(UObject* A, UObject* B, bool bSelectA)
3788{
3789 return bSelectA ? A : B;
3790}
3791
3793UClass* UKismetMathLibrary::SelectClass(UClass* A, UClass* B, bool bSelectA)
3794{
3795 return bSelectA ? A : B;
3796}
3797
3799bool UKismetMathLibrary::PointsAreCoplanar(const TArray<FVector>& Points, float Tolerance)
3800{
3801 return FMath::PointsAreCoplanar(Points, Tolerance);
3802}
@ ForceInitToZero
Definition CoreMiscDefines.h:156
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 KISMET_MATH_INLINE
Definition KismetMathLibrary.inl:10
UE::Math::TIntVector2< int32 > FIntVector2
Definition MathFwd.h:91
UE::Math::TBox< double > FBox
Definition MathFwd.h:55
FBoxSphereBounds3d FBoxSphereBounds
Definition MathFwd.h:142
UE::Math::TQuat< double > FQuat
Definition MathFwd.h:50
UE::Math::TTransform< double > FTransform
Definition MathFwd.h:53
UE::Math::TVector4< double > FVector4
Definition MathFwd.h:49
UE::Math::TVector2< double > FVector2D
Definition MathFwd.h:48
FInt32Vector3 FIntVector
Definition MathFwd.h:115
FInt32Point FIntPoint
Definition MathFwd.h:124
UE::Math::TRotator< double > FRotator
Definition MathFwd.h:57
UE::Math::TBox2< double > FBox2D
Definition MathFwd.h:56
USkinnedMeshComponent float
Definition SkinnedMeshComponent.h:60
#define UE_DOUBLE_PI
Definition UnrealMathUtility.h:138
#define UE_SMALL_NUMBER
Definition UnrealMathUtility.h:130
#define UE_THRESH_VECTOR_NORMALIZED
Definition UnrealMathUtility.h:214
UE_FORCEINLINE_HINT T Dot4(const UE::Math::TVector4< T > &V1, const UE::Math::TVector4< T > &V2)
Definition Vector4.h:1052
UE_FORCEINLINE_HINT T Dot3(const UE::Math::TVector4< T > &V1, const UE::Math::TVector4< T > &V2)
Definition Vector4.h:1018
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition NameTypes.h:617
Definition Text.h:385
Definition Array.h:670
Definition EnumAsByte.h:22
Definition Class.h:3793
Definition Object.h:95
Scale
Definition MidiNoteQuantizer.h:14
@ Z
Definition Axis.h:15
@ Y
Definition Axis.h:14
@ Alpha
Definition ImportanceSamplingLibrary.h:29
const TCHAR * B(bool b)
Definition SkinnedMeshComponent.cpp:386
@ false
Definition radaudio_common.h:23
Definition Color.h:486
CORE_API FString ToHex() const
Definition Color.cpp:579
Definition DateTime.h:76
static FDateTime MaxValue()
Definition DateTime.h:656
static CORE_API bool Parse(const FString &DateTimeString, FDateTime &OutDateTime)
Definition DateTime.cpp:388
FDateTime GetDate() const
Definition DateTime.h:261
static CORE_API int32 DaysInYear(int32 Year)
Definition DateTime.cpp:355
static CORE_API bool IsLeapYear(int32 Year)
Definition DateTime.cpp:366
static CORE_API bool ParseIso8601(const TCHAR *DateTimeString, FDateTime &OutDateTime)
Definition DateTime.cpp:716
static CORE_API FDateTime Now()
Definition DateTime.cpp:377
static CORE_API int32 DaysInMonth(int32 Year, int32 Month)
Definition DateTime.cpp:342
static CORE_API FDateTime UtcNow()
Definition DateTime.cpp:980
static FDateTime MinValue()
Definition DateTime.h:668
static FDateTime FromUnixTimestamp(int64 UnixTime)
Definition DateTime.h:620
static FDateTime Today()
Definition DateTime.h:739
Definition Color.h:48
float A
Definition Color.h:56
static CORE_API const FLinearColor White
Definition Color.h:456
static CORE_API FLinearColor FromPow22Color(const FColor &Color)
Definition Color.cpp:74
UE_FORCEINLINE_HINT float GetMax() const
Definition Color.h:390
float G
Definition Color.h:54
static CORE_API const FLinearColor Green
Definition Color.h:461
float B
Definition Color.h:55
CORE_API FLinearColor Desaturate(float Desaturation) const
Definition Color.cpp:294
constexpr FLinearColor CopyWithNewOpacity(float NewOpacity) const
Definition Color.h:290
CORE_API FLinearColor LinearRGBToHSV() const
Definition Color.cpp:383
static CORE_API const FLinearColor Yellow
Definition Color.h:463
static CORE_API const FLinearColor Blue
Definition Color.h:462
static CORE_API const FLinearColor Transparent
Definition Color.h:459
UE_FORCEINLINE_HINT float GetMin() const
Definition Color.h:406
static CORE_API const FLinearColor Red
Definition Color.h:460
static CORE_API FLinearColor MakeFromColorTemperature(float Temp)
Definition Color.cpp:504
CORE_API FLinearColor HSVToLinearRGB() const
Definition Color.cpp:411
static CORE_API FLinearColor MakeRandomColor()
Definition Color.cpp:488
static CORE_API const FLinearColor Black
Definition Color.h:458
static UE_FORCEINLINE_HINT FLinearColor FromSRGBColor(const FColor &Color)
Definition Color.h:123
FColor QuantizeRound() const
Definition Color.h:789
static float Dist(const FLinearColor &V1, const FLinearColor &V2)
Definition Color.h:320
CORE_API float GetLuminance() const
Definition Color.cpp:301
FColor QuantizeFloor() const
Definition Color.h:800
float R
Definition Color.h:53
static CORE_API FLinearColor LerpUsingHSV(const FLinearColor &From, const FLinearColor &To, const float Progress)
Definition Color.cpp:445
static CORE_API const FLinearColor Gray
Definition Color.h:457
FColor ToFColor(const bool bSRGB) const
Definition Color.h:810
static constexpr UE_FORCEINLINE_HINT auto DegreesToRadians(T const &DegVal) -> decltype(DegVal *(UE_PI/180.f))
Definition UnrealMathUtility.h:871
static constexpr UE_FORCEINLINE_HINT auto RadiansToDegrees(T const &RadVal) -> decltype(RadVal *(180.f/UE_PI))
Definition UnrealMathUtility.h:857
static CORE_API FVector GetReflectionVector(const FVector &Direction, const FVector &SurfaceNormal)
Definition UnrealMath.cpp:2962
static CORE_API UE::Math::TVector2< T > Vector2DInterpTo(const UE::Math::TVector2< T > &Current, const UE::Math::TVector2< T > &Target, float DeltaTime, float InterpSpeed)
Definition UnrealMath.cpp:2630
static UE_FORCEINLINE_HINT bool IsNearlyEqual(float A, float B, float ErrorTolerance=UE_SMALL_NUMBER)
Definition UnrealMathUtility.h:388
static CORE_API float PointDistToSegment(const FVector &Point, const FVector &StartPoint, const FVector &EndPoint)
Definition UnrealMath.cpp:1745
static CORE_API FLinearColor CInterpTo(const FLinearColor &Current, const FLinearColor &Target, float DeltaTime, float InterpSpeed)
Definition UnrealMath.cpp:2701
static CORE_API FRotator RInterpConstantTo(const FRotator &Current, const FRotator &Target, float DeltaTime, float InterpSpeed)
Definition UnrealMath.cpp:2647
static CORE_API FRotator RInterpTo(const FRotator &Current, const FRotator &Target, float DeltaTime, float InterpSpeed)
Definition UnrealMath.cpp:2671
static CORE_API float FixedTurn(float InCurrent, float InDesired, float InDeltaRate)
Definition UnrealMath.cpp:3488
static CORE_API FVector2D Vector2DInterpConstantTo(const FVector2D &Current, const FVector2D &Target, float DeltaTime, float InterpSpeed)
Definition UnrealMath.cpp:2607
static constexpr UE_FORCEINLINE_HINT T Square(const T A)
Definition UnrealMathUtility.h:578
static CORE_API float PointDistToLine(const FVector &Point, const FVector &Direction, const FVector &Origin, FVector &OutClosestPoint)
Definition UnrealMath.cpp:1679
static auto FInterpTo(T1 Current, T2 Target, T3 DeltaTime, T4 InterpSpeed)
Definition UnrealMathUtility.h:1502
static CORE_API UE::Math::TVector< T > ClosestPointOnSegment(const UE::Math::TVector< T > &Point, const UE::Math::TVector< T > &StartPoint, const UE::Math::TVector< T > &EndPoint)
static T ClampAngle(T AngleDegrees, T MinAngleDegrees, T MaxAngleDegrees)
Definition Rotator.h:947
static CORE_API FVector RandPointInBox(const FBox &Box)
Definition UnrealMath.cpp:2955
static CORE_API FVector VRandCone(FVector const &Dir, float ConeHalfAngleRad)
Definition UnrealMath.cpp:2859
static UE_FORCEINLINE_HINT int64 RandHelper64(int64 A)
Definition UnrealMathUtility.h:281
static int32 RandRange(int32 Min, int32 Max)
Definition UnrealMathUtility.h:289
static constexpr UE_FORCEINLINE_HINT T Clamp(const T X, const T MinValue, const T MaxValue)
Definition UnrealMathUtility.h:592
static CORE_API FVector VInterpTo(const FVector &Current, const FVector &Target, float DeltaTime, float InterpSpeed)
Definition UnrealMath.cpp:2584
static CORE_API bool PointsAreCoplanar(const TArray< FVector > &Points, const float Tolerance=0.1f)
Definition UnrealMath.cpp:2470
static CORE_API void SegmentDistToSegmentSafe(UE::Math::TVector< T > A1, UE::Math::TVector< T > B1, UE::Math::TVector< T > A2, UE::Math::TVector< T > B2, UE::Math::TVector< T > &OutP1, UE::Math::TVector< T > &OutP2)
static constexpr UE_FORCEINLINE_HINT T Wrap(const T X, const T Min, const T Max)
Definition UnrealMathUtility.h:610
static UE_FORCEINLINE_HINT float FRandRange(float InMin, float InMax)
Definition UnrealMathUtility.h:313
static CORE_API FVector VInterpConstantTo(const FVector &Current, const FVector &Target, float DeltaTime, float InterpSpeed)
Definition UnrealMath.cpp:2562
static auto FInterpConstantTo(T1 Current, T2 Target, T3 DeltaTime, T4 InterpSpeed)
Definition UnrealMathUtility.h:1483
static constexpr UE_FORCEINLINE_HINT T GridSnap(T Location, T Grid)
Definition UnrealMathUtility.h:685
static UE_FORCEINLINE_HINT bool RandBool()
Definition UnrealMathUtility.h:327
static UE_FORCEINLINE_HINT int32 RandHelper(int32 A)
Definition UnrealMathUtility.h:274
Definition Timespan.h:76
static CORE_API bool Parse(const FString &TimespanString, FTimespan &OutTimespan)
Definition Timespan.cpp:112
static FTimespan MinValue()
Definition Timespan.h:699
static double Ratio(FTimespan Dividend, FTimespan Divisor)
Definition Timespan.h:729
static FTimespan Zero()
Definition Timespan.h:747
static FTimespan MaxValue()
Definition Timespan.h:686
FTimespan GetDuration()
Definition Timespan.h:369
Definition BoxSphereBounds.h:25
Definition IntPoint.h:25
static const TIntPoint ZeroValue
Definition IntPoint.h:45
IntType Y
Definition IntVector.h:682
IntType X
Definition IntVector.h:679
void SetColumn(int32 i, TVector< T > Value)
Definition Matrix.inl:747
TMatrix< T > Inverse() const
Definition Matrix.inl:384
TVector4< T > TransformPosition(const TVector< T > &V) const
Definition Matrix.inl:184
TVector4< T > TransformVector(const TVector< T > &V) const
Definition Matrix.inl:204
TMatrix< T > TransposeAdjoint() const
Definition Matrix.inl:404
bool GetFrustumBottomPlane(TPlane< T > &OuTPln) const
Definition Matrix.inl:831
TVector< T > GetUnitAxis(EAxis::Type Axis) const
Definition Matrix.inl:676
bool GetFrustumLeftPlane(TPlane< T > &OuTPln) const
Definition Matrix.inl:795
TVector< T > GetColumn(int32 i) const
Definition Matrix.inl:740
TVector< T > InverseTransformVector(const TVector< T > &V) const
Definition Matrix.inl:211
bool GetFrustumNearPlane(TPlane< T > &OuTPln) const
Definition Matrix.inl:771
TMatrix< T > ApplyScale(T Scale) const
Definition Matrix.inl:898
TMatrix< T > GetMatrixWithoutScale(T Tolerance=UE_SMALL_NUMBER) const
Definition Matrix.inl:458
T GetMaximumAxisScale() const
Definition Matrix.inl:618
bool GetFrustumFarPlane(TPlane< T > &OuTPln) const
Definition Matrix.inl:783
void Mirror(EAxis::Type MirrorAxis, EAxis::Type FlipAxis)
Definition Matrix.inl:847
CORE_API UE::Math::TQuat< T > ToQuat() const
bool ContainsNaN() const
Definition Matrix.inl:586
bool GetFrustumRightPlane(TPlane< T > &OuTPln) const
Definition Matrix.inl:807
TMatrix< T > ConcatTranslation(const TVector< T > &Translation) const
Definition Matrix.inl:555
TVector< T > GetScaleVector(T Tolerance=UE_SMALL_NUMBER) const
Definition Matrix.inl:523
TMatrix< T > RemoveTranslation() const
Definition Matrix.inl:545
TMatrix< T > GetTransposed() const
Definition Matrix.inl:221
TVector< T > GetScaledAxis(EAxis::Type Axis) const
Definition Matrix.inl:647
bool GetFrustumTopPlane(TPlane< T > &OuTPln) const
Definition Matrix.inl:819
void GetUnitAxes(TVector< T > &X, TVector< T > &Y, TVector< T > &Z) const
Definition Matrix.inl:682
TVector4< T > TransformFVector4(const TVector4< T > &V) const
Definition Matrix.inl:170
void GetScaledAxes(TVector< T > &X, TVector< T > &Y, TVector< T > &Z) const
Definition Matrix.inl:668
CORE_API UE::Math::TRotator< T > Rotator() const
Definition UnrealMath.cpp:597
void SetAxis(int32 i, const TVector< T > &Axis)
Definition Matrix.inl:691
static CORE_API const TMatrix Identity
Definition Matrix.h:52
T Determinant() const
Definition Matrix.inl:318
void ScaleTranslation(const TVector< T > &Scale3D)
Definition Matrix.inl:631
void RemoveScaling(T Tolerance=UE_SMALL_NUMBER)
Definition Matrix.inl:435
TVector< T > InverseTransformPosition(const TVector< T > &V) const
Definition Matrix.inl:191
void SetOrigin(const TVector< T > &NewOrigin)
Definition Matrix.inl:701
T RotDeterminant() const
Definition Matrix.inl:344
UE_FORCEINLINE_HINT TVector< T > GetUpVector() const
Definition Quat.h:1329
static CORE_API TQuat< double > FindBetweenNormals(const TVector< double > &Normal1, const TVector< double > &Normal2)
Definition UnrealMath.cpp:1440
T W
Definition Quat.h:58
static CORE_API TQuat< double > FindBetweenVectors(const TVector< double > &Vector1, const TVector< double > &Vector2)
Definition UnrealMath.cpp:1447
CORE_API TRotator< T > Rotator() const
static CORE_API TQuat< double > MakeFromEuler(const TVector< double > &Euler)
Definition UnrealMath.cpp:787
UE_FORCEINLINE_HINT TVector< T > GetAxisZ() const
Definition Quat.h:1310
TVector< T > UnrotateVector(TVector< T > V) const
Definition Quat.h:1254
static TQuat< double > MakeFromRotationVector(const TVector< double > &RotationVector)
Definition Quat.h:1203
bool ContainsNaN() const
Definition Quat.h:1394
TQuat< T > GetNormalized(T Tolerance=UE_SMALL_NUMBER) const
Definition Quat.h:1140
UE_FORCEINLINE_HINT TVector< T > GetRightVector() const
Definition Quat.h:1323
TQuat< T > Inverse() const
Definition Quat.h:1264
UE_FORCEINLINE_HINT TVector< T > GetAxisX() const
Definition Quat.h:1296
static UE_FORCEINLINE_HINT TQuat< double > Slerp(const TQuat< double > &Quat1, const TQuat< double > &Quat2, double Slerp)
Definition Quat.h:660
TVector< T > RotateVector(TVector< T > V) const
Definition Quat.h:1238
bool IsNormalized() const
Definition Quat.h:1149
CORE_API TVector< T > Euler() const
Definition UnrealMath.cpp:1314
UE_FORCEINLINE_HINT TVector< T > GetForwardVector() const
Definition Quat.h:1317
UE_FORCEINLINE_HINT TVector< T > GetAxisY() const
Definition Quat.h:1303
T Y
Definition Quat.h:52
UE_FORCEINLINE_HINT T GetAngle() const
Definition Quat.h:1174
TQuat< T > GetShortestArcWith(const TQuat< T > &OtherQuat) const
Definition Quat.h:1288
TVector< T > GetRotationAxis() const
Definition Quat.h:1210
T Z
Definition Quat.h:55
static CORE_API const TQuat< double > Identity
Definition Quat.h:63
CORE_API TQuat< T > Log() const
Definition UnrealMath.cpp:1454
UE_FORCEINLINE_HINT T Size() const
Definition Quat.h:1162
T X
Definition Quat.h:49
UE_FORCEINLINE_HINT bool IsIdentity(T Tolerance=UE_SMALL_NUMBER) const
Definition Quat.h:1002
CORE_API TQuat< T > Exp() const
Definition UnrealMath.cpp:1483
TVector< T > ToRotationVector() const
Definition Quat.h:1195
bool Equals(const TQuat< T > &Q, T Tolerance=UE_KINDA_SMALL_NUMBER) const
Definition Quat.h:985
void Normalize(T Tolerance=UE_SMALL_NUMBER)
Definition Quat.h:1107
UE_FORCEINLINE_HINT T SizeSquared() const
Definition Quat.h:1168
CORE_API TRotator GetInverse() const
Definition UnrealMath.cpp:406
T Pitch
Definition Rotator.h:46
T Yaw
Definition Rotator.h:49
CORE_API TVector< T > Vector() const
Definition UnrealMath.cpp:371
CORE_API TQuat< T > Quaternion() const
T Roll
Definition Rotator.h:52
TVector< T > InverseTransformVectorNoScale(const TVector< T > &V) const
Definition TransformNonVectorized.h:1483
CORE_API TTransform< T > GetRelativeTransform(const TTransform< T > &Other) const
Definition Transform.cpp:169
TTransform< T > Inverse() const
Definition TransformNonVectorized.h:307
TVector< T > InverseTransformPosition(const TVector< T > &V) const
Definition TransformNonVectorized.h:1456
TVector< T > TransformVectorNoScale(const TVector< T > &V) const
Definition TransformNonVectorized.h:1447
UE_FORCEINLINE_HINT TVector< T > TransformPosition(const TVector< T > &V) const
Definition TransformNonVectorized.h:1423
static CORE_API const TVector2< double > Unit45Deg
Definition Vector2D.h:77
static CORE_API const TVector2< double > UnitVector
Definition Vector2D.h:70
bool Normalize(T Tolerance=UE_SMALL_NUMBER)
Definition Vector2D.h:1154
static UE_FORCEINLINE_HINT double DotProduct(const TVector2< double > &A, const TVector2< double > &B)
Definition Vector2D.h:929
TVector2< T > RoundToVector() const
Definition Vector2D.h:1236
TVector2< T > GetSafeNormal(T Tolerance=UE_SMALL_NUMBER) const
Definition Vector2D.h:1142
static UE_FORCEINLINE_HINT double CrossProduct(const TVector2< double > &A, const TVector2< double > &B)
Definition Vector2D.h:947
static UE_FORCEINLINE_HINT double DistSquared(const TVector2< double > &V1, const TVector2< double > &V2)
Definition Vector2D.h:935
static UE_FORCEINLINE_HINT double Distance(const TVector2< double > &V1, const TVector2< double > &V2)
Definition Vector2D.h:941
TVector2< T > GetRotated(T AngleDeg) const
Definition Vector2D.h:1129
TVector2< T > GetSignVector() const
Definition Vector2D.h:1286
UE_FORCEINLINE_HINT TVector2< T > GetAbs() const
Definition Vector2D.h:1296
TVector2< T > ClampAxes(T MinAxisVal, T MaxAxisVal) const
Definition Vector2D.h:1249
static CORE_API const TVector2< double > ZeroVector
Definition Vector2D.h:63
TVector4 GetSafeNormal(T Tolerance=UE_SMALL_NUMBER) const
Definition Vector4.h:850
TVector4 GetUnsafeNormal3() const
Definition Vector4.h:863
TVector4< T > Reflect3(const TVector4< T > &Normal) const
Definition Vector4.h:1076
TVector< T > ComponentMin(const TVector< T > &Other) const
Definition Vector.h:1698
static TVector< double > DegreesToRadians(const TVector< double > &DegVector)
Definition Vector.h:1468
static CORE_API const TVector< double > DownVector
Definition Vector.h:88
UE_FORCEINLINE_HINT TVector< T > ProjectOnToNormal(const TVector< T > &Normal) const
Definition Vector.h:2121
T Z
Definition Vector.h:68
TVector< T > BoundToCube(T Radius) const
Definition Vector.h:1861
TVector< T > GetUnsafeNormal() const
Definition Vector.h:1841
T Y
Definition Vector.h:65
static CORE_API const TVector< double > ZeroVector
Definition Vector.h:79
TVector< T > GetClampedToSize2D(T Min, T Max) const
Definition Vector.h:1895
static CORE_API const TVector< double > BackwardVector
Definition Vector.h:94
static CORE_API const TVector< double > ForwardVector
Definition Vector.h:91
static TVector< double > RadiansToDegrees(const TVector< double > &RadVector)
Definition Vector.h:1462
TVector< T > MirrorByPlane(const TPlane< T > &Plane) const
Definition Plane.h:613
TVector< T > GetClampedToMaxSize2D(T MaxSize) const
Definition Vector.h:1926
static CORE_API const TVector< double > OneVector
Definition Vector.h:82
static UE_FORCEINLINE_HINT double DotProduct(const TVector< double > &A, const TVector< double > &B)
Definition Vector.h:1559
static CORE_API const TVector< double > UpVector
Definition Vector.h:85
static UE_FORCEINLINE_HINT double DistXY(const TVector< double > &V1, const TVector< double > &V2)
Definition Vector.h:2472
TVector< T > ComponentMax(const TVector< T > &Other) const
Definition Vector.h:1704
TVector< T > GetClampedToMaxSize(T MaxSize) const
Definition Vector.h:1906
bool Normalize(T Tolerance=UE_SMALL_NUMBER)
Definition Vector.h:1767
static CORE_API const TVector< double > LeftVector
Definition Vector.h:100
TVector< T > GridSnap(const T &GridSz) const
Definition Vector.h:1855
static UE_FORCEINLINE_HINT double Distance(const TVector< double > &V1, const TVector< double > &V2)
Definition Vector.h:1018
T X
Definition Vector.h:62
TVector< T > GetSafeNormal(T Tolerance=UE_SMALL_NUMBER, const TVector< T > &ResultIfZero=ZeroVector) const
Definition Vector.h:2060
TVector< T > Projection() const
Definition Vector.h:1834
static UE_FORCEINLINE_HINT TVector< double > CrossProduct(const TVector< double > &A, const TVector< double > &B)
Definition Vector.h:1541
TVector< T > Reciprocal() const
Definition Vector.h:2013
static CORE_API TVector< double > SlerpVectorToDirection(const TVector< double > &V, const TVector< double > &Direction, double Alpha)
Definition UnrealMath.cpp:225
TVector< T > GetClampedToSize(T Min, T Max) const
Definition Vector.h:1884
UE_FORCEINLINE_HINT TVector< T > ProjectOnTo(const TVector< T > &A) const
Definition Vector.h:2115
static CORE_API TVector< double > SlerpNormals(const TVector< double > &NormalA, const TVector< double > &NormalB, double Alpha)
Definition UnrealMath.cpp:242
static TVector< double > PointPlaneProject(const TVector< double > &Point, const TPlane< double > &Plane)
Definition Plane.h:619
static TVector< double > VectorPlaneProject(const TVector< double > &V, const TVector< double > &PlaneNormal)
Definition Vector.h:1418
TVector< T > GetAbs() const
Definition Vector.h:1710
TVector< T > GetSafeNormal2D(T Tolerance=UE_SMALL_NUMBER, const TVector< T > &ResultIfZero=ZeroVector) const
Definition Vector.h:2078
TVector< T > BoundToBox(const TVector< T > &Min, const TVector< T > &Max) const
Definition Vector.h:1872
TVector< T > GetSignVector() const
Definition Vector.h:1823
static UE_FORCEINLINE_HINT double DistSquared(const TVector< double > &V1, const TVector< double > &V2)
Definition Vector.h:2478
static CORE_API const TVector< double > RightVector
Definition Vector.h:97
static UE_FORCEINLINE_HINT double DistSquaredXY(const TVector< double > &V1, const TVector< double > &V2)
Definition Vector.h:2484