00001 /* 00002 * Copyright (c) 2006-2011 Erin Catto http://www.box2d.org 00003 * 00004 * This software is provided 'as-is', without any express or implied 00005 * warranty. In no event will the authors be held liable for any damages 00006 * arising from the use of this software. 00007 * Permission is granted to anyone to use this software for any purpose, 00008 * including commercial applications, and to alter it and redistribute it 00009 * freely, subject to the following restrictions: 00010 * 1. The origin of this software must not be misrepresented; you must not 00011 * claim that you wrote the original software. If you use this software 00012 * in a product, an acknowledgment in the product documentation would be 00013 * appreciated but is not required. 00014 * 2. Altered source versions must be plainly marked as such, and must not be 00015 * misrepresented as being the original software. 00016 * 3. This notice may not be removed or altered from any source distribution. 00017 */ 00018 00019 #ifndef B2_TIME_STEP_H 00020 #define B2_TIME_STEP_H 00021 00022 #include <Box2D/Common/b2Math.h> 00023 00025 struct b2Profile 00026 { 00027 float32 step; 00028 float32 collide; 00029 float32 solve; 00030 float32 solveInit; 00031 float32 solveVelocity; 00032 float32 solvePosition; 00033 float32 broadphase; 00034 float32 solveTOI; 00035 }; 00036 00038 struct b2TimeStep 00039 { 00040 float32 dt; // time step 00041 float32 inv_dt; // inverse time step (0 if dt == 0). 00042 float32 dtRatio; // dt * inv_dt0 00043 int32 velocityIterations; 00044 int32 positionIterations; 00045 bool warmStarting; 00046 }; 00047 00049 struct b2Position 00050 { 00051 b2Vec2 c; 00052 float32 a; 00053 }; 00054 00056 struct b2Velocity 00057 { 00058 b2Vec2 v; 00059 float32 w; 00060 }; 00061 00063 struct b2SolverData 00064 { 00065 b2TimeStep step; 00066 b2Position* positions; 00067 b2Velocity* velocities; 00068 }; 00069 00070 #endif