502{
504 return;
505 }
506
507 constexpr float damping = 0.8F;
508
510 auto& points = group.collection->get_points();
511
512 for (size_t i = 0; i < points.size(); ++i) {
513 auto& vertex = points[i];
514 auto& state = group.physics_state[i];
515
516 for (int axis = 0; axis < 3; ++axis) {
521 state.velocity[axis] *= -damping;
522 break;
525 break;
528 state.velocity[axis] = 0.0F;
529 break;
531 break;
532 }
533 }
else if (vertex.position[axis] >
m_bounds.
max[axis]) {
537 state.velocity[axis] *= -damping;
538 break;
541 break;
544 state.velocity[axis] = 0.0F;
545 break;
547 break;
548 }
549 }
550 }
551 }
552 }
553}
Kinesis::SamplerBounds m_bounds
std::vector< CollectionGroup > m_collections
@ BOUNCE
Reflect off boundaries with damping.
@ NONE
No bounds checking.
@ WRAP
Teleport to opposite side.