UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AABBVectorizedDouble.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
4#include "Chaos/AABB.h"
5#include "Chaos/Core.h"
6#include "ChaosArchive.h"
9
10
11namespace Chaos
12{
13
14 class alignas(32) FAABBVectorizedDouble
15 {
16 public:
17
23
29 template<typename T>
31 {
32 Min = MakeVectorRegisterDouble(AABB.Min().X, AABB.Min().Y, AABB.Min().Z, 0.0);
33 Max = MakeVectorRegisterDouble(AABB.Max().X, AABB.Max().Y, AABB.Max().Z, 0.0);
34 }
35
38
41
43 {
47
49 {
50 return false; //parallel and outside
51 }
52
53 const VectorRegister4Double StartToMin = VectorSubtract(Min, StartPoint);
54 const VectorRegister4Double StartToMax = VectorSubtract(Max, StartPoint);
57
60
61 const VectorRegister4Double SortedTime1 = VectorMin(Time1, Time2);
62 const VectorRegister4Double SortedTime2 = VectorMax(Time1, Time2);
63
67
71
72 //Outside of slab before entering another
74
75 return VectorMaskBits(IsFalse) == 0;
76 }
77
79 {
81
82 return !static_cast<bool>(VectorMaskBits(IsFalse));
83 }
84
86 {
87 Min = VectorSubtract(Min, Thickness);
88 Max = VectorAdd(Max, Thickness);
89 return *this;
90 }
91
92 private:
95 };
96}
#define FORCEINLINE_DEBUGGABLE
Definition CoreMiscDefines.h:74
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
FORCEINLINE VectorRegister4Float VectorSubtract(const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
Definition UnrealMathFPU.h:731
FORCEINLINE VectorRegister4Float VectorMin(const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
Definition UnrealMathFPU.h:1686
FORCEINLINE VectorRegister4Float VectorMultiply(const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
Definition UnrealMathFPU.h:758
FORCEINLINE VectorRegister4Float VectorMax(const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
Definition UnrealMathFPU.h:1713
FORCEINLINE VectorRegister4Float VectorBitwiseAnd(const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
Definition UnrealMathFPU.h:1165
FORCEINLINE VectorRegister4Float VectorSelect(const VectorRegister4Float &Mask, const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
Definition UnrealMathFPU.h:1105
FORCEINLINE VectorRegister4Float VectorCompareGT(const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
Definition UnrealMathFPU.h:974
FORCEINLINE VectorRegister4Double MakeVectorRegisterDouble(uint64 X, uint64 Y, uint64 Z, uint64 W)
Definition UnrealMathFPU.h:185
FORCEINLINE int32 VectorMaskBits(const VectorRegister4Float &Vec1)
Definition UnrealMathFPU.h:1075
FORCEINLINE VectorRegister4Float VectorNegate(const VectorRegister4Float &Vec)
Definition UnrealMathFPU.h:687
FORCEINLINE VectorRegister4Float VectorAdd(const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
Definition UnrealMathFPU.h:704
#define VectorSwizzle(Vec, X, Y, Z, W)
Definition UnrealMathFPU.h:639
FORCEINLINE VectorRegister4Float VectorBitwiseOr(const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
Definition UnrealMathFPU.h:1140
FORCEINLINE VectorRegister4Float VectorZero(void)
Definition UnrealMathVectorCommon.h.inl:16
FORCEINLINE VectorRegister4Float VectorBitwiseNotAnd(const VectorRegister4Float &A, const VectorRegister4Float &B)
Definition VectorUtility.h:289
Definition AABBVectorizedDouble.h:15
FORCEINLINE_DEBUGGABLE FAABBVectorizedDouble(const TAABB< T, 3 > &AABB)
Definition AABBVectorizedDouble.h:30
FORCEINLINE_DEBUGGABLE void SetMax(const VectorRegister4Double &InMax)
Definition AABBVectorizedDouble.h:40
FORCEINLINE_DEBUGGABLE const VectorRegister4Double & GetMin() const
Definition AABBVectorizedDouble.h:36
FORCEINLINE_DEBUGGABLE FAABBVectorizedDouble & Thicken(const VectorRegister4Double &Thickness)
Definition AABBVectorizedDouble.h:85
FORCEINLINE_DEBUGGABLE bool RaycastFast(const VectorRegister4Double &StartPoint, const VectorRegister4Double &InvDir, const VectorRegister4Double &Parallel, const VectorRegister4Double &Length, VectorRegister4Double &LatestStartTime) const
Definition AABBVectorizedDouble.h:42
FORCEINLINE_DEBUGGABLE FAABBVectorizedDouble(const VectorRegister4Double &InMin, const VectorRegister4Double &InMax)
Definition AABBVectorizedDouble.h:24
FORCEINLINE_DEBUGGABLE bool Intersects(const FAABBVectorizedDouble &Other) const
Definition AABBVectorizedDouble.h:78
FORCEINLINE_DEBUGGABLE void SetMin(const VectorRegister4Double &InMin)
Definition AABBVectorizedDouble.h:39
FORCEINLINE_DEBUGGABLE const VectorRegister4Double & GetMax() const
Definition AABBVectorizedDouble.h:37
FORCEINLINE_DEBUGGABLE FAABBVectorizedDouble()
Definition AABBVectorizedDouble.h:18
Definition AABB.h:37
FORCEINLINE const TVector< T, d > & Max() const
Definition AABB.h:596
FORCEINLINE const TVector< T, d > & Min() const
Definition AABB.h:595
Definition SkeletalMeshComponent.h:307
constexpr VectorRegister4Double DoubleBigNumber
Definition UnrealMathVectorConstants.h.inl:73
Definition UnrealMathFPU.h:42