Toggle navigation
PlayRho
0.9.0
GitHub
Main Page
Modules
Classes
Files
Examples
File List
File Members
Dynamics
StepStats.hpp
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2017 Louis Langholtz https://github.com/louis-langholtz/PlayRho
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
*
8
* Permission is granted to anyone to use this software for any purpose,
9
* including commercial applications, and to alter it and redistribute it
10
* freely, subject to the following restrictions:
11
*
12
* 1. The origin of this software must not be misrepresented; you must not
13
* claim that you wrote the original software. If you use this software
14
* in a product, an acknowledgment in the product documentation would be
15
* appreciated but is not required.
16
* 2. Altered source versions must be plainly marked as such, and must not be
17
* misrepresented as being the original software.
18
* 3. This notice may not be removed or altered from any source distribution.
19
*/
20
21
#ifndef PLAYRHO_DYNAMICS_STEPSTATS_HPP
22
#define PLAYRHO_DYNAMICS_STEPSTATS_HPP
23
24
#include <
PlayRho/Common/Settings.hpp
>
25
26
namespace
playrho
{
27
30
struct
PreStepStats
31
{
33
using
counter_type
= std::uint32_t;
34
35
counter_type
proxiesMoved
= 0;
36
counter_type
destroyed
= 0;
37
counter_type
added
= 0;
38
counter_type
ignored
= 0;
39
counter_type
updated
= 0;
40
counter_type
skipped
= 0;
41
};
42
46
struct
RegStepStats
47
{
49
using
counter_type
= std::uint32_t;
50
52
Length
minSeparation
= std::numeric_limits<Length>::infinity();
53
55
Momentum
maxIncImpulse
= 0;
56
57
BodyCounter
islandsFound
= 0;
58
BodyCounter
islandsSolved
= 0;
59
counter_type
contactsAdded
= 0;
60
counter_type
bodiesSlept
= 0;
61
counter_type
proxiesMoved
= 0;
62
counter_type
sumPosIters
= 0;
63
counter_type
sumVelIters
= 0;
64
};
65
69
struct
ToiStepStats
70
{
72
using
counter_type
= std::uint32_t;
73
75
Length
minSeparation
= std::numeric_limits<Length>::infinity();
76
78
Momentum
maxIncImpulse
= 0;
79
80
counter_type
islandsFound
= 0;
81
counter_type
islandsSolved
= 0;
82
counter_type
contactsFound
= 0;
83
counter_type
contactsAtMaxSubSteps
= 0;
84
counter_type
contactsUpdatedToi
= 0;
85
counter_type
contactsUpdatedTouching
= 0;
86
counter_type
contactsSkippedTouching
= 0;
87
counter_type
contactsAdded
= 0;
88
counter_type
proxiesMoved
= 0;
89
counter_type
sumPosIters
= 0;
90
counter_type
sumVelIters
= 0;
91
counter_type
maxSimulContacts
= 0;
92
94
using
dist_iter_type
= std::remove_const<decltype(
DefaultMaxDistanceIters
)>::type;
95
97
using
toi_iter_type
= std::remove_const<decltype(
DefaultMaxToiIters
)>::type;
98
100
using
root_iter_type
= std::remove_const<decltype(
DefaultMaxToiRootIters
)>::type;
101
102
dist_iter_type
maxDistIters
= 0;
103
toi_iter_type
maxToiIters
= 0;
104
root_iter_type
maxRootIters
= 0;
105
};
106
119
struct
StepStats
120
{
121
PreStepStats
pre
;
122
RegStepStats
reg
;
123
ToiStepStats
toi
;
124
};
125
126
}
// namespace playrho
127
128
#endif // PLAYRHO_DYNAMICS_STEPSTATS_HPP