❖
Monad Engine
da02fba2
>
Undercity Codex
_
Loading...
Searching...
No Matches
CollisionObject.cpp
Go to the documentation of this file.
1
#include "physics/CollisionObject.h"
2
3
#include <algorithm>
4
5
namespace
mnd
6
{
7
8
CollisionObjectType
CollisionObject::GetCollisionObjectType
()
9
{
10
return
m_collisionObjType
;
11
}
12
13
void
CollisionObject::AddContactListener
(
IContactListener
*listener)
14
{
15
if
(listener ==
nullptr
)
16
{
17
return
;
18
}
19
if
(std::find(
m_contactListeners
.begin(),
m_contactListeners
.end(), listener) !=
m_contactListeners
.end())
20
{
21
return
;
22
}
23
m_contactListeners
.push_back(listener);
24
}
25
26
void
CollisionObject::RemoveContactListener
(
IContactListener
*listener)
27
{
28
auto
iter = std::find(
m_contactListeners
.begin(),
m_contactListeners
.end(), listener);
29
if
(iter !=
m_contactListeners
.end())
30
{
31
m_contactListeners
.erase(iter);
32
}
33
}
34
35
void
CollisionObject::DispatchContactEvent
(
CollisionObject
*obj,
const
vec3
&pos,
const
vec3
&norm)
36
{
37
auto
listeners =
m_contactListeners
;
38
for
(
auto
listener : listeners)
39
{
40
if
(listener
41
&& std::find(
m_contactListeners
.begin(),
m_contactListeners
.end(), listener) !=
m_contactListeners
.end())
42
{
43
listener->OnContact(obj, pos, norm);
44
}
45
}
46
}
47
48
}
// namespace mnd
mnd::CollisionObject
Definition
CollisionObject.h:21
mnd::CollisionObject::m_collisionObjType
CollisionObjectType m_collisionObjType
Definition
CollisionObject.h:36
mnd::CollisionObject::RemoveContactListener
void RemoveContactListener(IContactListener *listener)
Definition
CollisionObject.cpp:26
mnd::CollisionObject::GetCollisionObjectType
CollisionObjectType GetCollisionObjectType()
Definition
CollisionObject.cpp:8
mnd::CollisionObject::m_contactListeners
std::vector< IContactListener * > m_contactListeners
Definition
CollisionObject.h:37
mnd::CollisionObject::AddContactListener
void AddContactListener(IContactListener *listener)
Definition
CollisionObject.cpp:13
mnd::CollisionObject::DispatchContactEvent
void DispatchContactEvent(CollisionObject *obj, const vec3 &pos, const vec3 &norm)
Definition
CollisionObject.cpp:35
mnd::IContactListener
Definition
CollisionObject.h:44
mnd::vec3
glm::vec3 vec3
3-component float vector (e.g. world position, RGB colour, normals).
Definition
Types.h:51
mnd
Definition
IdleClip.cpp:13
mnd::CollisionObjectType
CollisionObjectType
Definition
CollisionObject.h:15
engine
source
physics
CollisionObject.cpp
Generated by
1.9.8