CommonLibSSE NG
Loading...
Searching...
No Matches
RE::hkp3AxisSweep Class Reference

#include <hkp3AxisSweep.h>

Inheritance diagram for RE::hkp3AxisSweep:
RE::hkpBroadPhase RE::hkReferencedObject RE::hkBaseObject

Classes

class  hkpBpAxis
 
class  hkpBpEndPoint
 
class  hkpBpMarker
 
class  hkpBpNode
 

Public Types

enum class  MarkerHandling { kAddNewOverlaps , kIgnore , kRemoveNewOverlaps }
 
using BpInt = std::uint16_t
 
- Public Types inherited from RE::hkpBroadPhase
enum class  BroadPhaseType { k16Bit , k32Bit , kHybrid }
 
enum class  Capabilities {
  kNone = 0 , kRayCast = 1 << 0 , kLinearCast = 1 << 1 , kAABBQuery = 1 << 2 ,
  kClosestPoints = 1 << 3 , kCharProxyInt = 1 << 4 , kISASweepAndPrune = 1 << 12
}
 
- Public Types inherited from RE::hkReferencedObject
enum class  LockMode { kNone = 0 , kAuto , kManual }
 
enum  { kMemSize = 0x7FFF }
 

Public Member Functions

 ~hkp3AxisSweep () override
 
void CalcContentStatistics (hkStatisticsCollector *a_collector, const hkClass *a_class) const override
 
BroadPhaseType GetType () const override
 
void AddObject1 (hkpBroadPhaseHandle *a_object, const hkAabbUint32 &a_aabb, hkArray< hkpBroadPhaseHandlePair > &a_pairsOut) override
 
void AddObject2 (hkpBroadPhaseHandle *a_object, const hkAabb &a_aabb, hkArray< hkpBroadPhaseHandlePair > &a_pairsOut) override
 
void AddObjectBatch (const hkArrayBase< hkpBroadPhaseHandle * > &a_addObjectList, const hkArrayBase< hkAabb > &a_addAabbList, hkArray< hkpBroadPhaseHandlePair > &a_newPairs) override
 
void RemoveObject (hkpBroadPhaseHandle *a_object, hkArray< hkpBroadPhaseHandlePair > &a_pairsOut) override
 
void RemoveObjectBatch (const hkArrayBase< hkpBroadPhaseHandle * > &a_removeObjectList, hkArray< hkpBroadPhaseHandlePair > &a_delPairsOut) override
 
std::int32_t GetNumObjects () const override
 
void UpdateAabbs (hkpBroadPhaseHandle *a_objects[], const hkAabb *a_aabbs, std::int32_t a_numObjects, hkArray< hkpBroadPhaseHandlePair > &a_addedPairs, hkArray< hkpBroadPhaseHandlePair > &a_removedPairs) override
 
void UpdateAabbsUInt32 (hkpBroadPhaseHandle *a_objects[], const hkAabbUint32 *a_aabbs, std::int32_t a_numObjects, hkArray< hkpBroadPhaseHandlePair > &a_addedPairs, hkArray< hkpBroadPhaseHandlePair > &a_removedPairs) override
 
void Defragment () override
 
void CheckDeterminism () override
 
void GetAllAabbs (hkArray< hkAabb > &a_allAabbs) const override
 
void GetAabb (const hkpBroadPhaseHandle *a_object, hkAabb &a_aabb) const override
 
void GetExtents (hkVector4 &a_worldMinOut, hkVector4 &a_worldMaxOut) const override
 
void QuerySingleAabb (const hkAabb &a_aabb, hkArray< hkpBroadPhaseHandlePair > &a_pairsOut) const override
 
void ReQuerySingleObject (const hkpBroadPhaseHandle *a_object, hkArray< hkpBroadPhaseHandlePair > &a_pairsOut) const override
 
void QuerySingleAabbWithCollector (const hkAabb &a_aabb, hkpBroadPhaseCastCollector *a_collector) const override
 
bool AreAabbsOverlapping (const hkpBroadPhaseHandle *a_bhA, const hkpBroadPhaseHandle *a_bhB) const override
 
void ShiftAllObjects (const hkVector4 &a_shiftDistance, hkVector4 &a_effectiveShiftDistanceOut, hkArray< hkpBroadPhaseHandlePair > &a_newCollisionPairs) override
 
void ShiftBroadPhase (const hkVector4 &a_shiftDistance, hkVector4 &a_effectiveShiftDistanceOut, hkArray< hkpBroadPhaseHandlePair > &a_newCollisionPairs) override
 
void GetOffsetLowHigh32bit (hkVector4 &a_offsetLow32bit, hkVector4 &a_offsetHigh32bit) const override
 
void CastRay (const hkpCastRayInput &a_input, hkpBroadPhaseCastCollector *a_collectorBase, std::int32_t a_collectorStriding) const override
 
std::int32_t GetAabbCacheSize () const override
 
void CalcAabbCache1 (const hkAabb &a_aabb, hkpBroadPhaseAabbCache *a_aabbCacheOut) const override
 
void CalcAabbCache2 (const hkArrayBase< hkpCollidable * > &a_overlappingCollidables, hkpBroadPhaseAabbCache *a_aabbCacheOut) const override
 
void CastAabb (const hkpCastAabbInput &a_input, hkpBroadPhaseCastCollector &a_collector) const override
 
void Set32BitOffsetAndScale (const hkVector4 &a_offsetLow, const hkVector4 &a_offsetHigh, const hkVector4 &a_scale) override
 
- Public Member Functions inherited from RE::hkpBroadPhase
 ~hkpBroadPhase () override
 
virtual BroadPhaseType GetType () const =0
 
virtual const hkpBroadPhaseGetCapabilityDelegate (Capabilities a_cap) const
 
virtual void AddObject1 (hkpBroadPhaseHandle *a_object, const hkAabbUint32 &a_aabb, hkArray< hkpBroadPhaseHandlePair > &a_pairsOut)=0
 
virtual void AddObject2 (hkpBroadPhaseHandle *a_object, const hkAabb &a_aabb, hkArray< hkpBroadPhaseHandlePair > &a_pairsOut)=0
 
virtual void AddObjectBatch (const hkArrayBase< hkpBroadPhaseHandle * > &a_addObjectList, const hkArrayBase< hkAabb > &a_addAabbList, hkArray< hkpBroadPhaseHandlePair > &a_newPairs)=0
 
virtual void RemoveObject (hkpBroadPhaseHandle *a_object, hkArray< hkpBroadPhaseHandlePair > &a_pairsOut)=0
 
virtual void RemoveObjectBatch (const hkArrayBase< hkpBroadPhaseHandle * > &a_removeObjectList, hkArray< hkpBroadPhaseHandlePair > &a_delPairsOut)=0
 
virtual std::int32_t GetNumObjects () const =0
 
virtual void UpdateAabbs (hkpBroadPhaseHandle *a_objects[], const hkAabb *a_aabbs, std::int32_t a_numObjects, hkArray< hkpBroadPhaseHandlePair > &a_addedPairs, hkArray< hkpBroadPhaseHandlePair > &a_removedPairs)=0
 
virtual void UpdateAabbsUInt32 (hkpBroadPhaseHandle *a_objects[], const hkAabbUint32 *a_aabbs, std::int32_t a_numObjects, hkArray< hkpBroadPhaseHandlePair > &a_addedPairs, hkArray< hkpBroadPhaseHandlePair > &a_removedPairs)=0
 
virtual void Defragment ()=0
 
virtual void CheckDeterminism ()
 
virtual void GetAllAabbs (hkArray< hkAabb > &a_allAabbs) const =0
 
virtual void GetAabb (const hkpBroadPhaseHandle *a_object, hkAabb &a_aabb) const =0
 
virtual void GetExtents (hkVector4 &a_worldMinOut, hkVector4 &a_worldMaxOut) const =0
 
virtual void QuerySingleAabb (const hkAabb &a_aabb, hkArray< hkpBroadPhaseHandlePair > &a_pairsOut) const =0
 
virtual void ReQuerySingleObject (const hkpBroadPhaseHandle *a_object, hkArray< hkpBroadPhaseHandlePair > &a_pairsOut) const =0
 
virtual void QuerySingleAabbWithCollector (const hkAabb &a_aabb, hkpBroadPhaseCastCollector *a_collector) const =0
 
virtual bool AreAabbsOverlapping (const hkpBroadPhaseHandle *a_bhA, const hkpBroadPhaseHandle *a_bhB) const =0
 
virtual void ShiftAllObjects (const hkVector4 &a_shiftDistance, hkVector4 &a_effectiveShiftDistanceOut, hkArray< hkpBroadPhaseHandlePair > &a_newCollisionPairs)=0
 
virtual void ShiftBroadPhase (const hkVector4 &a_shiftDistance, hkVector4 &a_effectiveShiftDistanceOut, hkArray< hkpBroadPhaseHandlePair > &a_newCollisionPairs)=0
 
virtual void GetOffsetLowHigh32bit (hkVector4 &a_offsetLow32bit, hkVector4 &a_offsetHigh32bit) const =0
 
virtual void CastRay (const hkpCastRayInput &a_input, hkpBroadPhaseCastCollector *a_collectorBase, std::int32_t a_collectorStriding) const =0
 
virtual std::int32_t GetAabbCacheSize () const =0
 
virtual void CalcAabbCache1 (const hkAabb &a_aabb, hkpBroadPhaseAabbCache *a_aabbCacheOut) const =0
 
virtual void CalcAabbCache2 (const hkArrayBase< hkpCollidable * > &a_overlappingCollidables, hkpBroadPhaseAabbCache *a_aabbCacheOut) const =0
 
virtual void CastAabb (const hkpCastAabbInput &a_input, hkpBroadPhaseCastCollector &a_collector) const =0
 
virtual void Set32BitOffsetAndScale (const hkVector4 &a_offsetLow, const hkVector4 &a_offsetHigh, const hkVector4 &a_scale)=0
 
void AddObject (hkpBroadPhaseHandle *a_object, const hkAabbUint32 &a_aabb, hkArray< hkpBroadPhaseHandlePair > &a_pairsOut)
 
void AddObject (hkpBroadPhaseHandle *a_object, const hkAabb &a_aabb, hkArray< hkpBroadPhaseHandlePair > &a_pairsOut)
 
void CalcAabbCache (const hkAabb &a_aabb, hkpBroadPhaseAabbCache *a_aabbCacheOut) const
 
void CalcAabbCache (const hkArrayBase< hkpCollidable * > &a_overlappingCollidables, hkpBroadPhaseAabbCache *a_aabbCacheOut) const
 
- Public Member Functions inherited from RE::hkReferencedObject
 hkReferencedObject ()
 
 ~hkReferencedObject () override=default
 
virtual const hkClass * GetClassType () const
 
virtual void CalcContentStatistics (hkStatisticsCollector *a_collector, const hkClass *a_class) const
 
void AddReference () const
 
std::int32_t GetAllocatedSize () const
 
std::int32_t GetReferenceCount () const
 
void RemoveReference () const
 
- Public Member Functions inherited from RE::hkBaseObject
virtual ~hkBaseObject ()=default
 

Public Attributes

hkAabb aabb
 
hkVector4 offsetLow
 
hkVector4 offsetHigh
 
hkVector4 scale
 
hkVector4 offsetLow32bit
 
hkVector4 offsetHigh32bit
 
hkVector4 scale32bit
 
hkArray< hkpBpNodenodes
 
hkpBpAxis axis [3]
 
std::int32_t numMarkers
 
std::int32_t ld2NumMarkers
 
hkpBpMarkermarkers
 
float intToFloatFloorCorrection
 
std::uint32_t pad104
 
std::uint64_t pad108
 
- Public Attributes inherited from RE::hkpBroadPhase
const stl::enumeration< BroadPhaseType, std::uint16_t > type
 
const std::uint16_t size { 0 }
 
const stl::enumeration< Capabilities, std::uint32_t > caps
 
hkMultiThreadCheck multiThreadCheck
 
std::uint32_t pad24
 
hkCriticalSection * criticalSection
 
- Public Attributes inherited from RE::hkReferencedObject
std::uint16_t memSizeAndFlags
 
volatile std::int16_t referenceCount
 
std::uint32_t pad0C
 

Static Public Attributes

static constexpr auto RTTI = RTTI_hkp3AxisSweep
 
static constexpr auto VTABLE = VTABLE_hkp3AxisSweep
 
- Static Public Attributes inherited from RE::hkpBroadPhase
static constexpr auto RTTI = RTTI_hkpBroadPhase
 
static constexpr auto VTABLE = VTABLE_hkpBroadPhase
 
- Static Public Attributes inherited from RE::hkReferencedObject
static constexpr auto RTTI = RTTI_hkReferencedObject
 
static constexpr auto VTABLE = VTABLE_hkReferencedObject
 
- Static Public Attributes inherited from RE::hkBaseObject
static constexpr auto RTTI = RTTI_hkBaseObject
 
static constexpr auto VTABLE = VTABLE_hkBaseObject
 

Member Typedef Documentation

◆ BpInt

using RE::hkp3AxisSweep::BpInt = std::uint16_t

Member Enumeration Documentation

◆ MarkerHandling

Enumerator
kAddNewOverlaps 
kIgnore 
kRemoveNewOverlaps 

Constructor & Destructor Documentation

◆ ~hkp3AxisSweep()

RE::hkp3AxisSweep::~hkp3AxisSweep ( )
override

Member Function Documentation

◆ AddObject1()

void RE::hkp3AxisSweep::AddObject1 ( hkpBroadPhaseHandle a_object,
const hkAabbUint32 &  a_aabb,
hkArray< hkpBroadPhaseHandlePair > &  a_pairsOut 
)
overridevirtual

Implements RE::hkpBroadPhase.

◆ AddObject2()

void RE::hkp3AxisSweep::AddObject2 ( hkpBroadPhaseHandle a_object,
const hkAabb a_aabb,
hkArray< hkpBroadPhaseHandlePair > &  a_pairsOut 
)
overridevirtual

Implements RE::hkpBroadPhase.

◆ AddObjectBatch()

void RE::hkp3AxisSweep::AddObjectBatch ( const hkArrayBase< hkpBroadPhaseHandle * > &  a_addObjectList,
const hkArrayBase< hkAabb > &  a_addAabbList,
hkArray< hkpBroadPhaseHandlePair > &  a_newPairs 
)
overridevirtual

Implements RE::hkpBroadPhase.

◆ AreAabbsOverlapping()

bool RE::hkp3AxisSweep::AreAabbsOverlapping ( const hkpBroadPhaseHandle a_bhA,
const hkpBroadPhaseHandle a_bhB 
) const
overridevirtual

Implements RE::hkpBroadPhase.

◆ CalcAabbCache1()

void RE::hkp3AxisSweep::CalcAabbCache1 ( const hkAabb a_aabb,
hkpBroadPhaseAabbCache a_aabbCacheOut 
) const
overridevirtual

Implements RE::hkpBroadPhase.

◆ CalcAabbCache2()

void RE::hkp3AxisSweep::CalcAabbCache2 ( const hkArrayBase< hkpCollidable * > &  a_overlappingCollidables,
hkpBroadPhaseAabbCache a_aabbCacheOut 
) const
overridevirtual

Implements RE::hkpBroadPhase.

◆ CalcContentStatistics()

void RE::hkp3AxisSweep::CalcContentStatistics ( hkStatisticsCollector *  a_collector,
const hkClass *  a_class 
) const
overridevirtual

Reimplemented from RE::hkReferencedObject.

◆ CastAabb()

void RE::hkp3AxisSweep::CastAabb ( const hkpCastAabbInput a_input,
hkpBroadPhaseCastCollector a_collector 
) const
overridevirtual

Implements RE::hkpBroadPhase.

◆ CastRay()

void RE::hkp3AxisSweep::CastRay ( const hkpCastRayInput a_input,
hkpBroadPhaseCastCollector a_collectorBase,
std::int32_t  a_collectorStriding 
) const
overridevirtual

Implements RE::hkpBroadPhase.

◆ CheckDeterminism()

void RE::hkp3AxisSweep::CheckDeterminism ( )
overridevirtual

Reimplemented from RE::hkpBroadPhase.

◆ Defragment()

void RE::hkp3AxisSweep::Defragment ( )
overridevirtual

Implements RE::hkpBroadPhase.

◆ GetAabb()

void RE::hkp3AxisSweep::GetAabb ( const hkpBroadPhaseHandle a_object,
hkAabb a_aabb 
) const
overridevirtual

Implements RE::hkpBroadPhase.

◆ GetAabbCacheSize()

std::int32_t RE::hkp3AxisSweep::GetAabbCacheSize ( ) const
overridevirtual

Implements RE::hkpBroadPhase.

◆ GetAllAabbs()

void RE::hkp3AxisSweep::GetAllAabbs ( hkArray< hkAabb > &  a_allAabbs) const
overridevirtual

Implements RE::hkpBroadPhase.

◆ GetExtents()

void RE::hkp3AxisSweep::GetExtents ( hkVector4 a_worldMinOut,
hkVector4 a_worldMaxOut 
) const
overridevirtual

Implements RE::hkpBroadPhase.

◆ GetNumObjects()

std::int32_t RE::hkp3AxisSweep::GetNumObjects ( ) const
overridevirtual

Implements RE::hkpBroadPhase.

◆ GetOffsetLowHigh32bit()

void RE::hkp3AxisSweep::GetOffsetLowHigh32bit ( hkVector4 a_offsetLow32bit,
hkVector4 a_offsetHigh32bit 
) const
overridevirtual

Implements RE::hkpBroadPhase.

◆ GetType()

BroadPhaseType RE::hkp3AxisSweep::GetType ( ) const
overridevirtual

Implements RE::hkpBroadPhase.

◆ QuerySingleAabb()

void RE::hkp3AxisSweep::QuerySingleAabb ( const hkAabb a_aabb,
hkArray< hkpBroadPhaseHandlePair > &  a_pairsOut 
) const
overridevirtual

Implements RE::hkpBroadPhase.

◆ QuerySingleAabbWithCollector()

void RE::hkp3AxisSweep::QuerySingleAabbWithCollector ( const hkAabb a_aabb,
hkpBroadPhaseCastCollector a_collector 
) const
overridevirtual

Implements RE::hkpBroadPhase.

◆ RemoveObject()

void RE::hkp3AxisSweep::RemoveObject ( hkpBroadPhaseHandle a_object,
hkArray< hkpBroadPhaseHandlePair > &  a_pairsOut 
)
overridevirtual

Implements RE::hkpBroadPhase.

◆ RemoveObjectBatch()

void RE::hkp3AxisSweep::RemoveObjectBatch ( const hkArrayBase< hkpBroadPhaseHandle * > &  a_removeObjectList,
hkArray< hkpBroadPhaseHandlePair > &  a_delPairsOut 
)
overridevirtual

Implements RE::hkpBroadPhase.

◆ ReQuerySingleObject()

void RE::hkp3AxisSweep::ReQuerySingleObject ( const hkpBroadPhaseHandle a_object,
hkArray< hkpBroadPhaseHandlePair > &  a_pairsOut 
) const
overridevirtual

Implements RE::hkpBroadPhase.

◆ Set32BitOffsetAndScale()

void RE::hkp3AxisSweep::Set32BitOffsetAndScale ( const hkVector4 a_offsetLow,
const hkVector4 a_offsetHigh,
const hkVector4 a_scale 
)
overridevirtual

Implements RE::hkpBroadPhase.

◆ ShiftAllObjects()

void RE::hkp3AxisSweep::ShiftAllObjects ( const hkVector4 a_shiftDistance,
hkVector4 a_effectiveShiftDistanceOut,
hkArray< hkpBroadPhaseHandlePair > &  a_newCollisionPairs 
)
overridevirtual

Implements RE::hkpBroadPhase.

◆ ShiftBroadPhase()

void RE::hkp3AxisSweep::ShiftBroadPhase ( const hkVector4 a_shiftDistance,
hkVector4 a_effectiveShiftDistanceOut,
hkArray< hkpBroadPhaseHandlePair > &  a_newCollisionPairs 
)
overridevirtual

Implements RE::hkpBroadPhase.

◆ UpdateAabbs()

void RE::hkp3AxisSweep::UpdateAabbs ( hkpBroadPhaseHandle a_objects[],
const hkAabb a_aabbs,
std::int32_t  a_numObjects,
hkArray< hkpBroadPhaseHandlePair > &  a_addedPairs,
hkArray< hkpBroadPhaseHandlePair > &  a_removedPairs 
)
overridevirtual

Implements RE::hkpBroadPhase.

◆ UpdateAabbsUInt32()

void RE::hkp3AxisSweep::UpdateAabbsUInt32 ( hkpBroadPhaseHandle a_objects[],
const hkAabbUint32 *  a_aabbs,
std::int32_t  a_numObjects,
hkArray< hkpBroadPhaseHandlePair > &  a_addedPairs,
hkArray< hkpBroadPhaseHandlePair > &  a_removedPairs 
)
overridevirtual

Implements RE::hkpBroadPhase.

Member Data Documentation

◆ aabb

hkAabb RE::hkp3AxisSweep::aabb

◆ axis

hkpBpAxis RE::hkp3AxisSweep::axis[3]

◆ intToFloatFloorCorrection

float RE::hkp3AxisSweep::intToFloatFloorCorrection

◆ ld2NumMarkers

std::int32_t RE::hkp3AxisSweep::ld2NumMarkers

◆ markers

hkpBpMarker* RE::hkp3AxisSweep::markers

◆ nodes

hkArray<hkpBpNode> RE::hkp3AxisSweep::nodes

◆ numMarkers

std::int32_t RE::hkp3AxisSweep::numMarkers

◆ offsetHigh

hkVector4 RE::hkp3AxisSweep::offsetHigh

◆ offsetHigh32bit

hkVector4 RE::hkp3AxisSweep::offsetHigh32bit

◆ offsetLow

hkVector4 RE::hkp3AxisSweep::offsetLow

◆ offsetLow32bit

hkVector4 RE::hkp3AxisSweep::offsetLow32bit

◆ pad104

std::uint32_t RE::hkp3AxisSweep::pad104

◆ pad108

std::uint64_t RE::hkp3AxisSweep::pad108

◆ RTTI

constexpr auto RE::hkp3AxisSweep::RTTI = RTTI_hkp3AxisSweep
inlinestaticconstexpr

◆ scale

hkVector4 RE::hkp3AxisSweep::scale

◆ scale32bit

hkVector4 RE::hkp3AxisSweep::scale32bit

◆ VTABLE

constexpr auto RE::hkp3AxisSweep::VTABLE = VTABLE_hkp3AxisSweep
inlinestaticconstexpr

The documentation for this class was generated from the following file: