Repository navigation
Expand file tree
/
Copy pathdebug_boxes3.c
More file actions
42 lines (38 loc) · 1.45 KB
/
Copy pathdebug_boxes3.c
File metadata and controls
42 lines (38 loc) · 1.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
/* Port of examples3d/debug_boxes3.rs. */
#include "testbed.h"
#include "rapier_helpers.h"
#include "rapier_math.h"
void tbDebugBoxes3(Testbed *testbed) {
/* World. */
R3World *world = r3NewWorld();
for (int i = 0; i < 6; i++) {
R3RigidBodyDesc rigidBody = r3FixedRigidBodyDesc();
rigidBody.position.translation = r3Vector(0, -0.1, 0);
R3ColliderDesc collider = r3CuboidColliderDesc(r3Vector(100.1, 0.1, 100.1));
rigidBody.canSleep = !testbed->noSleep;
R3RigidBodyHandle rigidBodyHandle = r3InsertRigidBody(world, &rigidBody);
r3InsertCollider(rigidBodyHandle, &collider);
}
for (int i = 0; i < 2; i++) {
R3RigidBodyDesc rigidBody = r3DynamicRigidBodyDesc();
rigidBody.position.translation = r3Vector(1.1, 0, 0);
rigidBody.canSleep = 0;
R3ColliderDesc collider = r3CuboidColliderDesc(r3Vector(2, 0.1, 1));
if (testbed->noSleep) {
rigidBody.canSleep = 0;
rigidBody.sleeping = 0;
}
R3RigidBodyHandle rigidBodyHandle = r3InsertRigidBody(world, &rigidBody);
r3InsertCollider(rigidBodyHandle, &collider);
}
/* Set up the viewer. */
tbCamera(testbed, 10, 10, 10, 0, 0, 0);
/* Set up rendering and run the simulation. */
tbSetWorld(testbed, world);
while (tbRenderFrame(testbed, &world)) {
if (tbSimulating(testbed)) {
r3Step(world, NULL, NULL);
}
}
r3FreeWorld(world);
}