-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPhysicsCallback.h
37 lines (28 loc) · 929 Bytes
/
PhysicsCallback.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#ifndef PHYSICS_RT_PHYSICSCALLBACK_H
#define PHYSICS_RT_PHYSICSCALLBACK_H
#include "CKBehavior.h"
#include "ivu_types.hxx"
#include "ivu_vector.hxx"
class CKIpionManager;
class PhysicsCallback
{
public:
PhysicsCallback() : m_IpionManager(NULL), m_Type(0), m_Behavior(NULL) {}
PhysicsCallback(CKIpionManager *pm, CKBehavior *beh, int type) : m_IpionManager(pm), m_Type(type), m_Behavior(beh) {}
virtual int Execute() = 0;
virtual ~PhysicsCallback(){};
CKIpionManager *m_IpionManager;
int m_Type;
CKBehavior *m_Behavior;
};
class PhysicsCallbackContainer
{
public:
explicit PhysicsCallbackContainer(CKIpionManager *manager) : m_IpionManager(manager), m_HasCallbacks(FALSE) {}
void Process();
void Process(PhysicsCallback *pc);
CKIpionManager *m_IpionManager;
CKBOOL m_HasCallbacks;
IVP_U_Vector<PhysicsCallback> m_Callbacks[3];
};
#endif // PHYSICS_RT_PHYSICSCALLBACK_H