raisim::contact
namespace
Namespaces
- raisim::contact::rank — Values of Single3DContactProblem::rank: the kind of constraint a problem row represents.
Classes
classBisectionContactSolver — RaiSim's iterative contact solver: a Gauss-Seidel-style sweep over the constraint rows in which each frictional contact is solved with a bisection method.classSingle3DContactProblem — One constraint row (contact, joint limit, wire or pin) of the contact problem that the World solves each step; World::getContactProblem() exposes the list.structTerrainContactLaw — Internal, frozen material history for one mesh quadrature contact during the coupled solve. sinkage is the body's step-start depth below the rest surface; it is below plastic while the body still…structTerrainContactSolveState — Internal per-solve constants and normal pressure evaluations for an area contact.
Type aliases
ContactProblems
#include <raisim/contact/BisectionContactSolver.hpp>
cpp
typedef std::vector<contact::Single3DContactProblem, AlignedAllocator<contact::Single3DContactProblem, 64>> ContactProblemsList of constraint rows solved together each step.
Functions
solveTerrainContact
#include <raisim/contact/TerrainContactLaw.hpp>
cpp
void solveTerrainContact(
Single3DContactProblem &problem,
const Vec<3> &freeVelocity,
double dt)One block Gauss-Seidel update. freeVelocity excludes this row's existing impulse.
cpp
void solveTerrainContact(
Single3DContactProblem &problem,
const Vec<3> &freeVelocity,
double dt,
TerrainContactSolveState &state)Reuse exact evaluations and constants across sweeps of that coupled solve.
prepareTerrainContactSolveState
#include <raisim/contact/TerrainContactLaw.hpp>
cpp
TerrainContactSolveState prepareTerrainContactSolveState(
Single3DContactProblem &problem,
double dt)Initialize constants and the tangential inverse for a new coupled solve. Material history and apparent inertia stay fixed during it.