Fission FSN
Loading...
Searching...
No Matches
fsICollisionWorld.h
Go to the documentation of this file.
1/********************************************************************
2*
3* File: fsICollisionWorld.h
4*
5* Purpose: Collision world interface
6*
7*********************************************************************/
8
9#ifndef fsICollisionWorldhdr
10#define fsICollisionWorldhdr
11
12#include <fsCore/fsBaseTypes.h>
13
14#include "fsICollisionBody.h"
15#include <map>
16
17struct fsPoint;
18class fsCEntity;
19
20namespace fsNCollision
21{
24
26 {
27 friend class fsCComponentFactory;
28
29 public:
30
31 void render();
32 void update();
33
34 fsF32 scaleFactorGet() const;
35
36 virtual void dynamicBodyDestroy(fsICollisionBody* const pBody) = 0;
37 virtual fsICollisionBody* dynamicBodyCreate(fsCEntity* const pParent, fsICollisionFixture* pShape, fsICollisionBody::eTYPE pType, const fsPoint& pStartPos) = 0;
38
39 static fsICollisionWorld* const instanceGet();
40 static void create();
41 static void destroy();
42
44 {
47 mHit(nullptr)
48 {}
49 };
50
51 typedef void(*TCollisionCallback)(fsSCollisionData pData, void* const pCaller);
52
53 void collisionCallbackRegister(TCollisionCallback const pHandler, void* pCaller);
54
55 protected:
56
57 virtual void renderDo() = 0;
58 virtual void updateDo() = 0;
59 virtual fsF32 scaleFactorGetDo() const = 0;
60
62 virtual ~fsICollisionWorld();
63
64 std::map<void*, TCollisionCallback> mCallbackHandlers;
65
66 private:
67
68 static fsICollisionWorld* mInstance;
69
70 };
71}
72
73#endif
Definition fsCEntity.h:39
Definition fsICollisionBody.h:19
eTYPE
Definition fsICollisionBody.h:25
Definition fsICollisionFixture.h:22
Definition fsICollisionShape.h:23
virtual fsICollisionBody * dynamicBodyCreate(fsCEntity *const pParent, fsICollisionFixture *pShape, fsICollisionBody::eTYPE pType, const fsPoint &pStartPos)=0
friend class fsCComponentFactory
Definition fsICollisionWorld.h:27
static fsICollisionWorld *const instanceGet()
Definition fsICollisionWorld.cpp:34
virtual fsF32 scaleFactorGetDo() const =0
virtual void dynamicBodyDestroy(fsICollisionBody *const pBody)=0
void collisionCallbackRegister(TCollisionCallback const pHandler, void *pCaller)
Definition fsICollisionWorld.cpp:14
void(* TCollisionCallback)(fsSCollisionData pData, void *const pCaller)
Definition fsICollisionWorld.h:51
std::map< void *, TCollisionCallback > mCallbackHandlers
Definition fsICollisionWorld.h:64
static void create()
Definition fsICollisionWorld.cpp:43
static void destroy()
Definition fsICollisionWorld.cpp:48
virtual ~fsICollisionWorld()
Definition fsICollisionWorld.cpp:57
void update()
Definition fsICollisionWorld.cpp:24
void render()
Definition fsICollisionWorld.cpp:19
fsICollisionWorld()
Definition fsICollisionWorld.cpp:53
fsF32 scaleFactorGet() const
Definition fsICollisionWorld.cpp:29
float fsF32
Definition fsBaseTypes.h:28
Definition fsICollisionBody.h:16
Definition fsICollisionWorld.h:44
fsSCollisionData()
Definition fsICollisionWorld.h:46
fsCEntity * mHit
Definition fsICollisionWorld.h:45
Definition fsPoint.h:17