Commit fb0158d
authored
# Objective
`ColliderParent` should be a relationship for robustness and semantics, and to take advantage of automatic source tracking for rigid bodies.
The `ColliderHierarchyPlugin` also currently deals with both attaching colliders to rigid bodies and managing transforms. This would be good to split into separate plugins.
## Solution
Rename `ColliderParent` to `ColliderOf`, make it a `Relationship`, and add a `RigidBodyColliders` component for the `RelationshipTarget`. Collider hierarchies are now managed via observers and hooks instead of systems.
Note that `ColliderOf` requires a custom `Relationship` implementation, because Bevy's default implementation does not allow relationships to point to themselves.
I also split the `ColliderHierarchyPlugin` into a `ColliderHierarchyPlugin` (manages `ColliderOf` relationships) and `ColliderTransformPlugin` (manages and propagates collider transforms).
---
## Migration Guide
`ColliderParent` has been renamed to `ColliderOf`, and it is now a `Relationship`.
The transform management in `ColliderHierarchyPlugin` has been extracted into a new `ColliderTransformPlugin`. The `ColliderHierarchyPlugin` no longer takes a schedule.
1 parent 24a3a14 commit fb0158d
File tree
19 files changed
+475
-341
lines changed- crates
- avian2d/examples/kinematic_character_2d
- avian3d/examples/kinematic_character_3d
- src
- collision
- collider
- collider_hierarchy
- collider_transform
- parry
- debug_render
- dynamics
- ccd
- rigid_body/mass_properties
- sleeping
- tests
19 files changed
+475
-341
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
267 | 267 | | |
268 | 268 | | |
269 | 269 | | |
270 | | - | |
| 270 | + | |
271 | 271 | | |
272 | 272 | | |
273 | 273 | | |
| |||
277 | 277 | | |
278 | 278 | | |
279 | 279 | | |
280 | | - | |
281 | | - | |
| 280 | + | |
| 281 | + | |
282 | 282 | | |
283 | 283 | | |
284 | 284 | | |
| |||
291 | 291 | | |
292 | 292 | | |
293 | 293 | | |
294 | | - | |
| 294 | + | |
295 | 295 | | |
296 | | - | |
297 | | - | |
298 | | - | |
299 | | - | |
| 296 | + | |
| 297 | + | |
300 | 298 | | |
301 | | - | |
| 299 | + | |
302 | 300 | | |
303 | | - | |
304 | | - | |
305 | | - | |
306 | | - | |
| 301 | + | |
| 302 | + | |
307 | 303 | | |
308 | 304 | | |
309 | 305 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
283 | 283 | | |
284 | 284 | | |
285 | 285 | | |
286 | | - | |
| 286 | + | |
287 | 287 | | |
288 | 288 | | |
289 | 289 | | |
| |||
293 | 293 | | |
294 | 294 | | |
295 | 295 | | |
296 | | - | |
297 | | - | |
| 296 | + | |
| 297 | + | |
298 | 298 | | |
299 | 299 | | |
300 | 300 | | |
| |||
307 | 307 | | |
308 | 308 | | |
309 | 309 | | |
310 | | - | |
| 310 | + | |
311 | 311 | | |
312 | | - | |
313 | | - | |
314 | | - | |
315 | | - | |
| 312 | + | |
| 313 | + | |
316 | 314 | | |
317 | | - | |
| 315 | + | |
318 | 316 | | |
319 | | - | |
320 | | - | |
321 | | - | |
322 | | - | |
| 317 | + | |
| 318 | + | |
323 | 319 | | |
324 | 320 | | |
325 | 321 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
105 | 105 | | |
106 | 106 | | |
107 | 107 | | |
108 | | - | |
| 108 | + | |
109 | 109 | | |
110 | 110 | | |
111 | 111 | | |
| |||
139 | 139 | | |
140 | 140 | | |
141 | 141 | | |
142 | | - | |
| 142 | + | |
143 | 143 | | |
144 | 144 | | |
145 | 145 | | |
| |||
152 | 152 | | |
153 | 153 | | |
154 | 154 | | |
155 | | - | |
| 155 | + | |
156 | 156 | | |
157 | 157 | | |
158 | | - | |
| 158 | + | |
159 | 159 | | |
160 | 160 | | |
161 | 161 | | |
| |||
167 | 167 | | |
168 | 168 | | |
169 | 169 | | |
170 | | - | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
171 | 176 | | |
172 | 177 | | |
173 | | - | |
174 | | - | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
175 | 182 | | |
176 | 183 | | |
177 | 184 | | |
| |||
192 | 199 | | |
193 | 200 | | |
194 | 201 | | |
195 | | - | |
| 202 | + | |
196 | 203 | | |
197 | 204 | | |
198 | 205 | | |
| |||
210 | 217 | | |
211 | 218 | | |
212 | 219 | | |
213 | | - | |
| 220 | + | |
214 | 221 | | |
215 | 222 | | |
216 | 223 | | |
| |||
223 | 230 | | |
224 | 231 | | |
225 | 232 | | |
226 | | - | |
| 233 | + | |
227 | 234 | | |
228 | 235 | | |
229 | 236 | | |
| |||
280 | 287 | | |
281 | 288 | | |
282 | 289 | | |
283 | | - | |
284 | | - | |
| 290 | + | |
| 291 | + | |
285 | 292 | | |
286 | 293 | | |
287 | 294 | | |
288 | 295 | | |
289 | 296 | | |
290 | 297 | | |
291 | | - | |
| 298 | + | |
292 | 299 | | |
293 | 300 | | |
294 | 301 | | |
295 | 302 | | |
296 | | - | |
| 303 | + | |
297 | 304 | | |
298 | 305 | | |
299 | 306 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
188 | 188 | | |
189 | 189 | | |
190 | 190 | | |
191 | | - | |
| 191 | + | |
192 | 192 | | |
193 | 193 | | |
194 | 194 | | |
| |||
197 | 197 | | |
198 | 198 | | |
199 | 199 | | |
200 | | - | |
| 200 | + | |
201 | 201 | | |
202 | 202 | | |
203 | 203 | | |
204 | 204 | | |
205 | 205 | | |
206 | 206 | | |
207 | | - | |
208 | | - | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
209 | 211 | | |
210 | 212 | | |
211 | 213 | | |
212 | 214 | | |
213 | 215 | | |
214 | | - | |
215 | | - | |
| 216 | + | |
| 217 | + | |
216 | 218 | | |
217 | 219 | | |
218 | 220 | | |
| |||
252 | 254 | | |
253 | 255 | | |
254 | 256 | | |
255 | | - | |
256 | | - | |
257 | | - | |
258 | | - | |
259 | | - | |
260 | | - | |
261 | 257 | | |
262 | 258 | | |
263 | 259 | | |
| |||
290 | 286 | | |
291 | 287 | | |
292 | 288 | | |
293 | | - | |
294 | | - | |
295 | | - | |
296 | | - | |
297 | | - | |
298 | | - | |
299 | | - | |
300 | | - | |
301 | | - | |
302 | | - | |
303 | | - | |
304 | | - | |
305 | | - | |
306 | | - | |
307 | | - | |
308 | | - | |
309 | | - | |
310 | | - | |
311 | | - | |
312 | | - | |
313 | | - | |
314 | | - | |
315 | | - | |
316 | 289 | | |
317 | 290 | | |
318 | 291 | | |
| |||
505 | 478 | | |
506 | 479 | | |
507 | 480 | | |
508 | | - | |
| 481 | + | |
509 | 482 | | |
510 | 483 | | |
511 | 484 | | |
| |||
520 | 493 | | |
521 | 494 | | |
522 | 495 | | |
523 | | - | |
| 496 | + | |
524 | 497 | | |
525 | 498 | | |
526 | 499 | | |
| |||
544 | 517 | | |
545 | 518 | | |
546 | 519 | | |
547 | | - | |
| 520 | + | |
548 | 521 | | |
549 | 522 | | |
550 | 523 | | |
| |||
571 | 544 | | |
572 | 545 | | |
573 | 546 | | |
574 | | - | |
575 | | - | |
| 547 | + | |
| 548 | + | |
576 | 549 | | |
577 | 550 | | |
578 | 551 | | |
579 | 552 | | |
580 | 553 | | |
581 | 554 | | |
582 | 555 | | |
583 | | - | |
| 556 | + | |
584 | 557 | | |
585 | 558 | | |
586 | 559 | | |
| |||
661 | 634 | | |
662 | 635 | | |
663 | 636 | | |
664 | | - | |
| 637 | + | |
665 | 638 | | |
666 | 639 | | |
667 | 640 | | |
668 | | - | |
| 641 | + | |
669 | 642 | | |
670 | | - | |
| 643 | + | |
671 | 644 | | |
672 | 645 | | |
673 | 646 | | |
674 | | - | |
675 | | - | |
676 | | - | |
| 647 | + | |
677 | 648 | | |
678 | 649 | | |
679 | 650 | | |
680 | | - | |
| 651 | + | |
681 | 652 | | |
682 | 653 | | |
683 | | - | |
| 654 | + | |
684 | 655 | | |
685 | 656 | | |
686 | 657 | | |
| |||
720 | 691 | | |
721 | 692 | | |
722 | 693 | | |
| 694 | + | |
| 695 | + | |
723 | 696 | | |
724 | | - | |
725 | 697 | | |
726 | 698 | | |
727 | 699 | | |
| |||
0 commit comments