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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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
- 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.
- 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.
Enums
- AngularIntegrationMode
Defines how a pose integrator should handle angular velocity integration.
- HashDiagnosticType
Hardcoded hash types used by invasive hash diagnostics.
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.