pub struct IdPool { /* private fields */ }Expand description
(b2IdPool)
Implementations§
Source§impl IdPool
impl IdPool
Sourcepub fn id_count(&self) -> i32
pub fn id_count(&self) -> i32
(b2GetIdCount)
Examples found in repository?
examples/demo_scenes.rs (line 81)
50fn main() {
51 // === Bodies demo scene ===
52 let mut wd = default_world_def();
53 wd.gravity = m::Vec2 { x: 0.0, y: -10.0 };
54 let mut world = World::new(&wd);
55
56 add_static_box(&mut world, 0.0, -0.5, 13.0, 0.5);
57 add_static_box(&mut world, -12.2, 2.0, 0.3, 2.0);
58 add_static_box(&mut world, 12.2, 2.0, 0.3, 2.0);
59
60 let mut tracked = Vec::new();
61 for i in 0..24usize {
62 let x = -6.0 + (i % 8) as f32 * 1.7 + 0.13 * (i % 3) as f32;
63 let y = 5.0 + (i / 8) as f32 * 1.6;
64 if i % 2 == 0 {
65 let hx = 0.25 + 0.2 * ((i * 7) % 3) as f32 * 0.5;
66 tracked.push(add_box(&mut world, x, y, hx, hx));
67 } else {
68 let r = 0.22 + 0.16 * ((i * 5) % 3) as f32 * 0.5;
69 tracked.push(add_circle(&mut world, x, y, r, 1.0));
70 }
71 }
72
73 for step in 0..600 {
74 world_step(&mut world, 1.0 / 60.0, 4);
75 if step % 100 == 0 {
76 let t = get_body_transform(&world, tracked[0]);
77 println!(
78 "bodies step {step}: body0 = ({:.3}, {:.3}), contacts = {}",
79 t.p.x,
80 t.p.y,
81 world.contact_id_pool.id_count()
82 );
83 }
84 }
85 println!("BODIES SCENE OK");
86
87 // === Stacking demo scene ===
88 let mut world = World::new(&wd);
89 add_static_box(&mut world, 0.0, -0.5, 11.0, 0.5);
90 let h = 0.4f32;
91 let base = 9i32;
92 for row in 0..base {
93 let count = base - row;
94 let y = h + row as f32 * 2.0 * h;
95 for i in 0..count {
96 let x = (i as f32 - (count - 1) as f32 / 2.0) * 2.05 * h;
97 add_box(&mut world, x, y, h, h);
98 }
99 }
100 for _ in 0..600 {
101 world_step(&mut world, 1.0 / 60.0, 4);
102 }
103 println!(
104 "stacking settled: awake = {}",
105 world.solver_sets[box2d_rust::solver_set::AWAKE_SET as usize]
106 .body_sims
107 .len()
108 );
109 // Drop the heavy ball
110 add_circle(&mut world, 0.3, 9.0, 0.5, 4.0);
111 for _ in 0..600 {
112 world_step(&mut world, 1.0 / 60.0, 4);
113 }
114 println!("STACKING SCENE OK");
115}Sourcepub fn id_capacity(&self) -> i32
pub fn id_capacity(&self) -> i32
(b2GetIdCapacity)
Sourcepub fn validate_free_id(&self, id: i32)
pub fn validate_free_id(&self, id: i32)
Debug check that id is currently free. (b2ValidateFreeId)
Sourcepub fn validate_used_id(&self, id: i32)
pub fn validate_used_id(&self, id: i32)
Debug check that id is currently in use. (b2ValidateUsedId)
Trait Implementations§
Auto Trait Implementations§
impl Freeze for IdPool
impl RefUnwindSafe for IdPool
impl Send for IdPool
impl Sync for IdPool
impl Unpin for IdPool
impl UnsafeUnpin for IdPool
impl UnwindSafe for IdPool
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more