Table of Contents

Namespace BepuPhysics

Classes

BatchCompressor

Handles the movement of constraints from higher indexed batches into lower indexed batches to avoid accumulating a bunch of unnecessary ConstraintBatches.

Bodies

Collection of all allocated bodies.

BoundingBoxHelpers
CollidableProperty<T>

Convenience collection that stores extra properties about bodies and statics, indexed by the body or static handle.

DefaultTimestepper

Updates the simulation in the order of: sleeper -> predict body bounding boxes -> collision detection -> substepping solve -> data structure optimization. Each substep of the solve simulates and integrates a sub-timestep of length dt/substepCount.

DefaultTypes

Helper class to register the default types within a simulation instance.

Helpers

Shared miscellaneous helper functions.

InvasiveHashDiagnostics

Helper diagnostics class for monitoring internal state determinism across runs. Typically used by inserting tests into engine internals.

IslandAwakener

Provides functionality for efficiently waking up sleeping bodies.

IslandSleeper
PoseIntegration

Provides helper functions for integrating body poses.

PoseIntegrator<TCallbacks>

Handles body integration work that isn't bundled into the solver's execution. Predicts bounding boxes, integrates velocity and poses for unconstrained bodies, and does final post-substepping pose integration for constrained bodies.

Simulation

Orchestrates the bookkeeping and execution of a full dynamic simulation.

Solver

Holds and solves constraints between bodies in a simulation.

Solver<TIntegrationCallbacks>

Handles integration-aware substepped solving.

Statics

Collection of allocated statics.

Structs

ActiveConstraintBodyHandleCollector

Collects body handles associated with an active constraint as integers.

ActiveConstraintBodyIndexCollector

Collects body indices associated with an active constraint. Encoded metadata is stripped.

ActiveConstraintDynamicBodyHandleCollector

Collects body handles associated with an active constraint as integers.

BodyActivity

Describes how a body sleeps, and its current state with respect to sleeping.

BodyActivityDescription

Describes the thresholds for a body going to sleep.

BodyConstraintReference
BodyDescription

Describes a body's state.

BodyDynamics

Stores all body information needed by the solver together.

BodyHandle

Unique identifier of a body belonging to a simulation's Bodies collection.

BodyInertia

Stores the inertia for a body.

BodyInertiaWide
BodyInertias

Stores the local and world views of a body's inertia, packed together for efficient access.

BodyMemoryLocation

Location of a body in memory.

BodyReference

Convenience structure for directly referring to a body's properties.

BodySet

Stores a group of bodies- either the set of active bodies, or the bodies involved in an inactive simulation island.

BodyVelocity

Linear and angular velocity for a body.

BodyVelocityWide
BoundingBoxBatch
BoundingBoxBatcher
BoundingBoxInstance
BoundsContinuation
ConstraintBatch

Contains a set of type batches whose constraints share no body references.

ConstraintHandle

Unique identifier of a constraint belonging to a simulation's Solver.

ConstraintLocation

Location in memory where a constraint is stored.

ConstraintReference

Reference to a constraint's memory location in the solver.

ConstraintSet
FloatCollector
MotionState

Describes the pose and velocity of a body.

PassthroughReferenceCollector

Directly reports references as provided by whatever is being enumerated. For example, when used directly with the TypeProcessor's EnumerateConnectedRawBodyReferences, if the constraint is active, this will report encoded body indices. If the constraint is sleeping, this will report body handles. If used with an enumerator that does filtering, the filtered results will be reported unmodified.

RigidPose

Represents a rigid transformation.

RigidPoseWide
SequentialFallbackBatch

Contains constraints that could not belong to any lower constraint batch due to their involved bodies. All of the contained constraints will be solved using a fallback solver that trades rigidity for parallelism.

SimulationAllocationSizes

The common set of allocation sizes for a simulation.

SimulationProfiler

Stores profiling information for the previous simulation execution.

SolveDescription

Describes how the solver should schedule substeps and velocity iterations.

Solver.IntegrationWorkBlock
Solver.SolverSyncStage
Solver.SubstepMultithreadingContext
Solver.WorkBlock
Solver<TIntegrationCallbacks>.IncrementalUpdateForSubstepFilter
Solver<TIntegrationCallbacks>.MainSolveFilter
Static

Stores data for a static collidable in the simulation. Statics can be posed and collide, but have no velocity and no dynamic behavior.

StaticDescription

Describes the properties of a static object. When added to a simulation, static objects can collide but have no velocity and will not move in response to forces.

StaticHandle

Unique identifier of a static belonging to a simulation's Statics collection.

StaticReference

Convenience structure for directly referring to a static's properties.

StaticsShouldntAwakenKinematics

Default awakening filter that only wakes up dynamic bodies. Kinematic bodies do not respond to any kind of dynamic simulation, so they won't respond to the change in statics.

Interfaces

IPoseIntegrator
IPoseIntegratorCallbacks

Defines a type that handles callbacks for body pose integration.

IRayHitHandler

Defines a type capable of filtering ray test candidates and handling ray hit results.

IShapeRayHitHandler
IStaticChangeAwakeningFilter

Defines a type that determines which bodies should be awoken in the bounding box of a static when the static's state changes.

ISweepHitHandler

Defines a type capable of filtering sweep candidates and handling sweep results.

ITimestepper

Defines a type capable of updating the simulation state for a given elapsed time.

Solver<TIntegrationCallbacks>.IStageFunction
Solver<TIntegrationCallbacks>.ITypeBatchSolveFilter

Enums

AngularIntegrationMode

Defines how a pose integrator should handle angular velocity integration.

HashDiagnosticType

Hardcoded hash types used by invasive hash diagnostics.

Solver.SolverStageType

Delegates

Solver.SubstepEvent

Delegate type of solver substep begin/end events.

SubstepVelocityIterationScheduler

Callback executed to determine how many velocity iterations should be used for a given substep.

TimestepperStageHandler

Delegate used by ITimesteppers for their stage callbacks.