diff options
author | chai <chaifix@163.com> | 2018-08-06 16:22:00 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2018-08-06 16:22:00 +0800 |
commit | 89e7a9ecfad9a54633eb3ebbab1d1f13ad78826f (patch) | |
tree | 1ba8a806af1b8e7750d6b637c296f08e13cf268e /src/libjin/3rdparty/Box2D/Collision/b2TimeOfImpact.h | |
parent | ea9769944a2db3abe15f537dab67e16fdfc20bef (diff) |
*update
Diffstat (limited to 'src/libjin/3rdparty/Box2D/Collision/b2TimeOfImpact.h')
-rw-r--r-- | src/libjin/3rdparty/Box2D/Collision/b2TimeOfImpact.h | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/src/libjin/3rdparty/Box2D/Collision/b2TimeOfImpact.h b/src/libjin/3rdparty/Box2D/Collision/b2TimeOfImpact.h new file mode 100644 index 0000000..3af2c32 --- /dev/null +++ b/src/libjin/3rdparty/Box2D/Collision/b2TimeOfImpact.h @@ -0,0 +1,58 @@ +/* +* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef B2_TIME_OF_IMPACT_H +#define B2_TIME_OF_IMPACT_H + +#include "Box2D/Common/b2Math.h" +#include "Box2D/Collision/b2Distance.h" + +/// Input parameters for b2TimeOfImpact +struct b2TOIInput +{ + b2DistanceProxy proxyA; + b2DistanceProxy proxyB; + b2Sweep sweepA; + b2Sweep sweepB; + float32 tMax; // defines sweep interval [0, tMax] +}; + +/// Output parameters for b2TimeOfImpact. +struct b2TOIOutput +{ + enum State + { + e_unknown, + e_failed, + e_overlapped, + e_touching, + e_separated + }; + + State state; + float32 t; +}; + +/// Compute the upper bound on time before two shapes penetrate. Time is represented as +/// a fraction between [0,tMax]. This uses a swept separating axis and may miss some intermediate, +/// non-tunneling collisions. If you change the time interval, you should call this function +/// again. +/// Note: use b2Distance to compute the contact point and normal at the time of impact. +void b2TimeOfImpact(b2TOIOutput* output, const b2TOIInput* input); + +#endif |