keywords：UE4、Linear Algebra、Plane Geometry

##### 范围判定

``````FBox2D::IsInside(const FVector2D& TestPoint)
FBox::IsInside(const FVector& TestPoint)
FIntRect::Contains( FIntPoint P )
``````
##### 角度计算

``````float AimAtAngle = FMath::RadiansToDegrees(acosf(FVector::DotProduct(PlayerDirection, MouseDirection)));
``````

``````void UKismetMathLibrary::GetAzimuthAndElevation(FVector InDirection, const FTransform& ReferenceFrame, float& Azimuth, float& Elevation);
``````

``````FVector FMath::GetReflectionVector(const FVector& Direction, const FVector& SurfaceNormal);
``````

``````void UKismetMathLibrary::GetSlopeDegreeAngles(const FVector& MyRightYAxis, const FVector& FloorNormal, const FVector& UpVector,
float& OutSlopePitchDegreeAngle, float& OutSlopeRollDegreeAngle);
``````
##### 点坐标计算

``````FVector UKismetMathLibrary::FindClosestPointOnLine(FVector Point, FVector LineOrigin, FVector LineDirection);
``````

``````bool UKismetMathLibrary::LinePlaneIntersection(const FVector& LineStart, const FVector& LineEnd,
const FPlane& APlane, float& T, FVector& Intersection);
``````

``````FVector UKismetMathLibrary::ProjectPointOnToPlane(FVector Point, FVector PlaneBase, FVector PlaneNormal);
``````

``````FVector UKismetMathLibrary::ProjectVectorOnToPlane(FVector V, FVector PlaneNormal);
``````
##### 插值相关

``````float UKismetMathLibrary::FloatSpringInterp(float Current, float Target, UPARAM(ref) FFloatSpringState& SpringState,
float Stiffness, float CriticalDampingFactor, float DeltaTime, float Mass = 1.f);
``````

``````FVector UKismetMathLibrary::VectorSpringInterp(FVector Current, FVector Target, UPARAM(ref) FVectorSpringState& SpringState, float Stiffness, float CriticalDampingFactor, float DeltaTime, float Mass = 1.f);
``````

Transform 插值计算：

``````FTransform UKismetMathLibrary::TInterpTo(const FTransform& Current, const FTransform& Target, float DeltaTime, float InterpSpeed);
``````
##### 向量相关

``````void UKismetMathLibrary::GetAxes(FRotator A, FVector& X, FVector& Y, FVector& Z);
``````

``````FVector UKismetMathLibrary::GetForwardVector(FRotator InRot);
FVector UKismetMathLibrary::GetRightVector(FRotator InRot);
FVector UKismetMathLibrary::GetUpVector(FRotator InRot);
``````

``````FVector GetVectorArrayAverage(const TArray<FVector>& Vectors);
``````