509{
511 return;
512 }
513
514 constexpr float damping = 0.8F;
515
517 auto& points = group.collection->get_points();
518
519 for (size_t i = 0; i < points.size(); ++i) {
520 auto& vertex = points[i];
521 auto& state = group.physics_state[i];
522
523 for (int axis = 0; axis < 3; ++axis) {
528 state.velocity[axis] *= -damping;
529 break;
532 break;
535 state.velocity[axis] = 0.0F;
536 break;
538 break;
539 }
540 }
else if (vertex.position[axis] >
m_bounds.
max[axis]) {
544 state.velocity[axis] *= -damping;
545 break;
548 break;
551 state.velocity[axis] = 0.0F;
552 break;
554 break;
555 }
556 }
557 }
558 }
559 }
560}
Kinesis::SamplerBounds m_bounds
std::vector< CollectionGroup > m_collections
@ BOUNCE
Reflect off boundaries with damping.
@ NONE
No bounds checking.
@ WRAP
Teleport to opposite side.