mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-04-19 11:25:27 +00:00
Collision events
This commit is contained in:
parent
2a96c946b7
commit
8aaed004f1
2 changed files with 38 additions and 0 deletions
|
|
@ -24,6 +24,7 @@
|
|||
// Arcane-FX for MIT Licensed Open Source version of Torque 3D from GarageGames
|
||||
// Copyright (C) 2015 Faust Logic, Inc.
|
||||
//~~~~~~~~~~~~~~~~~~~~//~~~~~~~~~~~~~~~~~~~~//~~~~~~~~~~~~~~~~~~~~//~~~~~~~~~~~~~~~~~~~~~//
|
||||
|
||||
#include "platform/platform.h"
|
||||
#include "T3D/shapeBase.h"
|
||||
|
||||
|
|
@ -3722,6 +3723,31 @@ void ShapeBase::setCurrentWaterObject( WaterObject *obj )
|
|||
mCurrentWaterObject = obj;
|
||||
}
|
||||
|
||||
void ShapeBase::notifyCollisionCallbacks(SceneObject* obj, const VectorF& vel)
|
||||
{
|
||||
for (S32 i = 0; i < collision_callbacks.size(); i++)
|
||||
if (collision_callbacks[i])
|
||||
collision_callbacks[i]->collisionNotify(this, obj, vel);
|
||||
}
|
||||
|
||||
void ShapeBase::registerCollisionCallback(CollisionEventCallback* ce_cb)
|
||||
{
|
||||
for (S32 i = 0; i < collision_callbacks.size(); i++)
|
||||
if (collision_callbacks[i] == ce_cb)
|
||||
return;
|
||||
|
||||
collision_callbacks.push_back(ce_cb);
|
||||
}
|
||||
|
||||
void ShapeBase::unregisterCollisionCallback(CollisionEventCallback* ce_cb)
|
||||
{
|
||||
for (S32 i = 0; i < collision_callbacks.size(); i++)
|
||||
if (collision_callbacks[i] == ce_cb)
|
||||
{
|
||||
collision_callbacks.erase(i);
|
||||
return;
|
||||
}
|
||||
}
|
||||
//--------------------------------------------------------------------------
|
||||
//----------------------------------------------------------------------------
|
||||
DefineEngineMethod( ShapeBase, setHidden, void, ( bool show ),,
|
||||
|
|
|
|||
|
|
@ -1860,6 +1860,18 @@ public:
|
|||
|
||||
protected:
|
||||
DECLARE_CALLBACK( F32, validateCameraFov, (F32 fov) );
|
||||
public:
|
||||
class CollisionEventCallback
|
||||
{
|
||||
public:
|
||||
virtual void collisionNotify(SceneObject* shape0, SceneObject* shape1, const VectorF& vel)=0;
|
||||
};
|
||||
private:
|
||||
Vector<CollisionEventCallback*> collision_callbacks;
|
||||
void notifyCollisionCallbacks(SceneObject*, const VectorF& vel);
|
||||
public:
|
||||
void registerCollisionCallback(CollisionEventCallback*);
|
||||
void unregisterCollisionCallback(CollisionEventCallback*);
|
||||
|
||||
protected:
|
||||
enum {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue