mirror of https://github.com/zeldaret/botw.git
Havok: Add hkpBroadPhaseBorder
This commit is contained in:
parent
7c3bf4a382
commit
3379577a1e
|
@ -128,12 +128,14 @@ add_library(hkStubs OBJECT
|
||||||
Havok/Physics2012/Dynamics/Motion/Rigid/hkpFixedRigidMotion.h
|
Havok/Physics2012/Dynamics/Motion/Rigid/hkpFixedRigidMotion.h
|
||||||
Havok/Physics2012/Dynamics/Motion/Rigid/hkpKeyframedRigidMotion.h
|
Havok/Physics2012/Dynamics/Motion/Rigid/hkpKeyframedRigidMotion.h
|
||||||
Havok/Physics2012/Dynamics/Motion/Rigid/hkpSphereMotion.h
|
Havok/Physics2012/Dynamics/Motion/Rigid/hkpSphereMotion.h
|
||||||
|
Havok/Physics2012/Dynamics/Phantom/hkpPhantomOverlapListener.h
|
||||||
Havok/Physics2012/Dynamics/World/hkpPhysicsSystem.h
|
Havok/Physics2012/Dynamics/World/hkpPhysicsSystem.h
|
||||||
Havok/Physics2012/Dynamics/World/hkpSimulationIsland.h
|
Havok/Physics2012/Dynamics/World/hkpSimulationIsland.h
|
||||||
Havok/Physics2012/Dynamics/World/hkpWorld.h
|
Havok/Physics2012/Dynamics/World/hkpWorld.h
|
||||||
Havok/Physics2012/Dynamics/World/hkpWorldCinfo.cpp
|
Havok/Physics2012/Dynamics/World/hkpWorldCinfo.cpp
|
||||||
Havok/Physics2012/Dynamics/World/hkpWorldCinfo.h
|
Havok/Physics2012/Dynamics/World/hkpWorldCinfo.h
|
||||||
Havok/Physics2012/Dynamics/World/hkpWorldObject.h
|
Havok/Physics2012/Dynamics/World/hkpWorldObject.h
|
||||||
|
Havok/Physics2012/Dynamics/World/BroadPhaseBorder/hkpBroadPhaseBorder.h
|
||||||
Havok/Physics2012/Dynamics/World/Listener/hkpIslandActivationListener.h
|
Havok/Physics2012/Dynamics/World/Listener/hkpIslandActivationListener.h
|
||||||
Havok/Physics2012/Dynamics/World/Listener/hkpIslandPostCollideListener.h
|
Havok/Physics2012/Dynamics/World/Listener/hkpIslandPostCollideListener.h
|
||||||
Havok/Physics2012/Dynamics/World/Listener/hkpIslandPostIntegrateListener.h
|
Havok/Physics2012/Dynamics/World/Listener/hkpIslandPostIntegrateListener.h
|
||||||
|
|
|
@ -0,0 +1,38 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <Havok/Common/Base/hkBase.h>
|
||||||
|
|
||||||
|
class hkpPhantom;
|
||||||
|
class hkpCollidable;
|
||||||
|
|
||||||
|
enum hkpCollidableAccept {
|
||||||
|
HK_COLLIDABLE_ACCEPT = 0,
|
||||||
|
HK_COLLIDABLE_REJECT = 1,
|
||||||
|
};
|
||||||
|
|
||||||
|
struct hkpCollidableAddedEvent {
|
||||||
|
HK_DECLARE_CLASS_ALLOCATOR(hkpCollidableAddedEvent)
|
||||||
|
|
||||||
|
const hkpPhantom* m_phantom;
|
||||||
|
const hkpCollidable* m_collidable;
|
||||||
|
mutable hkpCollidableAccept m_collidableAccept;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct hkpCollidableRemovedEvent {
|
||||||
|
HK_DECLARE_CLASS_ALLOCATOR(hkpCollidableRemovedEvent)
|
||||||
|
|
||||||
|
const hkpPhantom* m_phantom;
|
||||||
|
const hkpCollidable* m_collidable;
|
||||||
|
hkBool m_collidableWasAdded;
|
||||||
|
};
|
||||||
|
|
||||||
|
class hkpPhantomOverlapListener {
|
||||||
|
public:
|
||||||
|
HK_DECLARE_CLASS_ALLOCATOR(hkpPhantomOverlapListener)
|
||||||
|
|
||||||
|
virtual void collidableAddedCallback(const hkpCollidableAddedEvent& event) = 0;
|
||||||
|
|
||||||
|
virtual void collidableRemovedCallback(const hkpCollidableRemovedEvent& event) = 0;
|
||||||
|
|
||||||
|
virtual ~hkpPhantomOverlapListener() = default;
|
||||||
|
};
|
|
@ -0,0 +1,41 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <Havok/Common/Base/hkBase.h>
|
||||||
|
#include <Havok/Physics2012/Dynamics/Phantom/hkpPhantomOverlapListener.h>
|
||||||
|
#include <Havok/Physics2012/Dynamics/World/Listener/hkpWorldDeletionListener.h>
|
||||||
|
#include <Havok/Physics2012/Dynamics/World/Listener/hkpWorldPostSimulationListener.h>
|
||||||
|
#include <Havok/Physics2012/Dynamics/World/hkpWorldCinfo.h>
|
||||||
|
|
||||||
|
class hkpEntity;
|
||||||
|
class hkpPhantom;
|
||||||
|
class hkpWorld;
|
||||||
|
|
||||||
|
class hkpBroadPhaseBorder : public hkReferencedObject,
|
||||||
|
protected hkpWorldDeletionListener,
|
||||||
|
protected hkpPhantomOverlapListener,
|
||||||
|
protected hkpWorldPostSimulationListener {
|
||||||
|
public:
|
||||||
|
HK_DECLARE_CLASS_ALLOCATOR(hkpBroadPhaseBorder)
|
||||||
|
|
||||||
|
hkpBroadPhaseBorder(
|
||||||
|
hkpWorld* world,
|
||||||
|
hkpWorldCinfo::BroadPhaseBorderBehaviour type = hkpWorldCinfo::BROADPHASE_BORDER_ASSERT,
|
||||||
|
hkBool postponeAndSortCallbacks = false);
|
||||||
|
|
||||||
|
~hkpBroadPhaseBorder() override;
|
||||||
|
|
||||||
|
virtual void maxPositionExceededCallback(hkpEntity* body);
|
||||||
|
|
||||||
|
virtual void deactivate();
|
||||||
|
|
||||||
|
void collidableAddedCallback(const hkpCollidableAddedEvent& event) override;
|
||||||
|
void collidableRemovedCallback(const hkpCollidableRemovedEvent& event) override;
|
||||||
|
void postSimulationCallback(hkpWorld* world) override;
|
||||||
|
void worldDeletedCallback(hkpWorld* world) override;
|
||||||
|
|
||||||
|
hkpWorld* m_world;
|
||||||
|
hkpPhantom* m_phantoms[6];
|
||||||
|
hkpWorldCinfo::BroadPhaseBorderBehaviour m_type;
|
||||||
|
hkBool m_postponeAndSortCallbacks;
|
||||||
|
hkArray<hkpEntity*> m_entitiesExitingBroadPhase;
|
||||||
|
};
|
Loading…
Reference in New Issue