ackb2d 0.9
3D Gamestudio Box 2d Wraper
|
00001 #ifndef __B2_TYPES_H__ 00002 #define __B2_TYPES_H__ 00003 00005 // Dynamics 00007 00010 typedef struct b2FixtureDef 00011 { 00012 void *dummy; 00013 } b2FixtureDef; 00014 00020 typedef struct b2Fixture 00021 { 00022 void *dummy; 00023 } b2Fixture; 00024 00029 typedef struct b2BodyDef 00030 { 00031 void *dummy; 00032 } b2BodyDef; 00033 00035 typedef struct b2Body 00036 { 00037 void *dummy; 00038 } b2Body; 00039 00043 typedef struct b2World 00044 { 00045 void *dummy; 00046 } b2World; 00047 00049 /*typedef struct b2Filter 00050 { 00051 void *dummy; 00052 } b2Filter;*/ 00053 00055 typedef struct b2Filter 00056 { 00058 uint16 categoryBits; 00059 00062 uint16 maskBits; 00063 00067 uint16 groupIndex; 00068 } b2Filter; 00069 00071 // Dynamics/Callbacks 00073 00077 typedef struct b2DestructionListener 00078 { 00079 void *jointCallback; 00080 void *fixtureCallback; 00081 void *userData; 00082 } b2DestructionListener; 00083 00086 typedef struct b2ContactFilter 00087 { 00088 void *filterCallback; 00089 void *userData; 00090 } b2ContactFilter; 00091 00101 typedef struct b2ContactListener 00102 { 00103 void *beginContactCallback; 00104 void *endContactCallback; 00105 void *presolveCallback; 00106 void *postSolveCallback; 00107 void *userData; 00108 } b2ContactListener; 00109 00112 typedef struct b2QueryCallback 00113 { 00114 void *reportFixtureCallback; 00115 void *userData; 00116 } b2QueryCallback; 00117 00120 typedef struct b2RayCastCallback 00121 { 00122 void *reportFixtureCallback; 00123 void *userData; 00124 } b2RayCastCallback; 00125 00128 typedef struct b2DebugDraw 00129 { 00131 void *drawPolygonFunc; 00133 void *drawSolidPolygonFunc; 00135 void *drawCircleFunc; 00137 void *drawSolidCircleFunc; 00139 void *drawSegmentFunc; 00142 void *drawTransformFunc; 00143 00144 void *userData; 00145 } b2DebugDraw; 00146 00150 typedef struct ackDebugDraw 00151 { 00152 var world_scale; 00153 var alpha; 00154 } ackDebugDraw; 00155 00157 // Dynamics/Contacts 00159 00160 typedef struct b2Contact 00161 { 00162 void *dummy; 00163 } b2Contact; 00164 00170 typedef struct b2ContactEdge 00171 { 00172 b2Body* other; 00173 b2Contact* contact; 00174 struct b2ContactEdge* prev; 00175 struct b2ContactEdge* next; 00176 } b2ContactEdge; 00177 00179 // Dynamics/Joints 00181 00183 typedef struct b2JointDef 00184 { 00185 void *dummy; 00186 } b2JointDef; 00187 00190 typedef struct b2Joint 00191 { 00192 void *dummy; 00193 } b2Joint; 00194 00200 typedef struct b2JointEdge 00201 { 00202 b2Body* other; 00203 b2Joint* joint; 00204 struct b2JointEdge* prev; 00205 struct b2JointEdge* next; 00206 } b2JointEdge; 00207 00214 typedef struct b2LineJointDef 00215 { 00216 void *dummy; 00217 } b2LineJointDef; 00218 00223 typedef struct b2LineJoint 00224 { 00225 void *dummy; 00226 } b2LineJoint; 00227 00231 typedef struct b2GearJointDef 00232 { 00233 void *dummy; 00234 } b2GearJointDef; 00235 00245 typedef struct b2GearJoint 00246 { 00247 void *dummy; 00248 } b2GearJoint; 00249 00251 typedef struct b2FrictionJointDef 00252 { 00253 void *dummy; 00254 } b2FrictionJointDef; 00255 00258 typedef struct b2FrictionJoint 00259 { 00260 void *dummy; 00261 } b2FrictionJoint; 00262 00269 typedef struct b2DistanceJointDef 00270 { 00271 void *dummy; 00272 } b2DistanceJointDef; 00273 00277 typedef struct b2DistanceJoint 00278 { 00279 void *dummy; 00280 } b2DistanceJoint; 00281 00284 typedef struct b2MouseJointDef 00285 { 00286 void *dummy; 00287 } b2MouseJointDef; 00288 00296 typedef struct b2MouseJoint 00297 { 00298 void *dummy; 00299 } b2MouseJoint; 00300 00308 typedef struct b2PrismaticJointDef 00309 { 00310 void *dummy; 00311 } b2PrismaticJointDef; 00312 00317 typedef struct b2PrismaticJoint 00318 { 00319 void *dummy; 00320 } b2PrismaticJoint; 00321 00325 typedef struct b2PulleyJointDef 00326 { 00327 void *dummy; 00328 } b2PulleyJointDef; 00329 00336 typedef struct b2PulleyJoint 00337 { 00338 void *dummy; 00339 } b2PulleyJoint; 00340 00352 typedef struct b2RevoluteJointDef 00353 { 00354 void *dummy; 00355 } b2RevoluteJointDef; 00356 00363 typedef struct b2RevoluteJoint 00364 { 00365 void *dummy; 00366 } b2RevoluteJoint; 00367 00371 typedef struct b2WeldJointDef 00372 { 00373 void *dummy; 00374 } b2WeldJointDef; 00375 00378 typedef struct b2WeldJoint 00379 { 00380 void *dummy; 00381 } b2WeldJoint; 00382 00384 // Collision 00386 00388 typedef struct b2RayCastInput 00389 { 00390 VECTOR p1, p2; 00391 var maxFraction; 00392 } b2RayCastInput; 00393 00396 typedef struct b2RayCastOutput 00397 { 00398 VECTOR normal; 00399 var fraction; 00400 } b2RayCastOutput; 00401 00403 typedef struct b2AABB 00404 { 00405 void *dummy; 00406 } b2AABB; 00407 00409 typedef struct b2MassData 00410 { 00412 var mass; 00413 00415 VECTOR center; 00416 00418 var I; 00419 } b2MassData; 00420 00423 typedef struct b2DistanceProxy 00424 { 00425 void *dummy; 00426 } b2DistanceProxy; 00427 00432 typedef struct b2TOIInput 00433 { 00434 void *dummy; 00435 } b2TOIInput; 00436 00440 typedef struct b2TOIOutput 00441 { 00444 var state; 00445 00447 var t; 00448 } b2TOIOutput; 00449 00453 typedef struct b2SimplexCache 00454 { 00455 float32 metric; 00456 uint16 count; 00457 uint8 indexA[3]; 00458 uint8 indexB[3]; 00459 } b2SimplexCache; 00460 00467 typedef struct b2DistanceInput 00468 { 00469 void *dummy; 00470 } b2DistanceInput; 00471 00475 typedef struct b2DistanceOutput 00476 { 00477 VECTOR pointA; 00478 VECTOR pointB; 00479 var distance; 00480 var iterations; 00481 } b2DistanceOutput; 00482 00493 typedef struct b2ManifoldPoint 00494 { 00495 void *dummy; 00496 } b2ManifoldPoint; 00497 00514 typedef struct b2Manifold 00515 { 00516 void *dummy; 00517 } b2Manifold; 00518 00520 typedef struct b2WorldManifold 00521 { 00522 void *dummy; 00523 } b2WorldManifold; 00524 00526 typedef struct b2ClipVertex 00527 { 00528 void *dummy; 00529 } b2ClipVertex; 00530 00532 // Collision/Shapes 00534 00538 typedef struct b2Shape 00539 { 00540 void *dummy; 00541 } b2Shape; 00542 00544 typedef struct b2CircleShape 00545 { 00546 void *dummy; 00547 } b2CircleShape; 00548 00551 typedef struct b2PolygonShape 00552 { 00553 void *dummy; 00554 } b2PolygonShape; 00555 00556 00558 // Common 00560 00561 // This is a stack allocator used for fast per step allocations. 00562 // You must nest allocate/free pairs. The code will assert 00563 // if you try to interleave multiple allocate/free pairs. 00564 typedef struct b2StackAllocator 00565 { 00566 void *dummy; 00567 } b2StackAllocator; 00568 00569 // This is a small object allocator used for allocating small 00570 // objects that persist for more than one time step. 00571 // See: http://www.codeproject.com/useritems/Small_Block_Allocator.asp 00572 typedef struct b2BlockAllocator 00573 { 00574 void *dummy; 00575 } b2BlockAllocator; 00576 00579 typedef struct b2Transform 00580 { 00581 void *dummy; 00582 } b2Transform; 00583 00588 typedef struct b2Sweep 00589 { 00590 void *dummy; 00591 } b2Sweep; 00592 00593 #endif