raisim::contact::SweepRows
abstract class · #include <raisim/contact/BisectionContactSolver.hpp>
Constraints that their objects solve themselves inside the solver's Gauss-Seidel sweeps (the elastic constraints of deformables): they read and change the same body velocities as the contact rows, so contacts and these constraints converge together. Every sweep visits them first, so a sweep always ends with the contact rows.
Constructors & destructor
~SweepRows
virtual ~SweepRows() = defaultPublic member functions
sweep
virtual double sweep() = 0One pass over the rows. Returns the squared velocity change of the pass (the analogue of a contact row's error) and bumps the solverImpulseAccum_ of every object whose velocity changed.
changed
virtual bool changed() const = 0Returns whether the last sweep changed a velocity
rowCount
virtual size_t rowCount() const = 0Returns number of rows, for the termination threshold
pending
virtual bool pending() const = 0Returns whether the rows still need sweeps (their iteration count is fixed): the solve does not end before they had them, even if the contacts have converged