1/*
2* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org
3*
4* This software is provided 'as-is', without any express or implied
5* warranty. In no event will the authors be held liable for any damages
6* arising from the use of this software.
7* Permission is granted to anyone to use this software for any purpose,
8* including commercial applications, and to alter it and redistribute it
9* freely, subject to the following restrictions:
10* 1. The origin of this software must not be misrepresented; you must not
11* claim that you wrote the original software. If you use this software
12* in a product, an acknowledgment in the product documentation would be
13* appreciated but is not required.
14* 2. Altered source versions must be plainly marked as such, and must not be
15* misrepresented as being the original software.
16* 3. This notice may not be removed or altered from any source distribution.
17*/
18
19#ifndef B2_CONTACT_MANAGER_H
20#define B2_CONTACT_MANAGER_H
21
22#include <Box2D/Collision/b2BroadPhase.h>
23
24class b2Contact;
25class b2ContactFilter;
26class b2ContactListener;
27class b2BlockAllocator;
28
29// Delegate of b2World.
30class b2ContactManager
31{
32public:
33 b2ContactManager();
34
35 // Broad-phase callback.
36 void AddPair(void* proxyUserDataA, void* proxyUserDataB);
37
38 void FindNewContacts();
39
40 void Destroy(b2Contact* c);
41
42 void Collide();
43
44 b2BroadPhase m_broadPhase;
45 b2Contact* m_contactList;
46 int32 m_contactCount;
47 b2ContactFilter* m_contactFilter;
48 b2ContactListener* m_contactListener;
49 b2BlockAllocator* m_allocator;
50};
51
52#endif
53