CommonLibSSE (Parapets fork)
RE::hkpBroadPhase Class Referenceabstract

#include <hkpBroadPhase.h>

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

Classes

struct  hkpCastAabbInput
 
struct  hkpCastRayInput
 

Public Types

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

 ~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

const stl::enumeration< BroadPhaseType, std::uint16_t > type
 
const std::uint16_t size
 
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_hkpBroadPhase
 
- Static Public Attributes inherited from RE::hkReferencedObject
static constexpr auto RTTI = RTTI_hkReferencedObject
 
- Static Public Attributes inherited from RE::hkBaseObject
static constexpr auto RTTI = RTTI_hkBaseObject
 

Member Enumeration Documentation

◆ BroadPhaseType

Enumerator
k16Bit 
k32Bit 
kHybrid 

◆ Capabilities

Enumerator
kNone 
kRayCast 
kLinearCast 
kAABBQuery 
kClosestPoints 
kCharProxyInt 
kISASweepAndPrune 

Constructor & Destructor Documentation

◆ ~hkpBroadPhase()

RE::hkpBroadPhase::~hkpBroadPhase ( )
override

Member Function Documentation

◆ AddObject() [1/2]

void RE::hkpBroadPhase::AddObject ( hkpBroadPhaseHandle a_object,
const hkAabb a_aabb,
hkArray< hkpBroadPhaseHandlePair > &  a_pairsOut 
)

◆ AddObject() [2/2]

void RE::hkpBroadPhase::AddObject ( hkpBroadPhaseHandle a_object,
const hkAabbUint32 &  a_aabb,
hkArray< hkpBroadPhaseHandlePair > &  a_pairsOut 
)

◆ AddObject1()

virtual void RE::hkpBroadPhase::AddObject1 ( hkpBroadPhaseHandle a_object,
const hkAabbUint32 &  a_aabb,
hkArray< hkpBroadPhaseHandlePair > &  a_pairsOut 
)
pure virtual

Implemented in RE::hkp3AxisSweep.

◆ AddObject2()

virtual void RE::hkpBroadPhase::AddObject2 ( hkpBroadPhaseHandle a_object,
const hkAabb a_aabb,
hkArray< hkpBroadPhaseHandlePair > &  a_pairsOut 
)
pure virtual

Implemented in RE::hkp3AxisSweep.

◆ AddObjectBatch()

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

Implemented in RE::hkp3AxisSweep.

◆ AreAabbsOverlapping()

virtual bool RE::hkpBroadPhase::AreAabbsOverlapping ( const hkpBroadPhaseHandle a_bhA,
const hkpBroadPhaseHandle a_bhB 
) const
pure virtual

Implemented in RE::hkp3AxisSweep.

◆ CalcAabbCache() [1/2]

void RE::hkpBroadPhase::CalcAabbCache ( const hkAabb a_aabb,
hkpBroadPhaseAabbCache a_aabbCacheOut 
) const

◆ CalcAabbCache() [2/2]

void RE::hkpBroadPhase::CalcAabbCache ( const hkArrayBase< hkpCollidable * > &  a_overlappingCollidables,
hkpBroadPhaseAabbCache a_aabbCacheOut 
) const

◆ CalcAabbCache1()

virtual void RE::hkpBroadPhase::CalcAabbCache1 ( const hkAabb a_aabb,
hkpBroadPhaseAabbCache a_aabbCacheOut 
) const
pure virtual

Implemented in RE::hkp3AxisSweep.

◆ CalcAabbCache2()

virtual void RE::hkpBroadPhase::CalcAabbCache2 ( const hkArrayBase< hkpCollidable * > &  a_overlappingCollidables,
hkpBroadPhaseAabbCache a_aabbCacheOut 
) const
pure virtual

Implemented in RE::hkp3AxisSweep.

◆ CastAabb()

virtual void RE::hkpBroadPhase::CastAabb ( const hkpCastAabbInput a_input,
hkpBroadPhaseCastCollector a_collector 
) const
pure virtual

Implemented in RE::hkp3AxisSweep.

◆ CastRay()

virtual void RE::hkpBroadPhase::CastRay ( const hkpCastRayInput a_input,
hkpBroadPhaseCastCollector a_collectorBase,
std::int32_t  a_collectorStriding 
) const
pure virtual

Implemented in RE::hkp3AxisSweep.

◆ CheckDeterminism()

virtual void RE::hkpBroadPhase::CheckDeterminism ( )
virtual

Reimplemented in RE::hkp3AxisSweep.

◆ Defragment()

virtual void RE::hkpBroadPhase::Defragment ( )
pure virtual

Implemented in RE::hkp3AxisSweep.

◆ GetAabb()

virtual void RE::hkpBroadPhase::GetAabb ( const hkpBroadPhaseHandle a_object,
hkAabb a_aabb 
) const
pure virtual

Implemented in RE::hkp3AxisSweep.

◆ GetAabbCacheSize()

virtual std::int32_t RE::hkpBroadPhase::GetAabbCacheSize ( ) const
pure virtual

Implemented in RE::hkp3AxisSweep.

◆ GetAllAabbs()

virtual void RE::hkpBroadPhase::GetAllAabbs ( hkArray< hkAabb > &  a_allAabbs) const
pure virtual

Implemented in RE::hkp3AxisSweep.

◆ GetCapabilityDelegate()

virtual const hkpBroadPhase* RE::hkpBroadPhase::GetCapabilityDelegate ( Capabilities  a_cap) const
virtual

◆ GetExtents()

virtual void RE::hkpBroadPhase::GetExtents ( hkVector4 a_worldMinOut,
hkVector4 a_worldMaxOut 
) const
pure virtual

Implemented in RE::hkp3AxisSweep.

◆ GetNumObjects()

virtual std::int32_t RE::hkpBroadPhase::GetNumObjects ( ) const
pure virtual

Implemented in RE::hkp3AxisSweep.

◆ GetOffsetLowHigh32bit()

virtual void RE::hkpBroadPhase::GetOffsetLowHigh32bit ( hkVector4 a_offsetLow32bit,
hkVector4 a_offsetHigh32bit 
) const
pure virtual

Implemented in RE::hkp3AxisSweep.

◆ GetType()

virtual BroadPhaseType RE::hkpBroadPhase::GetType ( ) const
pure virtual

Implemented in RE::hkp3AxisSweep.

◆ QuerySingleAabb()

virtual void RE::hkpBroadPhase::QuerySingleAabb ( const hkAabb a_aabb,
hkArray< hkpBroadPhaseHandlePair > &  a_pairsOut 
) const
pure virtual

Implemented in RE::hkp3AxisSweep.

◆ QuerySingleAabbWithCollector()

virtual void RE::hkpBroadPhase::QuerySingleAabbWithCollector ( const hkAabb a_aabb,
hkpBroadPhaseCastCollector a_collector 
) const
pure virtual

Implemented in RE::hkp3AxisSweep.

◆ RemoveObject()

virtual void RE::hkpBroadPhase::RemoveObject ( hkpBroadPhaseHandle a_object,
hkArray< hkpBroadPhaseHandlePair > &  a_pairsOut 
)
pure virtual

Implemented in RE::hkp3AxisSweep.

◆ RemoveObjectBatch()

virtual void RE::hkpBroadPhase::RemoveObjectBatch ( const hkArrayBase< hkpBroadPhaseHandle * > &  a_removeObjectList,
hkArray< hkpBroadPhaseHandlePair > &  a_delPairsOut 
)
pure virtual

Implemented in RE::hkp3AxisSweep.

◆ ReQuerySingleObject()

virtual void RE::hkpBroadPhase::ReQuerySingleObject ( const hkpBroadPhaseHandle a_object,
hkArray< hkpBroadPhaseHandlePair > &  a_pairsOut 
) const
pure virtual

Implemented in RE::hkp3AxisSweep.

◆ Set32BitOffsetAndScale()

virtual void RE::hkpBroadPhase::Set32BitOffsetAndScale ( const hkVector4 a_offsetLow,
const hkVector4 a_offsetHigh,
const hkVector4 a_scale 
)
pure virtual

Implemented in RE::hkp3AxisSweep.

◆ ShiftAllObjects()

virtual void RE::hkpBroadPhase::ShiftAllObjects ( const hkVector4 a_shiftDistance,
hkVector4 a_effectiveShiftDistanceOut,
hkArray< hkpBroadPhaseHandlePair > &  a_newCollisionPairs 
)
pure virtual

Implemented in RE::hkp3AxisSweep.

◆ ShiftBroadPhase()

virtual void RE::hkpBroadPhase::ShiftBroadPhase ( const hkVector4 a_shiftDistance,
hkVector4 a_effectiveShiftDistanceOut,
hkArray< hkpBroadPhaseHandlePair > &  a_newCollisionPairs 
)
pure virtual

Implemented in RE::hkp3AxisSweep.

◆ UpdateAabbs()

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

Implemented in RE::hkp3AxisSweep.

◆ UpdateAabbsUInt32()

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

Implemented in RE::hkp3AxisSweep.

Member Data Documentation

◆ caps

const stl::enumeration<Capabilities, std::uint32_t> RE::hkpBroadPhase::caps

◆ criticalSection

hkCriticalSection* RE::hkpBroadPhase::criticalSection

◆ multiThreadCheck

hkMultiThreadCheck RE::hkpBroadPhase::multiThreadCheck
mutable

◆ pad24

std::uint32_t RE::hkpBroadPhase::pad24

◆ RTTI

constexpr auto RE::hkpBroadPhase::RTTI = RTTI_hkpBroadPhase
inlinestaticconstexpr

◆ size

const std::uint16_t RE::hkpBroadPhase::size

◆ type

const stl::enumeration<BroadPhaseType, std::uint16_t> RE::hkpBroadPhase::type

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