|
Bicameral Engine
GPU-resident engine for a magic-research open-world game
|
#include <physics_world.h>
Public Member Functions | |
| PhysicsWorld (const PhysicsScene &scene, const physics::PxParameters ¶meters) | |
| void | Step () |
| uint32_t | Push (const physics::PxVec3 &origin, const physics::PxVec3 &direction, uint32_t impulseMillinewtonSeconds) |
| const std::vector< PhysicsBody > & | Bodies () const |
| const PhysicsStepStats & | Stats () const |
| const std::map< std::pair< uint32_t, uint32_t >, PhysicsManifold > & | Manifolds () const |
| uint64_t | Tick () const |
| uint64_t | StateHash () const |
Private Member Functions | |
| void | Substep () |
| void | UpdateActivity () |
| void | UpdateContacts () |
| void | UpdateBetas () |
| void | WarmStart () |
| void | InitializeBodies () |
| void | Linearize () |
| void | ColorBodies () |
| std::vector< std::vector< uint32_t > > | DynamicNeighbors () const |
| std::vector< uint32_t > | ChooseLocalMaxima (const std::vector< std::vector< uint32_t > > &neighbors) const |
| void | AssignSmallestColor (uint32_t index, const std::vector< uint32_t > &neighbors) |
| void | RecollideMidStep () |
| void | SolveColor (int32_t color, int64_t alphaQ16) |
| void | SolveBody (uint32_t index, int64_t alphaQ16) |
| void | RecordSystemBits (const physics::PxBodySystem &system) |
| void | UpdateDuals (int64_t alphaQ16) |
| void | RecordPointBits (const PhysicsContactPoint &point) |
| void | UpdateVelocities () |
| void | Finish () |
Private Attributes | |
| PhysicsScene | m_scene |
| physics::PxParameters | m_parameters |
| int64_t | m_rate = 0 |
| std::vector< PhysicsBody > | m_bodies |
| std::map< std::pair< uint32_t, uint32_t >, PhysicsManifold > | m_manifolds |
| std::vector< std::vector< std::pair< const PhysicsManifold *, bool > > > | m_bodyManifolds |
| int32_t | m_colorCount = 0 |
| uint64_t | m_tick = 0 |
| PhysicsStepStats | m_stats |
Definition at line 50 of file physics_world.h.
| bicameral::sim::PhysicsWorld::PhysicsWorld | ( | const PhysicsScene & | scene, |
| const physics::PxParameters & | parameters ) |
Definition at line 42 of file physics_world.cpp.
References bicameral::sim::PhysicsScene::bodies, m_bodies, m_bodyManifolds, m_parameters, m_rate, m_scene, and bicameral::sim::MakePhysicsBody().
|
private |
Definition at line 216 of file physics_world.cpp.
References m_bodies, and m_colorCount.
Referenced by ColorBodies().
|
inlinenodiscard |
Definition at line 61 of file physics_world.h.
References m_bodies.
|
nodiscardprivate |
Definition at line 198 of file physics_world.cpp.
References m_bodies.
Referenced by ColorBodies().
|
private |
Definition at line 164 of file physics_world.cpp.
References AssignSmallestColor(), ChooseLocalMaxima(), DynamicNeighbors(), m_colorCount, and m_stats.
Referenced by Substep().
|
nodiscardprivate |
Definition at line 184 of file physics_world.cpp.
References m_bodies, and m_manifolds.
Referenced by ColorBodies().
|
private |
Definition at line 301 of file physics_world.cpp.
References m_bodies.
Referenced by Substep().
|
private |
Definition at line 153 of file physics_world.cpp.
References m_bodies, and m_rate.
Referenced by Substep().
|
private |
Definition at line 158 of file physics_world.cpp.
References m_bodies, and m_manifolds.
Referenced by Substep().
|
inlinenodiscard |
Definition at line 63 of file physics_world.h.
References m_manifolds.
| uint32_t bicameral::sim::PhysicsWorld::Push | ( | const physics::PxVec3 & | origin, |
| const physics::PxVec3 & | direction, | ||
| uint32_t | impulseMillinewtonSeconds ) |
Definition at line 307 of file physics_world.cpp.
References m_bodies, and m_rate.
Referenced by bicameral::frame::anonymous_namespace{frame_loop.cpp}::PushFromCommand().
|
private |
Definition at line 226 of file physics_world.cpp.
References m_bodies, m_manifolds, m_parameters, and m_stats.
Referenced by Substep().
|
private |
Definition at line 289 of file physics_world.cpp.
References m_stats.
Referenced by UpdateDuals().
|
private |
Definition at line 267 of file physics_world.cpp.
References m_stats.
Referenced by SolveBody().
|
private |
Definition at line 242 of file physics_world.cpp.
References m_bodies, m_bodyManifolds, m_parameters, m_stats, and RecordSystemBits().
Referenced by SolveColor().
|
private |
Definition at line 235 of file physics_world.cpp.
References m_bodies, and SolveBody().
Referenced by Substep().
|
nodiscard |
Definition at line 328 of file physics_world.cpp.
|
inlinenodiscard |
Definition at line 62 of file physics_world.h.
References m_stats.
| void bicameral::sim::PhysicsWorld::Step | ( | ) |
Definition at line 50 of file physics_world.cpp.
References m_parameters, m_stats, m_tick, Substep(), and UpdateActivity().
|
private |
Definition at line 59 of file physics_world.cpp.
References ColorBodies(), Finish(), InitializeBodies(), Linearize(), m_colorCount, m_parameters, RecollideMidStep(), SolveColor(), UpdateContacts(), UpdateDuals(), UpdateVelocities(), and WarmStart().
Referenced by Step().
|
inlinenodiscard |
Definition at line 66 of file physics_world.h.
References m_tick.
|
private |
Definition at line 86 of file physics_world.cpp.
References m_bodies, and m_tick.
Referenced by Step().
|
private |
Definition at line 130 of file physics_world.cpp.
References m_bodies, m_manifolds, and m_parameters.
Referenced by UpdateContacts().
|
private |
Definition at line 92 of file physics_world.cpp.
References m_bodies, m_bodyManifolds, m_manifolds, m_parameters, m_rate, m_scene, m_stats, and UpdateBetas().
Referenced by Substep().
|
private |
Definition at line 275 of file physics_world.cpp.
References m_bodies, m_manifolds, m_parameters, and RecordPointBits().
Referenced by Substep().
|
private |
Definition at line 296 of file physics_world.cpp.
References m_bodies, and m_rate.
Referenced by Substep().
|
private |
Definition at line 148 of file physics_world.cpp.
References m_manifolds, and m_parameters.
Referenced by Substep().
|
private |
Definition at line 96 of file physics_world.h.
Referenced by AssignSmallestColor(), Bodies(), ChooseLocalMaxima(), DynamicNeighbors(), Finish(), InitializeBodies(), Linearize(), PhysicsWorld(), Push(), RecollideMidStep(), SolveBody(), SolveColor(), StateHash(), UpdateActivity(), UpdateBetas(), UpdateContacts(), UpdateDuals(), and UpdateVelocities().
|
private |
Definition at line 99 of file physics_world.h.
Referenced by PhysicsWorld(), SolveBody(), and UpdateContacts().
|
private |
Definition at line 100 of file physics_world.h.
Referenced by AssignSmallestColor(), ColorBodies(), and Substep().
|
private |
Definition at line 97 of file physics_world.h.
Referenced by DynamicNeighbors(), Linearize(), Manifolds(), RecollideMidStep(), UpdateBetas(), UpdateContacts(), UpdateDuals(), and WarmStart().
|
private |
Definition at line 94 of file physics_world.h.
Referenced by PhysicsWorld(), RecollideMidStep(), SolveBody(), Step(), Substep(), UpdateBetas(), UpdateContacts(), UpdateDuals(), and WarmStart().
|
private |
Definition at line 95 of file physics_world.h.
Referenced by InitializeBodies(), PhysicsWorld(), Push(), UpdateContacts(), and UpdateVelocities().
|
private |
Definition at line 93 of file physics_world.h.
Referenced by PhysicsWorld(), and UpdateContacts().
|
private |
Definition at line 102 of file physics_world.h.
Referenced by ColorBodies(), RecollideMidStep(), RecordPointBits(), RecordSystemBits(), SolveBody(), Stats(), Step(), and UpdateContacts().
|
private |
Definition at line 101 of file physics_world.h.
Referenced by StateHash(), Step(), Tick(), and UpdateActivity().