externals
box2d
src
dynamics
b2_world_callbacks.cpp
Go to the documentation of this file.
1
// MIT License
2
3
// Copyright (c) 2019 Erin Catto
4
5
// Permission is hereby granted, free of charge, to any person obtaining a copy
6
// of this software and associated documentation files (the "Software"), to deal
7
// in the Software without restriction, including without limitation the rights
8
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
// copies of the Software, and to permit persons to whom the Software is
10
// furnished to do so, subject to the following conditions:
11
12
// The above copyright notice and this permission notice shall be included in all
13
// copies or substantial portions of the Software.
14
15
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
// SOFTWARE.
22
23
#include "
box2d/b2_fixture.h
"
24
#include "
box2d/b2_world_callbacks.h
"
25
26
// Return true if contact calculations should be performed between these two shapes.
27
// If you implement your own collision filter you may want to build from this implementation.
28
bool
b2ContactFilter::ShouldCollide
(
b2Fixture
* fixtureA,
b2Fixture
* fixtureB)
29
{
30
const
b2Filter
& filterA = fixtureA->
GetFilterData
();
31
const
b2Filter
& filterB = fixtureB->
GetFilterData
();
32
33
if
(filterA.
groupIndex
== filterB.
groupIndex
&& filterA.
groupIndex
!= 0)
34
{
35
return
filterA.
groupIndex
> 0;
36
}
37
38
bool
collide = (filterA.
maskBits
& filterB.
categoryBits
) != 0 && (filterA.
categoryBits
& filterB.
maskBits
) != 0;
39
return
collide;
40
}
b2Fixture::GetFilterData
const b2Filter & GetFilterData() const
Get the contact filtering data.
Definition:
b2_fixture.h:273
b2Fixture
Definition:
b2_fixture.h:116
b2ContactFilter::ShouldCollide
virtual bool ShouldCollide(b2Fixture *fixtureA, b2Fixture *fixtureB)
Definition:
b2_world_callbacks.cpp:28
b2_fixture.h
b2Filter
This holds contact filtering data.
Definition:
b2_fixture.h:37
b2_world_callbacks.h
b2Filter::groupIndex
int16 groupIndex
Definition:
b2_fixture.h:56
b2Filter::categoryBits
uint16 categoryBits
The collision category bits. Normally you would just set one bit.
Definition:
b2_fixture.h:47
b2Filter::maskBits
uint16 maskBits
Definition:
b2_fixture.h:51
mvsim
Author(s):
autogenerated on Tue Jul 4 2023 03:08:19