Box3D rigid-body world. Script coordinates are meters (Box3D native), unlike 2D World which uses pixels + Physics.setMeter. 更多...
#include <World3D.h>
类 | |
| struct | ContactEvent |
| Begin/end event for two non-sensor shapes. 更多... | |
| struct | EventShape |
| Stable snapshot describing one side of a 3D collision event. 更多... | |
| struct | HitEvent |
| Significant collision containing world-space feedback data. 更多... | |
| struct | JointStressEvent |
| Joint whose solver force or torque exceeded a configured threshold. 更多... | |
| struct | TriggerEvent |
| Begin/end overlap event with an explicit sensor and visitor side. 更多... | |
Public 成员函数 | |
| World3D (float gravityX, float gravityY, float gravityZ, bool sleep, eve::PersistentId instanceId=eve::PersistentId::nil()) | |
| Creates a 3D physics world. | |
| ~World3D () | |
| World3D (const World3D &)=delete | |
| World3D & | operator= (const World3D &)=delete |
| void | update (float dt) |
| Steps the simulation by dt seconds (default substep count). | |
| void | updateFull (float dt, int subStepCount) |
| Steps with an explicit substep count. | |
| eve::Result< void > | step (const eve::SimulationStep &step, const SimulationSettings &settings={}) |
| Advances the 3D domain with an injected deterministic step. | |
| SimulationObservation | simulationObservation () const noexcept |
| Snapshot of completed backend steps and logical simulation time. | |
| SimulationBackendKind | backendKind () const noexcept |
| Selected CPU/GPU/mock backend family. | |
| SimulationDeterminism | backendDeterminism () const noexcept |
| Replay/numeric guarantee declared by the selected backend. | |
| eve::SimulationTick | simulationTick () const noexcept |
| Current deterministic tick; save data should persist this value. | |
| PhysicsWorldHandle | runtimeHandle () const noexcept |
| Process-local identity used by PhysicsLink; invalid after destruction. | |
| std::weak_ptr< const void > | lifetimeToken () const noexcept |
| Return a weak lifetime token for owner-thread runtime integrations. | |
| eve::PersistentId | persistentId () const noexcept |
| Stable non-nil identity written to snapshot envelopes. | |
| bool | usedBackendFallback () const noexcept |
| Whether optional accelerator selection fell back to CPU. | |
| eve::Status | backendSelectionStatus () const |
| Selection status, including a structured absent-capability warning. | |
| eve::Result< eve::SnapshotEnvelope > | snapshot (const eve::SnapshotHashProvider &hashProvider) const |
| Captures a versioned, integrity-checked 3D world snapshot. | |
| eve::Result< void > | restore (const eve::SnapshotEnvelope &snapshot, const eve::SnapshotHashProvider &hashProvider) |
| Restores a verified snapshot without exposing partial state. | |
| void | setGravity (float gx, float gy, float gz) |
| Gravity in m/s². | |
| float | getGravityX () const |
| float | getGravityY () const |
| float | getGravityZ () const |
| void | setContinuousCollisionEnabled (bool enabled) |
| Enables world-level continuous collision against static geometry. | |
| bool | isContinuousCollisionEnabled () const |
| Whether world-level continuous collision is enabled. | |
| void | setRestitutionThreshold (float speed) |
| Minimum impact speed that permits material restitution, in m/s. | |
| float | getRestitutionThreshold () const |
| Current restitution speed threshold in m/s. | |
| void | setHitEventThreshold (float speed) |
| Minimum approach speed in m/s required for enabled Shape3D hit events. | |
| float | getHitEventThreshold () const |
| Current significant-hit speed threshold in m/s. | |
| void | setBodyPairCollisionEnabled (Body3D *bodyA, Body3D *bodyB, bool enabled) |
| Overrides collision for a live body pair without changing layer masks. | |
| bool | isBodyPairCollisionEnabled (Body3D *bodyA, Body3D *bodyB) const |
| Whether a body pair is permitted by the runtime contact override. | |
| void | setShapePairCollisionEnabled (Shape3D *shapeA, Shape3D *shapeB, bool enabled) |
| Overrides collision for one live shape pair. | |
| bool | isShapePairCollisionEnabled (Shape3D *shapeA, Shape3D *shapeB) const |
| Whether a shape pair is permitted by the runtime contact override. | |
| void | setContactTuning (float hertz, float dampingRatio, float pushOutSpeed) |
| Configures contact overlap recovery. | |
| float | getContactHertz () const |
| Current contact stiffness frequency. | |
| float | getContactDampingRatio () const |
| Current contact damping ratio. | |
| float | getContactPushOutSpeed () const |
| Current maximum contact push-out speed in m/s. | |
| void | setContactRecycleDistance (float distance) |
| Sets contact-point persistence distance in meters; zero disables recycling. | |
| float | getContactRecycleDistance () const |
| Current contact-point persistence distance in meters. | |
| void | setMaximumLinearSpeed (float speed) |
| Sets the finite positive world-wide linear velocity clamp in m/s. | |
| float | getMaximumLinearSpeed () const |
| Current world-wide maximum linear speed in m/s. | |
| void | setWarmStartingEnabled (bool enabled) |
| Enables constraint warm starting for stable stacks and joints. | |
| bool | isWarmStartingEnabled () const |
| Whether constraint warm starting is enabled. | |
| int | explode (float x, float y, float z, float radius, float falloff, float impulsePerArea, int maskBits=-1) |
| Applies a geometry-aware radial impulse to dynamic convex shapes. | |
| int | getExplosionResultCount () const |
| Number of bodies affected by the latest explosion. | |
| int | getExplosionResultBodyId (int index) const |
| Stable Body ID of an affected body, sorted ascending. | |
| float | getExplosionResultDeltaVelocityX (int index) const |
| Explosion-induced linear velocity delta X. | |
| float | getExplosionResultDeltaVelocityY (int index) const |
| Explosion-induced linear velocity delta Y. | |
| float | getExplosionResultDeltaVelocityZ (int index) const |
| Explosion-induced linear velocity delta Z. | |
| float | getExplosionResultDeltaAngularVelocityX (int index) const |
| Explosion-induced angular velocity delta X. | |
| float | getExplosionResultDeltaAngularVelocityY (int index) const |
| Explosion-induced angular velocity delta Y. | |
| float | getExplosionResultDeltaAngularVelocityZ (int index) const |
| Explosion-induced angular velocity delta Z. | |
| float | getBoundsMinX () const |
| Minimum world-space X covered by current broad-phase bounds. | |
| float | getBoundsMinY () const |
| Minimum world-space Y covered by current broad-phase bounds. | |
| float | getBoundsMinZ () const |
| Minimum world-space Z covered by current broad-phase bounds. | |
| float | getBoundsMaxX () const |
| Maximum world-space X covered by current broad-phase bounds. | |
| float | getBoundsMaxY () const |
| Maximum world-space Y covered by current broad-phase bounds. | |
| float | getBoundsMaxZ () const |
| Maximum world-space Z covered by current broad-phase bounds. | |
| int | getBodyCount () const |
| Current backend body count. | |
| int | getShapeCount () const |
| Current backend shape count. | |
| int | getContactCount () const |
| Current backend contact count. | |
| int | getJointCount () const |
| Current backend joint count. | |
| int | getIslandCount () const |
| Current solver-island count. | |
| int | getAwakeBodyCount () const |
| Number of awake bodies. | |
| int | getAwakeContactCount () const |
| Contacts processed by the latest collide pass. | |
| int | getRecycledContactCount () const |
| Contact points recycled during the latest step. | |
| int | getStaticTreeHeight () const |
| Static broad-phase tree height. | |
| int | getDynamicTreeHeight () const |
| Dynamic broad-phase tree height. | |
| int | getMemoryByteCount () const |
| Approximate Box3D world allocation in bytes. | |
| float | getProfileStepMs () const |
| Latest complete physics step time in milliseconds. | |
| float | getProfilePairsMs () const |
| Latest broad-phase pair generation time in milliseconds. | |
| float | getProfileCollideMs () const |
| Latest narrow-phase collision time in milliseconds. | |
| float | getProfileSolveMs () const |
| Latest constraint solver time in milliseconds. | |
| float | getProfileBulletsMs () const |
| Latest continuous-collision bullet time in milliseconds. | |
| float | getProfileSensorsMs () const |
| Latest sensor processing time in milliseconds. | |
| Body3D * | newBody (const std::string &bodyType, float x, float y, float z) |
| Creates a body in meter-space units. | |
| Body3D * | findBody (PhysicsBodyHandle handle) const |
| Resolves a live body handle; returns null for a stale or foreign handle. | |
| Body3D * | findBodyById (int bodyId) const |
| Resolves a live body by its world-local stable event/query id. | |
| Shape3D * | findShape (PhysicsShapeHandle handle) const |
| Resolves a live shape handle; returns null when stale or foreign. | |
| Shape3D * | findShapeById (int shapeId) const |
| Resolves a live shape by its world-local stable event/query id. | |
| Joint3D * | findJoint (PhysicsJointHandle handle) const |
| Resolves a live joint handle; returns null when stale or foreign. | |
| Joint3D * | newDistanceJoint (Body3D *bodyA, Body3D *bodyB, float anchorAX, float anchorAY, float anchorAZ, float anchorBX, float anchorBY, float anchorBZ, float length, bool collideConnected=false) |
| Connects two world-space anchor points with a rigid distance constraint. | |
| Joint3D * | newRevoluteJoint (Body3D *bodyA, Body3D *bodyB, float anchorX, float anchorY, float anchorZ, float axisX, float axisY, float axisZ, bool collideConnected=false) |
| Creates a hinge around a normalized world-space axis at a shared anchor. | |
| Joint3D * | newPrismaticJoint (Body3D *bodyA, Body3D *bodyB, float anchorX, float anchorY, float anchorZ, float axisX, float axisY, float axisZ, bool collideConnected=false) |
| Creates a slider whose permitted world-space translation follows axis. | |
| Joint3D * | newSphericalJoint (Body3D *bodyA, Body3D *bodyB, float anchorX, float anchorY, float anchorZ, float axisX, float axisY, float axisZ, bool collideConnected=false) |
| Creates a ball-and-socket joint with a world-space twist/cone axis. | |
| Joint3D * | newWheelJoint (Body3D *bodyA, Body3D *bodyB, float anchorX, float anchorY, float anchorZ, float suspensionAxisX, float suspensionAxisY, float suspensionAxisZ, float wheelAxisX, float wheelAxisY, float wheelAxisZ, bool collideConnected=false) |
| Creates a vehicle wheel joint with independent world suspension and spin axes. | |
| Joint3D * | newWeldJoint (Body3D *bodyA, Body3D *bodyB, float anchorX, float anchorY, float anchorZ, bool collideConnected=false) |
| Welds two bodies at a shared world-space anchor, preserving current relative pose. | |
| Joint3D * | newMotorJoint (Body3D *bodyA, Body3D *bodyB, bool collideConnected=false) |
| Creates a motor joint that drives relative linear/angular velocity between bodies. | |
| Joint3D * | newParallelJoint (Body3D *bodyA, Body3D *bodyB, float axisX, float axisY, float axisZ, bool collideConnected=false) |
| Creates a parallel joint that spring-aligns body local Z axes to a world axis. | |
| Joint3D * | newFilterJoint (Body3D *bodyA, Body3D *bodyB) |
| Disables collision between two specific bodies (filter joint). | |
| Mechanism3D * | newShaft (Body3D *support, Body3D *rotor, float anchorX, float anchorY, float anchorZ, float axisX, float axisY, float axisZ, bool collideConnected=false) |
| Builds a shaft (support↔rotor revolute) with optional drive motor helpers. | |
| Mechanism3D * | newRatchet (Body3D *frame, Body3D *wheel, float anchorX, float anchorY, float anchorZ, float axisX, float axisY, float axisZ, int direction, float engagementTorque, bool collideConnected=false) |
| Builds a one-way ratchet around a revolute axis. | |
| Mechanism3D * | newCrankSlider (Body3D *frame, Body3D *crank, Body3D *rod, Body3D *slider, float crankAnchorX, float crankAnchorY, float crankAnchorZ, float axisX, float axisY, float axisZ, float crankPinX, float crankPinY, float crankPinZ, float sliderPinX, float sliderPinY, float sliderPinZ, float slideAxisX, float slideAxisY, float slideAxisZ, bool collideConnected=false) |
| Builds a planar crank-slider from frame, crank, connecting rod and slider bodies. | |
| void | destroyBody (Body3D *body) |
| Destroys a body (null is ignored). | |
| void | destroy () |
| Destroys the world and invalidates all wrappers. | |
| int | rayCast (float x1, float y1, float z1, float x2, float y2, float z2) |
| Closest raycast from (x1,y1,z1) to (x2,y2,z2) in meters. Returns hit body id, or -1. Read hit details via getRayHit*. | |
| int | rayCastFiltered (float x1, float y1, float z1, float x2, float y2, float z2, uint64_t maskBits) |
| 带形状类别掩码的最短射线查询(掩码为接受的 shape categoryBits)。 | |
| eve::Result< RayHit3D > | rayCastOwned (float x1, float y1, float z1, float x2, float y2, float z2, QueryFilter3D filter={}) |
| Performs one ray query and returns an owning, generation-qualified snapshot. | |
| bool | sphereCast (float x1, float y1, float z1, float x2, float y2, float z2, float radius, uint64_t maskBits, int ignoredBodyId, CameraSphereHit3D *out) const |
| Internal camera query: swept sphere against non-sensor shapes. | |
| int | rayCastAll (float x1, float y1, float z1, float x2, float y2, float z2, int maxHits) |
| Collects the nearest maxHits ray intersections, sorted by fraction then Shape ID. | |
| bool | hasRayHit () const |
| int | getRayHitBodyId () const |
| int | getRayHitShapeId () const |
| Stable shape id from the last ray cast, or -1. | |
| int | getRayHitShapeTag () const |
| User tag of the shape from the last ray cast, or zero on no hit. | |
| int | getRayHitMaterialId () const |
| Surface material ID at the last ray intersection, or zero. | |
| int | getRayHitTriangleIndex () const |
| Mesh/height-field triangle index from the last ray cast, otherwise -1. | |
| float | getRayHitX () const |
| float | getRayHitY () const |
| float | getRayHitZ () const |
| float | getRayHitNormalX () const |
| float | getRayHitNormalY () const |
| float | getRayHitNormalZ () const |
| float | getRayHitFraction () const |
| int | getRayResultCount () const |
| Number of results cached by the latest rayCast or rayCastAll call. | |
| int | getRayResultBodyId (int index) const |
| Body ID of a sorted ray result. | |
| int | getRayResultShapeId (int index) const |
| Shape ID of a sorted ray result. | |
| int | getRayResultShapeTag (int index) const |
| Shape Tag of a sorted ray result. | |
| int | getRayResultMaterialId (int index) const |
| Surface material ID at a sorted ray intersection. | |
| int | getRayResultTriangleIndex (int index) const |
| Mesh/height-field triangle index of a sorted ray result, otherwise -1. | |
| float | getRayResultX (int index) const |
| World-space hit point X of a sorted ray result. | |
| float | getRayResultY (int index) const |
| World-space hit point Y of a sorted ray result. | |
| float | getRayResultZ (int index) const |
| World-space hit point Z of a sorted ray result. | |
| float | getRayResultNormalX (int index) const |
| Surface normal X of a sorted ray result. | |
| float | getRayResultNormalY (int index) const |
| Surface normal Y of a sorted ray result. | |
| float | getRayResultNormalZ (int index) const |
| Surface normal Z of a sorted ray result. | |
| float | getRayResultFraction (int index) const |
| Segment fraction in [0,1] of a sorted ray result. | |
| int | queryAABB (float minX, float minY, float minZ, float maxX, float maxY, float maxZ) |
| Query shapes overlapping an AABB in meters (min/max corners). Returns match count; read ids with getQueryBodyId(i). | |
| eve::Result< BroadPhaseAabb3D > | queryAabbBroadPhaseOwned (float minX, float minY, float minZ, float maxX, float maxY, float maxZ, QueryFilter3D filter={}) |
| Queries one AABB into a fixed owning result without using the legacy query cache. | |
| int | querySphere (float x, float y, float z, float radius) |
| Query shapes overlapping a sphere in world meters. | |
| int | queryCapsule (float ax, float ay, float az, float bx, float by, float bz, float radius) |
| Query shapes overlapping an arbitrarily oriented capsule. The endpoints are the centers of its hemispherical caps. | |
| eve::Result< CapsuleOverlap3D > | queryCapsuleOwned (float ax, float ay, float az, float bx, float by, float bz, float radius, QueryFilter3D filter={}) |
| Performs one capsule overlap and returns an owning summary without exposing the query cache. | |
| int | queryBox (float x, float y, float z, float width, float height, float depth, float qx, float qy, float qz, float qw) |
| Query shapes overlapping an oriented box. | |
| int | castSphere (float x, float y, float z, float radius, float dx, float dy, float dz) |
| Sweep a sphere through the world and return the earliest hit body id, or -1. | |
| int | castSphereAll (float x, float y, float z, float radius, float dx, float dy, float dz, int maxHits) |
| Collects the nearest maxHits swept-sphere intersections. | |
| int | castCapsule (float ax, float ay, float az, float bx, float by, float bz, float radius, float dx, float dy, float dz) |
| Sweep an arbitrarily oriented capsule through the world. The endpoints are cap centers and d{x,y,z} is the world-space translation. | |
| int | castCapsuleAll (float ax, float ay, float az, float bx, float by, float bz, float radius, float dx, float dy, float dz, int maxHits) |
| Collects the nearest maxHits swept-capsule intersections. | |
| int | castBox (float x, float y, float z, float width, float height, float depth, float qx, float qy, float qz, float qw, float dx, float dy, float dz) |
| Sweep an oriented box without changing its rotation. | |
| int | castBoxAll (float x, float y, float z, float width, float height, float depth, float qx, float qy, float qz, float qw, float dx, float dy, float dz, int maxHits) |
| Collects the nearest maxHits swept-oriented-box intersections. | |
| int | closestPoint (float x, float y, float z, float maxDistance) |
| Find the closest collision surface within maxDistance of a world point. Uses the current query category/mask filter. The normal points from the surface toward the target and is zero when the target lies on or inside the shape. | |
| bool | hasClosestPoint () const |
| Whether the latest closestPoint call found a shape. | |
| int | getClosestBodyId () const |
| Stable body id from the latest closestPoint call, or -1. | |
| int | getClosestShapeId () const |
| Stable shape id from the latest closestPoint call, or -1. | |
| int | getClosestShapeTag () const |
| User tag of the shape from the latest closestPoint call, or zero. | |
| float | getClosestX () const |
| Closest surface point X. | |
| float | getClosestY () const |
| Closest surface point Y. | |
| float | getClosestZ () const |
| Closest surface point Z. | |
| float | getClosestNormalX () const |
| Surface-to-target normal X, or zero for an inside/on-surface target. | |
| float | getClosestNormalY () const |
| Surface-to-target normal Y, or zero for an inside/on-surface target. | |
| float | getClosestNormalZ () const |
| Surface-to-target normal Z, or zero for an inside/on-surface target. | |
| float | getClosestDistance () const |
| Non-negative distance from the target to the closest shape. | |
| bool | hasShapeCastHit () const |
| Whether the last sphere, capsule, or box cast hit a body. | |
| int | getShapeCastBodyId () const |
| Stable body id from the last shape cast, or -1. | |
| int | getShapeCastShapeId () const |
| Stable shape id from the last shape cast, or -1. | |
| int | getShapeCastShapeTag () const |
| User tag of the shape from the last shape cast, or zero on no hit. | |
| int | getShapeCastMaterialId () const |
| Surface material ID at the last shape-cast intersection, or zero. | |
| int | getShapeCastTriangleIndex () const |
| Mesh/height-field triangle index from the latest shape cast, otherwise -1. | |
| float | getShapeCastX () const |
| World-space contact point X from the last shape cast. | |
| float | getShapeCastY () const |
| World-space contact point Y from the last shape cast. | |
| float | getShapeCastZ () const |
| World-space contact point Z from the last shape cast. | |
| float | getShapeCastNormalX () const |
| Contact normal X from the last shape cast. | |
| float | getShapeCastNormalY () const |
| Contact normal Y from the last shape cast. | |
| float | getShapeCastNormalZ () const |
| Contact normal Z from the last shape cast. | |
| float | getShapeCastFraction () const |
| Translation fraction in [0,1] at the earliest hit. | |
| int | getShapeCastResultCount () const |
| Number of results cached by the latest single or multi Shape Cast. | |
| int | getShapeCastResultBodyId (int index) const |
| Body ID of a sorted Shape Cast result. | |
| int | getShapeCastResultShapeId (int index) const |
| Shape ID of a sorted Shape Cast result. | |
| int | getShapeCastResultShapeTag (int index) const |
| Shape Tag of a sorted Shape Cast result. | |
| int | getShapeCastResultMaterialId (int index) const |
| Surface material ID at a sorted Shape Cast intersection. | |
| int | getShapeCastResultTriangleIndex (int index) const |
| Mesh/height-field triangle index of a Shape Cast result, otherwise -1. | |
| float | getShapeCastResultX (int index) const |
| World-space contact point X of a Shape Cast result. | |
| float | getShapeCastResultY (int index) const |
| World-space contact point Y of a Shape Cast result. | |
| float | getShapeCastResultZ (int index) const |
| World-space contact point Z of a Shape Cast result. | |
| float | getShapeCastResultNormalX (int index) const |
| Contact normal X of a Shape Cast result. | |
| float | getShapeCastResultNormalY (int index) const |
| Contact normal Y of a Shape Cast result. | |
| float | getShapeCastResultNormalZ (int index) const |
| Contact normal Z of a Shape Cast result. | |
| float | getShapeCastResultFraction (int index) const |
| Translation fraction in [0,1] of a Shape Cast result. | |
| bool | moveCapsule (float ax, float ay, float az, float bx, float by, float bz, float radius, float dx, float dy, float dz) |
| Move a capsule with continuous collision and multi-plane sliding. Existing penetration is recovered before the desired translation is applied. | |
| eve::Result< CapsuleMove3D > | moveCapsuleOwned (float ax, float ay, float az, float bx, float by, float bz, float radius, float dx, float dy, float dz, QueryFilter3D filter={}, CapsuleMovePolicy3D policy={}) |
| Moves a capsule and returns all resolved movement data as one owning result. | |
| float | getMoverDeltaX () const |
| Resolved translation X from the last moveCapsule call. | |
| float | getMoverDeltaY () const |
| Resolved translation Y from the last moveCapsule call. | |
| float | getMoverDeltaZ () const |
| Resolved translation Z from the last moveCapsule call. | |
| float | getMoverNormalX () const |
| Representative blocking normal X from the last move. | |
| float | getMoverNormalY () const |
| Representative blocking normal Y from the last move. | |
| float | getMoverNormalZ () const |
| Representative blocking normal Z from the last move. | |
| int | getMoverPlaneCount () const |
| Number of collision planes considered during the last move. | |
| int | getMoverIterations () const |
| Number of outer solver passes used by the last move. | |
| void | setMoverUp (float x, float y, float z) |
| Set the up direction used for grounded and slope classification. | |
| void | setMoverSlopeLimit (float degrees) |
| Set maximum walkable slope in degrees, clamped to [0, 89.9]. | |
| bool | isMoverGrounded () const |
| True when the last move touched a walkable plane. | |
| float | getMoverGroundDot () const |
| Largest dot product between mover up and a contact normal. | |
| int | getQueryCount () const |
| Number of bodies hit by the last overlap query. | |
| int | getQueryBodyId (int index) const |
| Body id of the i-th query hit. | |
| int | getQueryShapeCount () const |
| Number of individual shapes hit by the last overlap query. | |
| int | getQueryShapeId (int index) const |
| Stable shape id of the i-th shape hit, sorted ascending. | |
| int | getQueryShapeTag (int index) const |
| User tag paired with the i-th shape hit. | |
| int | getBeginContactCount () const |
| Number of non-sensor contacts that began during the latest step. | |
| int | getBeginContactBodyAId (int index) const |
| Body ID on stable side A of a begin-contact event. | |
| int | getBeginContactBodyBId (int index) const |
| Body ID on stable side B of a begin-contact event. | |
| int | getBeginContactShapeAId (int index) const |
| Shape ID on stable side A of a begin-contact event. | |
| int | getBeginContactShapeBId (int index) const |
| Shape ID on stable side B of a begin-contact event. | |
| int | getBeginContactShapeATag (int index) const |
| Shape Tag on stable side A of a begin-contact event. | |
| int | getBeginContactShapeBTag (int index) const |
| Shape Tag on stable side B of a begin-contact event. | |
| int | getEndContactCount () const |
| Number of non-sensor contacts that ended during the latest step. | |
| int | getEndContactBodyAId (int index) const |
| Body ID on stable side A of an end-contact event. | |
| int | getEndContactBodyBId (int index) const |
| Body ID on stable side B of an end-contact event. | |
| int | getEndContactShapeAId (int index) const |
| Shape ID on stable side A of an end-contact event. | |
| int | getEndContactShapeBId (int index) const |
| Shape ID on stable side B of an end-contact event. | |
| int | getEndContactShapeATag (int index) const |
| Shape Tag on stable side A of an end-contact event. | |
| int | getEndContactShapeBTag (int index) const |
| Shape Tag on stable side B of an end-contact event. | |
| int | getBeginTriggerCount () const |
| Number of sensor overlaps that began during the latest step. | |
| int | getBeginTriggerSensorBodyId (int index) const |
| Sensor body ID of a begin-trigger event. | |
| int | getBeginTriggerVisitorBodyId (int index) const |
| Visitor body ID of a begin-trigger event. | |
| int | getBeginTriggerSensorShapeId (int index) const |
| Sensor shape ID of a begin-trigger event. | |
| int | getBeginTriggerVisitorShapeId (int index) const |
| Visitor shape ID of a begin-trigger event. | |
| int | getBeginTriggerSensorShapeTag (int index) const |
| Sensor Shape Tag of a begin-trigger event. | |
| int | getBeginTriggerVisitorShapeTag (int index) const |
| Visitor Shape Tag of a begin-trigger event. | |
| int | getEndTriggerCount () const |
| Number of sensor overlaps that ended during the latest step. | |
| int | getEndTriggerSensorBodyId (int index) const |
| Sensor body ID of an end-trigger event. | |
| int | getEndTriggerVisitorBodyId (int index) const |
| Visitor body ID of an end-trigger event. | |
| int | getEndTriggerSensorShapeId (int index) const |
| Sensor shape ID of an end-trigger event. | |
| int | getEndTriggerVisitorShapeId (int index) const |
| Visitor shape ID of an end-trigger event. | |
| int | getEndTriggerSensorShapeTag (int index) const |
| Sensor Shape Tag of an end-trigger event. | |
| int | getEndTriggerVisitorShapeTag (int index) const |
| Visitor Shape Tag of an end-trigger event. | |
| void | clearContactEvents () |
| Clears all contact and trigger buffers before the next step. | |
| int | queryBodyContacts (int bodyId, int maxPoints) |
| Caches current touching manifold points for one stable Body3D ID. Results are oriented from the queried body toward the other body. | |
| int | getContactPointCount () const |
| Number of points cached by queryBodyContacts. | |
| int | getContactPointShapeId (int index) const |
| Queried-body Shape ID of a contact point. | |
| int | getContactPointShapeTag (int index) const |
| Queried-body Shape Tag of a contact point. | |
| int | getContactPointOtherBodyId (int index) const |
| Other Body ID of a contact point. | |
| int | getContactPointOtherShapeId (int index) const |
| Other Shape ID of a contact point. | |
| int | getContactPointOtherShapeTag (int index) const |
| Other Shape Tag of a contact point. | |
| float | getContactPointX (int index) const |
| World-space contact point X on the queried body. | |
| float | getContactPointY (int index) const |
| World-space contact point Y on the queried body. | |
| float | getContactPointZ (int index) const |
| World-space contact point Z on the queried body. | |
| float | getContactPointNormalX (int index) const |
| Contact normal X from queried body toward the other body. | |
| float | getContactPointNormalY (int index) const |
| Contact normal Y from queried body toward the other body. | |
| float | getContactPointNormalZ (int index) const |
| Contact normal Z from queried body toward the other body. | |
| float | getContactPointSeparation (int index) const |
| Signed surface separation; negative values indicate penetration. | |
| float | getContactPointNormalImpulse (int index) const |
| Normal impulse from the final physics substep. | |
| float | getContactPointTotalNormalImpulse (int index) const |
| Total normal impulse accumulated across all physics substeps. | |
| float | getContactPointNormalVelocity (int index) const |
| Pre-solve relative normal velocity; negative means approaching. | |
| bool | isContactPointPersisted (int index) const |
| Whether this manifold point existed in the previous step. | |
| int | getHitCount () const |
| Number of significant collision hits generated during the latest step. | |
| int | getHitBodyAId (int index) const |
| Stable body ID on side A of a hit. | |
| int | getHitBodyBId (int index) const |
| Stable body ID on side B of a hit. | |
| int | getHitShapeAId (int index) const |
| Stable Shape ID on side A of a hit. | |
| int | getHitShapeBId (int index) const |
| Stable Shape ID on side B of a hit. | |
| int | getHitShapeATag (int index) const |
| Shape Tag on side A of a hit. | |
| int | getHitShapeBTag (int index) const |
| Shape Tag on side B of a hit. | |
| float | getHitPointX (int index) const |
| World-space impact point X. | |
| float | getHitPointY (int index) const |
| World-space impact point Y. | |
| float | getHitPointZ (int index) const |
| World-space impact point Z. | |
| float | getHitNormalX (int index) const |
| Hit normal X, pointing from stable side A to B. | |
| float | getHitNormalY (int index) const |
| Hit normal Y, pointing from stable side A to B. | |
| float | getHitNormalZ (int index) const |
| Hit normal Z, pointing from stable side A to B. | |
| float | getHitApproachSpeed (int index) const |
| Positive pre-solve approach speed in m/s. | |
| float | getHitNormalImpulse (int index) const |
| Total normal impulse accumulated across all manifolds and substeps. | |
| int | getJointStressCount () const |
| Number of joints exceeding force/torque thresholds in the latest step. | |
| int | getJointStressJointId (int index) const |
| Stable Joint3D ID of a stress event. | |
| int | getJointStressBodyAId (int index) const |
| Stable body A ID of a stress event. | |
| int | getJointStressBodyBId (int index) const |
| Stable body B ID of a stress event. | |
| int | getJointStressKind (int index) const |
| Joint kind code: 0 distance, 1 revolute, 2 prismatic, 3 spherical, 4 wheel. | |
| float | getJointStressForceX (int index) const |
| Constraint force X of a stress event. | |
| float | getJointStressForceY (int index) const |
| Constraint force Y of a stress event. | |
| float | getJointStressForceZ (int index) const |
| Constraint force Z of a stress event. | |
| float | getJointStressTorqueX (int index) const |
| Constraint torque X of a stress event. | |
| float | getJointStressTorqueY (int index) const |
| Constraint torque Y of a stress event. | |
| float | getJointStressTorqueZ (int index) const |
| Constraint torque Z of a stress event. | |
| void | setQueryFilter (int categoryBits, int maskBits) |
| Set category/mask bits for subsequent ray, overlap, cast and mover queries. | |
| void | resetQueryFilter () |
| Restore the query filter to accept all lower-32-bit categories. | |
| int | getQueryCategoryBits () const |
| Query category bits currently in use. | |
| int | getQueryMaskBits () const |
| Query mask bits currently in use. | |
| void | setQueryIgnoredBodyId (int bodyId) |
| Ignores one stable Body3D ID in subsequent spatial queries; -1 disables. | |
| void | setQueryIgnoredShapeId (int shapeId) |
| Ignores one stable Shape3D ID in subsequent spatial queries; -1 disables. | |
| int | getQueryIgnoredBodyId () const |
| Stable Body3D ID currently ignored by queries, or -1. | |
| int | getQueryIgnoredShapeId () const |
| Stable Shape3D ID currently ignored by queries, or -1. | |
| void | clearQueryIgnores () |
| Clears Body and Shape query exclusions without changing layer filtering. | |
| bool | isValid () const |
| True while the underlying Box3D world is alive. | |
| bool | pointProbe (float x, float y, float z, float radius, ClothContact3D *out) const |
Probe the deepest non-sensor shape within radius of a meter-space point. Returns false when nothing is hit. Used by Cloth3D for particle-vs-body collision. | |
| ClothProbeStatus | pointProbeFiltered (float x, float y, float z, float radius, ClothContact3D *out, uint64_t categoryBits, uint64_t maskBits) const |
| Probe a cloth particle using symmetric category/mask filtering. | |
| b3WorldId | raw () const |
| Raw Box3D world id. | |
| void | forgetBody (Body3D *body) |
| Internal: wrapper teardown bookkeeping. | |
| void | forgetShape (Shape3D *shape) |
| void | forgetJoint (Joint3D *joint) |
| Internal: removes a joint wrapper from ownership bookkeeping. | |
| void | forgetMechanism (Mechanism3D *mechanism) |
| Internal: removes a mechanism wrapper from ownership bookkeeping. | |
| void | registerShapeHandle (Shape3D *shape) |
| Internal: snapshots a backend handle for destruction-safe end events. | |
| void | updateShapeTag (Shape3D *shape) |
| Internal: refreshes the tag snapshot for a live shape handle. | |
| int | nextBodyId () |
| Internal: next stable body id. | |
| PhysicsBodyHandle | nextBodyRuntimeHandle () |
| Internal: next generation-qualified body handle. | |
| PhysicsShapeHandle | nextShapeRuntimeHandle () |
| Internal: next generation-qualified shape handle. | |
| PhysicsJointHandle | nextJointRuntimeHandle () |
| Internal: next generation-qualified joint handle. | |
| int | nextShapeId () |
| Internal: next stable shape id. | |
| int | nextJointId () |
| Internal: next stable joint id. | |
| int | nextMechanismId () |
| Internal: next stable mechanism id. | |
| void | emitContactEvents () |
| Internal: collects Box3D contact events into the event buffers. | |
静态 Public 成员函数 | |
| static World3D * | findWorld (PhysicsWorldHandle handle) noexcept |
| Resolve a live process-local world handle, or null after teardown. @thread Owning physics thread only; the returned pointer is borrowed for the immediate call. | |
友元 | |
| class | action_adapter::ActionCollisionIgnoreState |
| struct | WorldSnapshotAccess |
| class | Body3D |
| class | Joint3D |
| class | Mechanism3D |
| class | Shape3D |
| class | TargetingLineOfSightAdapter |
| void | registerCameraObstructionWorld (World3D *world) |
| Registers camera obstruction world. | |
详细描述
Box3D rigid-body world. Script coordinates are meters (Box3D native), unlike 2D World which uses pixels + Physics.setMeter.
构造及析构函数说明
◆ World3D() [1/2]
| eve::physics::World3D::World3D | ( | float | gravityX, |
| float | gravityY, | ||
| float | gravityZ, | ||
| bool | sleep, | ||
| eve::PersistentId | instanceId = eve::PersistentId::nil() |
||
| ) |
Creates a 3D physics world.
- 参数
-
gravityX Gravity along the x axis in world units per second squared. gravityY Gravity along the y axis in world units per second squared. gravityZ Gravity along the z axis in world units per second squared. sleep Whether bodies may sleep when idle. instanceId Stable save/network identity; nil creates a process-local generated identity.
在文件 World3D.cpp 第 173 行定义.
◆ ~World3D()
| eve::physics::World3D::~World3D | ( | ) |
在文件 World3D.cpp 第 403 行定义.
引用了 destroy().
◆ World3D() [2/2]
|
delete |
成员函数说明
◆ backendDeterminism()
|
noexcept |
Replay/numeric guarantee declared by the selected backend.
在文件 World3D.cpp 第 769 行定义.
◆ backendKind()
|
noexcept |
◆ backendSelectionStatus()
| eve::Status eve::physics::World3D::backendSelectionStatus | ( | ) | const |
Selection status, including a structured absent-capability warning.
在文件 World3D.cpp 第 773 行定义.
◆ castBox()
| int eve::physics::World3D::castBox | ( | float | x, |
| float | y, | ||
| float | z, | ||
| float | width, | ||
| float | height, | ||
| float | depth, | ||
| float | qx, | ||
| float | qy, | ||
| float | qz, | ||
| float | qw, | ||
| float | dx, | ||
| float | dy, | ||
| float | dz | ||
| ) |
◆ castBoxAll()
| int eve::physics::World3D::castBoxAll | ( | float | x, |
| float | y, | ||
| float | z, | ||
| float | width, | ||
| float | height, | ||
| float | depth, | ||
| float | qx, | ||
| float | qy, | ||
| float | qz, | ||
| float | qw, | ||
| float | dx, | ||
| float | dy, | ||
| float | dz, | ||
| int | maxHits | ||
| ) |
◆ castCapsule()
| int eve::physics::World3D::castCapsule | ( | float | ax, |
| float | ay, | ||
| float | az, | ||
| float | bx, | ||
| float | by, | ||
| float | bz, | ||
| float | radius, | ||
| float | dx, | ||
| float | dy, | ||
| float | dz | ||
| ) |
◆ castCapsuleAll()
| int eve::physics::World3D::castCapsuleAll | ( | float | ax, |
| float | ay, | ||
| float | az, | ||
| float | bx, | ||
| float | by, | ||
| float | bz, | ||
| float | radius, | ||
| float | dx, | ||
| float | dy, | ||
| float | dz, | ||
| int | maxHits | ||
| ) |
◆ castSphere()
| int eve::physics::World3D::castSphere | ( | float | x, |
| float | y, | ||
| float | z, | ||
| float | radius, | ||
| float | dx, | ||
| float | dy, | ||
| float | dz | ||
| ) |
Sweep a sphere through the world and return the earliest hit body id, or -1.
- 参数
-
dx world-space translation X dy world-space translation Y dz world-space translation Z
在文件 World3D.cpp 第 1788 行定义.
◆ castSphereAll()
| int eve::physics::World3D::castSphereAll | ( | float | x, |
| float | y, | ||
| float | z, | ||
| float | radius, | ||
| float | dx, | ||
| float | dy, | ||
| float | dz, | ||
| int | maxHits | ||
| ) |
◆ clearContactEvents()
| void eve::physics::World3D::clearContactEvents | ( | ) |
Clears all contact and trigger buffers before the next step.
在文件 World3D.cpp 第 1086 行定义.
◆ clearQueryIgnores()
| void eve::physics::World3D::clearQueryIgnores | ( | ) |
Clears Body and Shape query exclusions without changing layer filtering.
在文件 World3D.cpp 第 992 行定义.
◆ closestPoint()
| int eve::physics::World3D::closestPoint | ( | float | x, |
| float | y, | ||
| float | z, | ||
| float | maxDistance | ||
| ) |
Find the closest collision surface within maxDistance of a world point. Uses the current query category/mask filter. The normal points from the surface toward the target and is zero when the target lies on or inside the shape.
- 返回
- Closest stable body id, or -1 when no shape is within range.
在文件 World3D.cpp 第 1838 行定义.
引用了 body, bounds, callback, collector, context, distance, filter, isValid(), point, shape, target, world, x, y , 以及 z.
◆ destroy()
| void eve::physics::World3D::destroy | ( | ) |
Destroys the world and invalidates all wrappers.
在文件 World3D.cpp 第 432 行定义.
引用了 b, clearContactEvents(), found, eve::RuntimeHandle< Tag >::index(), eve::RuntimeHandle< PhysicsWorldHandleTag >::invalid() , 以及 s.
被这些函数引用 ~World3D().
◆ destroyBody()
| void eve::physics::World3D::destroyBody | ( | Body3D * | body | ) |
◆ emitContactEvents()
| void eve::physics::World3D::emitContactEvents | ( | ) |
Internal: collects Box3D contact events into the event buffers.
在文件 World3D.cpp 第 1178 行定义.
引用了 a, b, eve::physics::World3D::EventShape::bodyId, isValid(), eve::platform_event::Variant::makeInt(), normal, eve::physics::World3D::EventShape::shapeId, eve::physics::World3D::EventShape::shapeTag , 以及 source.
被这些函数引用 step().
◆ explode()
| int eve::physics::World3D::explode | ( | float | x, |
| float | y, | ||
| float | z, | ||
| float | radius, | ||
| float | falloff, | ||
| float | impulsePerArea, | ||
| int | maskBits = -1 |
||
| ) |
Applies a geometry-aware radial impulse to dynamic convex shapes.
- 参数
-
x Explosion center X in world meters. y Explosion center Y. z Explosion center Z. radius Full-strength radius, finite and non-negative. falloff Additional distance over which impulse fades to zero. impulsePerArea Signed impulse per projected square meter; negative implodes. maskBits Collision categories accepted by the explosion (low 32 bits).
- 返回
- Number of bodies whose velocity changed; inspect getExplosionResult*.
在文件 World3D.cpp 第 280 行定义.
◆ findBody()
| Body3D * eve::physics::World3D::findBody | ( | PhysicsBodyHandle | handle | ) | const |
Resolves a live body handle; returns null for a stale or foreign handle.
在文件 World3D.cpp 第 918 行定义.
◆ findBodyById()
| Body3D * eve::physics::World3D::findBodyById | ( | int | bodyId | ) | const |
Resolves a live body by its world-local stable event/query id.
在文件 World3D.cpp 第 926 行定义.
◆ findJoint()
| Joint3D * eve::physics::World3D::findJoint | ( | PhysicsJointHandle | handle | ) | const |
Resolves a live joint handle; returns null when stale or foreign.
在文件 World3D.cpp 第 949 行定义.
◆ findShape()
| Shape3D * eve::physics::World3D::findShape | ( | PhysicsShapeHandle | handle | ) | const |
Resolves a live shape handle; returns null when stale or foreign.
在文件 World3D.cpp 第 934 行定义.
◆ findShapeById()
| Shape3D * eve::physics::World3D::findShapeById | ( | int | shapeId | ) | const |
Resolves a live shape by its world-local stable event/query id.
在文件 World3D.cpp 第 941 行定义.
◆ findWorld()
|
staticnoexcept |
Resolve a live process-local world handle, or null after teardown. @thread Owning physics thread only; the returned pointer is borrowed for the immediate call.
在文件 World3D.cpp 第 484 行定义.
◆ forgetBody()
| void eve::physics::World3D::forgetBody | ( | Body3D * | body | ) |
Internal: wrapper teardown bookkeeping.
在文件 World3D.cpp 第 1002 行定义.
引用了 body.
被这些函数引用 eve::physics::Body3D::destroy() , 以及 eve::physics::Body3D::~Body3D().
◆ forgetJoint()
| void eve::physics::World3D::forgetJoint | ( | Joint3D * | joint | ) |
Internal: removes a joint wrapper from ownership bookkeeping.
在文件 World3D.cpp 第 714 行定义.
引用了 eve::RuntimeHandle< Tag >::isValid() , 以及 eve::physics::Joint3D::runtimeHandle().
被这些函数引用 eve::physics::Body3D::destroy(), eve::physics::Joint3D::destroy(), eve::physics::Joint3D::invalidate() , 以及 eve::physics::Body3D::~Body3D().
◆ forgetMechanism()
| void eve::physics::World3D::forgetMechanism | ( | Mechanism3D * | mechanism | ) |
Internal: removes a mechanism wrapper from ownership bookkeeping.
在文件 World3DJoints.cpp 第 115 行定义.
◆ forgetShape()
| void eve::physics::World3D::forgetShape | ( | Shape3D * | shape | ) |
◆ getAwakeBodyCount()
| int eve::physics::World3D::getAwakeBodyCount | ( | ) | const |
◆ getAwakeContactCount()
| int eve::physics::World3D::getAwakeContactCount | ( | ) | const |
Contacts processed by the latest collide pass.
◆ getBeginContactBodyAId()
| int eve::physics::World3D::getBeginContactBodyAId | ( | int | index | ) | const |
Body ID on stable side A of a begin-contact event.
◆ getBeginContactBodyBId()
| int eve::physics::World3D::getBeginContactBodyBId | ( | int | index | ) | const |
Body ID on stable side B of a begin-contact event.
◆ getBeginContactCount()
|
inline |
◆ getBeginContactShapeAId()
| int eve::physics::World3D::getBeginContactShapeAId | ( | int | index | ) | const |
Shape ID on stable side A of a begin-contact event.
◆ getBeginContactShapeATag()
| int eve::physics::World3D::getBeginContactShapeATag | ( | int | index | ) | const |
Shape Tag on stable side A of a begin-contact event.
◆ getBeginContactShapeBId()
| int eve::physics::World3D::getBeginContactShapeBId | ( | int | index | ) | const |
Shape ID on stable side B of a begin-contact event.
◆ getBeginContactShapeBTag()
| int eve::physics::World3D::getBeginContactShapeBTag | ( | int | index | ) | const |
Shape Tag on stable side B of a begin-contact event.
◆ getBeginTriggerCount()
|
inline |
◆ getBeginTriggerSensorBodyId()
| int eve::physics::World3D::getBeginTriggerSensorBodyId | ( | int | index | ) | const |
Sensor body ID of a begin-trigger event.
◆ getBeginTriggerSensorShapeId()
| int eve::physics::World3D::getBeginTriggerSensorShapeId | ( | int | index | ) | const |
Sensor shape ID of a begin-trigger event.
◆ getBeginTriggerSensorShapeTag()
| int eve::physics::World3D::getBeginTriggerSensorShapeTag | ( | int | index | ) | const |
Sensor Shape Tag of a begin-trigger event.
◆ getBeginTriggerVisitorBodyId()
| int eve::physics::World3D::getBeginTriggerVisitorBodyId | ( | int | index | ) | const |
Visitor body ID of a begin-trigger event.
◆ getBeginTriggerVisitorShapeId()
| int eve::physics::World3D::getBeginTriggerVisitorShapeId | ( | int | index | ) | const |
Visitor shape ID of a begin-trigger event.
◆ getBeginTriggerVisitorShapeTag()
| int eve::physics::World3D::getBeginTriggerVisitorShapeTag | ( | int | index | ) | const |
Visitor Shape Tag of a begin-trigger event.
◆ getBodyCount()
| int eve::physics::World3D::getBodyCount | ( | ) | const |
Current backend body count.
◆ getBoundsMaxX()
| float eve::physics::World3D::getBoundsMaxX | ( | ) | const |
Maximum world-space X covered by current broad-phase bounds.
在文件 World3D.cpp 第 363 行定义.
引用了 isValid().
◆ getBoundsMaxY()
| float eve::physics::World3D::getBoundsMaxY | ( | ) | const |
Maximum world-space Y covered by current broad-phase bounds.
在文件 World3D.cpp 第 366 行定义.
引用了 isValid().
◆ getBoundsMaxZ()
| float eve::physics::World3D::getBoundsMaxZ | ( | ) | const |
Maximum world-space Z covered by current broad-phase bounds.
在文件 World3D.cpp 第 369 行定义.
引用了 isValid().
◆ getBoundsMinX()
| float eve::physics::World3D::getBoundsMinX | ( | ) | const |
Minimum world-space X covered by current broad-phase bounds.
在文件 World3D.cpp 第 354 行定义.
引用了 isValid().
◆ getBoundsMinY()
| float eve::physics::World3D::getBoundsMinY | ( | ) | const |
Minimum world-space Y covered by current broad-phase bounds.
在文件 World3D.cpp 第 357 行定义.
引用了 isValid().
◆ getBoundsMinZ()
| float eve::physics::World3D::getBoundsMinZ | ( | ) | const |
Minimum world-space Z covered by current broad-phase bounds.
在文件 World3D.cpp 第 360 行定义.
引用了 isValid().
◆ getClosestBodyId()
|
inline |
◆ getClosestDistance()
|
inline |
◆ getClosestNormalX()
|
inline |
◆ getClosestNormalY()
|
inline |
◆ getClosestNormalZ()
|
inline |
◆ getClosestShapeId()
|
inline |
◆ getClosestShapeTag()
|
inline |
◆ getClosestX()
|
inline |
◆ getClosestY()
|
inline |
◆ getClosestZ()
|
inline |
◆ getContactCount()
| int eve::physics::World3D::getContactCount | ( | ) | const |
Current backend contact count.
◆ getContactDampingRatio()
|
inline |
◆ getContactHertz()
|
inline |
◆ getContactPointCount()
|
inline |
◆ getContactPointNormalImpulse()
| float eve::physics::World3D::getContactPointNormalImpulse | ( | int | index | ) | const |
Normal impulse from the final physics substep.
◆ getContactPointNormalVelocity()
| float eve::physics::World3D::getContactPointNormalVelocity | ( | int | index | ) | const |
Pre-solve relative normal velocity; negative means approaching.
◆ getContactPointNormalX()
| float eve::physics::World3D::getContactPointNormalX | ( | int | index | ) | const |
Contact normal X from queried body toward the other body.
◆ getContactPointNormalY()
| float eve::physics::World3D::getContactPointNormalY | ( | int | index | ) | const |
Contact normal Y from queried body toward the other body.
◆ getContactPointNormalZ()
| float eve::physics::World3D::getContactPointNormalZ | ( | int | index | ) | const |
Contact normal Z from queried body toward the other body.
◆ getContactPointOtherBodyId()
| int eve::physics::World3D::getContactPointOtherBodyId | ( | int | index | ) | const |
Other Body ID of a contact point.
◆ getContactPointOtherShapeId()
| int eve::physics::World3D::getContactPointOtherShapeId | ( | int | index | ) | const |
Other Shape ID of a contact point.
◆ getContactPointOtherShapeTag()
| int eve::physics::World3D::getContactPointOtherShapeTag | ( | int | index | ) | const |
Other Shape Tag of a contact point.
◆ getContactPointSeparation()
| float eve::physics::World3D::getContactPointSeparation | ( | int | index | ) | const |
Signed surface separation; negative values indicate penetration.
◆ getContactPointShapeId()
| int eve::physics::World3D::getContactPointShapeId | ( | int | index | ) | const |
Queried-body Shape ID of a contact point.
◆ getContactPointShapeTag()
| int eve::physics::World3D::getContactPointShapeTag | ( | int | index | ) | const |
Queried-body Shape Tag of a contact point.
◆ getContactPointTotalNormalImpulse()
| float eve::physics::World3D::getContactPointTotalNormalImpulse | ( | int | index | ) | const |
Total normal impulse accumulated across all physics substeps.
◆ getContactPointX()
| float eve::physics::World3D::getContactPointX | ( | int | index | ) | const |
World-space contact point X on the queried body.
◆ getContactPointY()
| float eve::physics::World3D::getContactPointY | ( | int | index | ) | const |
World-space contact point Y on the queried body.
◆ getContactPointZ()
| float eve::physics::World3D::getContactPointZ | ( | int | index | ) | const |
World-space contact point Z on the queried body.
◆ getContactPushOutSpeed()
|
inline |
◆ getContactRecycleDistance()
| float eve::physics::World3D::getContactRecycleDistance | ( | ) | const |
◆ getDynamicTreeHeight()
| int eve::physics::World3D::getDynamicTreeHeight | ( | ) | const |
Dynamic broad-phase tree height.
◆ getEndContactBodyAId()
| int eve::physics::World3D::getEndContactBodyAId | ( | int | index | ) | const |
Body ID on stable side A of an end-contact event.
◆ getEndContactBodyBId()
| int eve::physics::World3D::getEndContactBodyBId | ( | int | index | ) | const |
Body ID on stable side B of an end-contact event.
◆ getEndContactCount()
|
inline |
◆ getEndContactShapeAId()
| int eve::physics::World3D::getEndContactShapeAId | ( | int | index | ) | const |
Shape ID on stable side A of an end-contact event.
◆ getEndContactShapeATag()
| int eve::physics::World3D::getEndContactShapeATag | ( | int | index | ) | const |
Shape Tag on stable side A of an end-contact event.
◆ getEndContactShapeBId()
| int eve::physics::World3D::getEndContactShapeBId | ( | int | index | ) | const |
Shape ID on stable side B of an end-contact event.
◆ getEndContactShapeBTag()
| int eve::physics::World3D::getEndContactShapeBTag | ( | int | index | ) | const |
Shape Tag on stable side B of an end-contact event.
◆ getEndTriggerCount()
|
inline |
◆ getEndTriggerSensorBodyId()
| int eve::physics::World3D::getEndTriggerSensorBodyId | ( | int | index | ) | const |
Sensor body ID of an end-trigger event.
◆ getEndTriggerSensorShapeId()
| int eve::physics::World3D::getEndTriggerSensorShapeId | ( | int | index | ) | const |
Sensor shape ID of an end-trigger event.
◆ getEndTriggerSensorShapeTag()
| int eve::physics::World3D::getEndTriggerSensorShapeTag | ( | int | index | ) | const |
Sensor Shape Tag of an end-trigger event.
◆ getEndTriggerVisitorBodyId()
| int eve::physics::World3D::getEndTriggerVisitorBodyId | ( | int | index | ) | const |
Visitor body ID of an end-trigger event.
◆ getEndTriggerVisitorShapeId()
| int eve::physics::World3D::getEndTriggerVisitorShapeId | ( | int | index | ) | const |
Visitor shape ID of an end-trigger event.
◆ getEndTriggerVisitorShapeTag()
| int eve::physics::World3D::getEndTriggerVisitorShapeTag | ( | int | index | ) | const |
Visitor Shape Tag of an end-trigger event.
◆ getExplosionResultBodyId()
| int eve::physics::World3D::getExplosionResultBodyId | ( | int | index | ) | const |
Stable Body ID of an affected body, sorted ascending.
◆ getExplosionResultCount()
|
inline |
◆ getExplosionResultDeltaAngularVelocityX()
| float eve::physics::World3D::getExplosionResultDeltaAngularVelocityX | ( | int | index | ) | const |
Explosion-induced angular velocity delta X.
◆ getExplosionResultDeltaAngularVelocityY()
| float eve::physics::World3D::getExplosionResultDeltaAngularVelocityY | ( | int | index | ) | const |
Explosion-induced angular velocity delta Y.
◆ getExplosionResultDeltaAngularVelocityZ()
| float eve::physics::World3D::getExplosionResultDeltaAngularVelocityZ | ( | int | index | ) | const |
Explosion-induced angular velocity delta Z.
◆ getExplosionResultDeltaVelocityX()
| float eve::physics::World3D::getExplosionResultDeltaVelocityX | ( | int | index | ) | const |
Explosion-induced linear velocity delta X.
◆ getExplosionResultDeltaVelocityY()
| float eve::physics::World3D::getExplosionResultDeltaVelocityY | ( | int | index | ) | const |
Explosion-induced linear velocity delta Y.
◆ getExplosionResultDeltaVelocityZ()
| float eve::physics::World3D::getExplosionResultDeltaVelocityZ | ( | int | index | ) | const |
Explosion-induced linear velocity delta Z.
◆ getGravityX()
| float eve::physics::World3D::getGravityX | ( | ) | const |
在文件 World3D.cpp 第 780 行定义.
引用了 isValid().
◆ getGravityY()
| float eve::physics::World3D::getGravityY | ( | ) | const |
在文件 World3D.cpp 第 785 行定义.
引用了 isValid().
◆ getGravityZ()
| float eve::physics::World3D::getGravityZ | ( | ) | const |
在文件 World3D.cpp 第 790 行定义.
引用了 isValid().
◆ getHitApproachSpeed()
| float eve::physics::World3D::getHitApproachSpeed | ( | int | index | ) | const |
Positive pre-solve approach speed in m/s.
◆ getHitBodyAId()
| int eve::physics::World3D::getHitBodyAId | ( | int | index | ) | const |
Stable body ID on side A of a hit.
◆ getHitBodyBId()
| int eve::physics::World3D::getHitBodyBId | ( | int | index | ) | const |
Stable body ID on side B of a hit.
◆ getHitCount()
|
inline |
◆ getHitEventThreshold()
| float eve::physics::World3D::getHitEventThreshold | ( | ) | const |
◆ getHitNormalImpulse()
| float eve::physics::World3D::getHitNormalImpulse | ( | int | index | ) | const |
Total normal impulse accumulated across all manifolds and substeps.
◆ getHitNormalX()
| float eve::physics::World3D::getHitNormalX | ( | int | index | ) | const |
Hit normal X, pointing from stable side A to B.
◆ getHitNormalY()
| float eve::physics::World3D::getHitNormalY | ( | int | index | ) | const |
Hit normal Y, pointing from stable side A to B.
◆ getHitNormalZ()
| float eve::physics::World3D::getHitNormalZ | ( | int | index | ) | const |
Hit normal Z, pointing from stable side A to B.
◆ getHitPointX()
| float eve::physics::World3D::getHitPointX | ( | int | index | ) | const |
World-space impact point X.
◆ getHitPointY()
| float eve::physics::World3D::getHitPointY | ( | int | index | ) | const |
World-space impact point Y.
◆ getHitPointZ()
| float eve::physics::World3D::getHitPointZ | ( | int | index | ) | const |
World-space impact point Z.
◆ getHitShapeAId()
| int eve::physics::World3D::getHitShapeAId | ( | int | index | ) | const |
Stable Shape ID on side A of a hit.
◆ getHitShapeATag()
| int eve::physics::World3D::getHitShapeATag | ( | int | index | ) | const |
Shape Tag on side A of a hit.
◆ getHitShapeBId()
| int eve::physics::World3D::getHitShapeBId | ( | int | index | ) | const |
Stable Shape ID on side B of a hit.
◆ getHitShapeBTag()
| int eve::physics::World3D::getHitShapeBTag | ( | int | index | ) | const |
Shape Tag on side B of a hit.
◆ getIslandCount()
| int eve::physics::World3D::getIslandCount | ( | ) | const |
Current solver-island count.
◆ getJointCount()
| int eve::physics::World3D::getJointCount | ( | ) | const |
Current backend joint count.
◆ getJointStressBodyAId()
| int eve::physics::World3D::getJointStressBodyAId | ( | int | index | ) | const |
Stable body A ID of a stress event.
◆ getJointStressBodyBId()
| int eve::physics::World3D::getJointStressBodyBId | ( | int | index | ) | const |
Stable body B ID of a stress event.
◆ getJointStressCount()
|
inline |
◆ getJointStressForceX()
| float eve::physics::World3D::getJointStressForceX | ( | int | index | ) | const |
Constraint force X of a stress event.
◆ getJointStressForceY()
| float eve::physics::World3D::getJointStressForceY | ( | int | index | ) | const |
Constraint force Y of a stress event.
◆ getJointStressForceZ()
| float eve::physics::World3D::getJointStressForceZ | ( | int | index | ) | const |
Constraint force Z of a stress event.
◆ getJointStressJointId()
| int eve::physics::World3D::getJointStressJointId | ( | int | index | ) | const |
Stable Joint3D ID of a stress event.
◆ getJointStressKind()
| int eve::physics::World3D::getJointStressKind | ( | int | index | ) | const |
Joint kind code: 0 distance, 1 revolute, 2 prismatic, 3 spherical, 4 wheel.
◆ getJointStressTorqueX()
| float eve::physics::World3D::getJointStressTorqueX | ( | int | index | ) | const |
Constraint torque X of a stress event.
◆ getJointStressTorqueY()
| float eve::physics::World3D::getJointStressTorqueY | ( | int | index | ) | const |
Constraint torque Y of a stress event.
◆ getJointStressTorqueZ()
| float eve::physics::World3D::getJointStressTorqueZ | ( | int | index | ) | const |
Constraint torque Z of a stress event.
◆ getMaximumLinearSpeed()
| float eve::physics::World3D::getMaximumLinearSpeed | ( | ) | const |
◆ getMemoryByteCount()
| int eve::physics::World3D::getMemoryByteCount | ( | ) | const |
Approximate Box3D world allocation in bytes.
◆ getMoverDeltaX()
|
inline |
Resolved translation X from the last moveCapsule call.
被这些函数引用 moveCapsuleOwned().
◆ getMoverDeltaY()
|
inline |
Resolved translation Y from the last moveCapsule call.
被这些函数引用 moveCapsuleOwned().
◆ getMoverDeltaZ()
|
inline |
Resolved translation Z from the last moveCapsule call.
被这些函数引用 moveCapsuleOwned().
◆ getMoverGroundDot()
|
inline |
◆ getMoverIterations()
|
inline |
Number of outer solver passes used by the last move.
被这些函数引用 moveCapsuleOwned().
◆ getMoverNormalX()
|
inline |
Representative blocking normal X from the last move.
被这些函数引用 moveCapsuleOwned().
◆ getMoverNormalY()
|
inline |
Representative blocking normal Y from the last move.
被这些函数引用 moveCapsuleOwned().
◆ getMoverNormalZ()
|
inline |
Representative blocking normal Z from the last move.
被这些函数引用 moveCapsuleOwned().
◆ getMoverPlaneCount()
|
inline |
Number of collision planes considered during the last move.
被这些函数引用 moveCapsuleOwned().
◆ getProfileBulletsMs()
| float eve::physics::World3D::getProfileBulletsMs | ( | ) | const |
Latest continuous-collision bullet time in milliseconds.
◆ getProfileCollideMs()
| float eve::physics::World3D::getProfileCollideMs | ( | ) | const |
Latest narrow-phase collision time in milliseconds.
◆ getProfilePairsMs()
| float eve::physics::World3D::getProfilePairsMs | ( | ) | const |
Latest broad-phase pair generation time in milliseconds.
◆ getProfileSensorsMs()
| float eve::physics::World3D::getProfileSensorsMs | ( | ) | const |
Latest sensor processing time in milliseconds.
◆ getProfileSolveMs()
| float eve::physics::World3D::getProfileSolveMs | ( | ) | const |
Latest constraint solver time in milliseconds.
◆ getProfileStepMs()
| float eve::physics::World3D::getProfileStepMs | ( | ) | const |
Latest complete physics step time in milliseconds.
◆ getQueryBodyId()
| int eve::physics::World3D::getQueryBodyId | ( | int | index | ) | const |
◆ getQueryCategoryBits()
|
inline |
◆ getQueryCount()
|
inline |
◆ getQueryIgnoredBodyId()
|
inline |
◆ getQueryIgnoredShapeId()
|
inline |
◆ getQueryMaskBits()
|
inline |
◆ getQueryShapeCount()
|
inline |
◆ getQueryShapeId()
| int eve::physics::World3D::getQueryShapeId | ( | int | index | ) | const |
Stable shape id of the i-th shape hit, sorted ascending.
在文件 World3D.cpp 第 2182 行定义.
◆ getQueryShapeTag()
| int eve::physics::World3D::getQueryShapeTag | ( | int | index | ) | const |
◆ getRayHitBodyId()
◆ getRayHitFraction()
◆ getRayHitMaterialId()
|
inline |
◆ getRayHitNormalX()
◆ getRayHitNormalY()
◆ getRayHitNormalZ()
◆ getRayHitShapeId()
|
inline |
◆ getRayHitShapeTag()
|
inline |
◆ getRayHitTriangleIndex()
|
inline |
◆ getRayHitX()
◆ getRayHitY()
◆ getRayHitZ()
◆ getRayResultBodyId()
| int eve::physics::World3D::getRayResultBodyId | ( | int | index | ) | const |
Body ID of a sorted ray result.
◆ getRayResultCount()
|
inline |
◆ getRayResultFraction()
| float eve::physics::World3D::getRayResultFraction | ( | int | index | ) | const |
Segment fraction in [0,1] of a sorted ray result.
◆ getRayResultMaterialId()
| int eve::physics::World3D::getRayResultMaterialId | ( | int | index | ) | const |
Surface material ID at a sorted ray intersection.
◆ getRayResultNormalX()
| float eve::physics::World3D::getRayResultNormalX | ( | int | index | ) | const |
Surface normal X of a sorted ray result.
◆ getRayResultNormalY()
| float eve::physics::World3D::getRayResultNormalY | ( | int | index | ) | const |
Surface normal Y of a sorted ray result.
◆ getRayResultNormalZ()
| float eve::physics::World3D::getRayResultNormalZ | ( | int | index | ) | const |
Surface normal Z of a sorted ray result.
◆ getRayResultShapeId()
| int eve::physics::World3D::getRayResultShapeId | ( | int | index | ) | const |
Shape ID of a sorted ray result.
◆ getRayResultShapeTag()
| int eve::physics::World3D::getRayResultShapeTag | ( | int | index | ) | const |
Shape Tag of a sorted ray result.
◆ getRayResultTriangleIndex()
| int eve::physics::World3D::getRayResultTriangleIndex | ( | int | index | ) | const |
Mesh/height-field triangle index of a sorted ray result, otherwise -1.
◆ getRayResultX()
| float eve::physics::World3D::getRayResultX | ( | int | index | ) | const |
World-space hit point X of a sorted ray result.
◆ getRayResultY()
| float eve::physics::World3D::getRayResultY | ( | int | index | ) | const |
World-space hit point Y of a sorted ray result.
◆ getRayResultZ()
| float eve::physics::World3D::getRayResultZ | ( | int | index | ) | const |
World-space hit point Z of a sorted ray result.
◆ getRecycledContactCount()
| int eve::physics::World3D::getRecycledContactCount | ( | ) | const |
Contact points recycled during the latest step.
◆ getRestitutionThreshold()
| float eve::physics::World3D::getRestitutionThreshold | ( | ) | const |
◆ getShapeCastBodyId()
|
inline |
◆ getShapeCastFraction()
|
inline |
◆ getShapeCastMaterialId()
|
inline |
◆ getShapeCastNormalX()
|
inline |
◆ getShapeCastNormalY()
|
inline |
◆ getShapeCastNormalZ()
|
inline |
◆ getShapeCastResultBodyId()
| int eve::physics::World3D::getShapeCastResultBodyId | ( | int | index | ) | const |
Body ID of a sorted Shape Cast result.
◆ getShapeCastResultCount()
|
inline |
◆ getShapeCastResultFraction()
| float eve::physics::World3D::getShapeCastResultFraction | ( | int | index | ) | const |
Translation fraction in [0,1] of a Shape Cast result.
◆ getShapeCastResultMaterialId()
| int eve::physics::World3D::getShapeCastResultMaterialId | ( | int | index | ) | const |
Surface material ID at a sorted Shape Cast intersection.
◆ getShapeCastResultNormalX()
| float eve::physics::World3D::getShapeCastResultNormalX | ( | int | index | ) | const |
Contact normal X of a Shape Cast result.
◆ getShapeCastResultNormalY()
| float eve::physics::World3D::getShapeCastResultNormalY | ( | int | index | ) | const |
Contact normal Y of a Shape Cast result.
◆ getShapeCastResultNormalZ()
| float eve::physics::World3D::getShapeCastResultNormalZ | ( | int | index | ) | const |
Contact normal Z of a Shape Cast result.
◆ getShapeCastResultShapeId()
| int eve::physics::World3D::getShapeCastResultShapeId | ( | int | index | ) | const |
Shape ID of a sorted Shape Cast result.
◆ getShapeCastResultShapeTag()
| int eve::physics::World3D::getShapeCastResultShapeTag | ( | int | index | ) | const |
Shape Tag of a sorted Shape Cast result.
◆ getShapeCastResultTriangleIndex()
| int eve::physics::World3D::getShapeCastResultTriangleIndex | ( | int | index | ) | const |
Mesh/height-field triangle index of a Shape Cast result, otherwise -1.
◆ getShapeCastResultX()
| float eve::physics::World3D::getShapeCastResultX | ( | int | index | ) | const |
World-space contact point X of a Shape Cast result.
◆ getShapeCastResultY()
| float eve::physics::World3D::getShapeCastResultY | ( | int | index | ) | const |
World-space contact point Y of a Shape Cast result.
◆ getShapeCastResultZ()
| float eve::physics::World3D::getShapeCastResultZ | ( | int | index | ) | const |
World-space contact point Z of a Shape Cast result.
◆ getShapeCastShapeId()
|
inline |
◆ getShapeCastShapeTag()
|
inline |
◆ getShapeCastTriangleIndex()
|
inline |
◆ getShapeCastX()
|
inline |
◆ getShapeCastY()
|
inline |
◆ getShapeCastZ()
|
inline |
◆ getShapeCount()
| int eve::physics::World3D::getShapeCount | ( | ) | const |
Current backend shape count.
◆ getStaticTreeHeight()
| int eve::physics::World3D::getStaticTreeHeight | ( | ) | const |
Static broad-phase tree height.
◆ hasClosestPoint()
|
inline |
◆ hasRayHit()
|
inline |
◆ hasShapeCastHit()
|
inline |
◆ isBodyPairCollisionEnabled()
Whether a body pair is permitted by the runtime contact override.
在文件 World3D.cpp 第 827 行定义.
引用了 eve::physics::Body3D::getId(), eve::physics::Body3D::getWorld() , 以及 eve::physics::Body3D::isValid().
◆ isContactPointPersisted()
| bool eve::physics::World3D::isContactPointPersisted | ( | int | index | ) | const |
◆ isContinuousCollisionEnabled()
| bool eve::physics::World3D::isContinuousCollisionEnabled | ( | ) | const |
◆ isMoverGrounded()
|
inline |
True when the last move touched a walkable plane.
被这些函数引用 moveCapsuleOwned().
◆ isShapePairCollisionEnabled()
| bool eve::physics::World3D::isShapePairCollisionEnabled | ( | Shape3D * | shapeA, |
| Shape3D * | shapeB | ||
| ) | const |
Whether a shape pair is permitted by the runtime contact override.
在文件 World3D.cpp 第 849 行定义.
引用了 eve::physics::Shape3D::getBody(), eve::physics::Shape3D::getId(), eve::physics::Body3D::getWorld() , 以及 eve::physics::Shape3D::isValid().
◆ isValid()
| bool eve::physics::World3D::isValid | ( | ) | const |
True while the underlying Box3D world is alive.
在文件 World3D.cpp 第 430 行定义.
被这些函数引用 eve::physics::PhysicsArtifactProvider::boundWorld(), closestPoint(), eve::physics::Body3D::destroy(), emitContactEvents(), explode(), findBody(), findBodyById(), findJoint(), findShape(), findShapeById(), getAwakeBodyCount(), getBoundsMaxX(), getBoundsMaxY(), getBoundsMaxZ(), getBoundsMinX(), getBoundsMinY(), getBoundsMinZ(), getContactRecycleDistance(), getGravityX(), getGravityY(), getGravityZ(), getHitEventThreshold(), getMaximumLinearSpeed(), getRestitutionThreshold(), isContinuousCollisionEnabled(), isWarmStartingEnabled(), moveCapsule(), moveCapsuleOwned(), newBody(), newDistanceJoint(), newPrismaticJoint(), newRevoluteJoint(), newSphericalJoint(), newWheelJoint(), pointProbeFiltered(), eve::physics::PhysicsArtifactProvider::prepare(), queryAABB(), queryAabbBroadPhaseOwned(), queryBodyContacts(), queryCapsuleOwned(), rayCastOwned(), restore(), setContactRecycleDistance(), setContactTuning(), setContinuousCollisionEnabled(), setGravity(), setHitEventThreshold(), setMaximumLinearSpeed(), setRestitutionThreshold(), setWarmStartingEnabled(), snapshot(), sphereCast(), step() , 以及 eve::physics::Body3D::~Body3D().
◆ isWarmStartingEnabled()
| bool eve::physics::World3D::isWarmStartingEnabled | ( | ) | const |
◆ lifetimeToken()
|
inlinenoexcept |
Return a weak lifetime token for owner-thread runtime integrations.
- 返回
- Weak token that expires before this world invalidates backend objects. @ownership The world owns the token; callers may retain only the weak reference. @lifetime The token expires on destroy() or world destruction and is never renewed. @thread Capture and inspect on the world's owning simulation thread. @reentrancy This query invokes no callbacks.
◆ moveCapsule()
| bool eve::physics::World3D::moveCapsule | ( | float | ax, |
| float | ay, | ||
| float | az, | ||
| float | bx, | ||
| float | by, | ||
| float | bz, | ||
| float | radius, | ||
| float | dx, | ||
| float | dy, | ||
| float | dz | ||
| ) |
Move a capsule with continuous collision and multi-plane sliding. Existing penetration is recovered before the desired translation is applied.
- 返回
- true when collision planes constrained the movement
在文件 World3D.cpp 第 1935 行定义.
引用了 ax, ay, az, bx, by, bz, callback, collector, context, count, current, d, dx, dy, dz, filter, isValid(), planes, radius, start, target, up , 以及 world.
被这些函数引用 moveCapsuleOwned().
◆ moveCapsuleOwned()
| eve::Result< CapsuleMove3D > eve::physics::World3D::moveCapsuleOwned | ( | float | ax, |
| float | ay, | ||
| float | az, | ||
| float | bx, | ||
| float | by, | ||
| float | bz, | ||
| float | radius, | ||
| float | dx, | ||
| float | dy, | ||
| float | dz, | ||
| QueryFilter3D | filter = {}, |
||
| CapsuleMovePolicy3D | policy = {} |
||
| ) |
Moves a capsule and returns all resolved movement data as one owning result.
- 参数
-
filter Filter and exclusions scoped to this operation. policy Up direction and walkable-slope policy scoped to this operation.
- 返回
- Owning movement result, or a structured failure for invalid input/world state. @thread Call on the owning physics simulation thread. @reentrancy Does not invoke user callbacks; do not concurrently mutate this world.
在文件 World3D.cpp 第 2031 行定义.
引用了 ax, ay, az, bx, by, bz, eve::physics::CapsuleMove3D::constrained, eve::physics::CapsuleMove3D::deltaX, eve::physics::CapsuleMove3D::deltaY, eve::physics::CapsuleMove3D::deltaZ, dx, dy, dz, error, filter, getMoverDeltaX(), getMoverDeltaY(), getMoverDeltaZ(), getMoverIterations(), getMoverNormalX(), getMoverNormalY(), getMoverNormalZ(), getMoverPlaneCount(), eve::physics::CapsuleMove3D::grounded, eve::InvalidArgument, isMoverGrounded(), isValid(), eve::physics::CapsuleMove3D::iterations, eve::physics::CapsuleMovePolicy3D::maxSlopeRadians, moveCapsule(), eve::physics::CapsuleMove3D::normalX, eve::physics::CapsuleMove3D::normalY, eve::physics::CapsuleMove3D::normalZ, eve::physics::CapsuleMove3D::planeCount, radius, eve::StaleHandle, eve::Result< T >::success(), eve::physics::CapsuleMovePolicy3D::upX, eve::physics::CapsuleMovePolicy3D::upY, eve::physics::CapsuleMovePolicy3D::upZ , 以及 eve::physics::CapsuleMove3D::world.
◆ newBody()
| Body3D * eve::physics::World3D::newBody | ( | const std::string & | bodyType, |
| float | x, | ||
| float | y, | ||
| float | z | ||
| ) |
Creates a body in meter-space units.
- 返回
- Borrowed nullable body owned by this world; null means creation failed. @ownership World3D owns the body and its shapes; callers must destroy it through this API. @lifetime Valid until Body3D::destroy(), World3D::destroy(), or world teardown; use PhysicsBodyHandle across frames. @thread Call on the owning physics thread. @reentrancy Creation does not invoke callbacks; do not re-enter structural world mutation while using the result.
在文件 World3D.cpp 第 902 行定义.
引用了 body, Body3D, isValid(), nextBodyId(), nextBodyRuntimeHandle(), raw(), runtimeHandle(), x, y , 以及 z.
◆ newCrankSlider()
| Mechanism3D * eve::physics::World3D::newCrankSlider | ( | Body3D * | frame, |
| Body3D * | crank, | ||
| Body3D * | rod, | ||
| Body3D * | slider, | ||
| float | crankAnchorX, | ||
| float | crankAnchorY, | ||
| float | crankAnchorZ, | ||
| float | axisX, | ||
| float | axisY, | ||
| float | axisZ, | ||
| float | crankPinX, | ||
| float | crankPinY, | ||
| float | crankPinZ, | ||
| float | sliderPinX, | ||
| float | sliderPinY, | ||
| float | sliderPinZ, | ||
| float | slideAxisX, | ||
| float | slideAxisY, | ||
| float | slideAxisZ, | ||
| bool | collideConnected = false |
||
| ) |
Builds a planar crank-slider from frame, crank, connecting rod and slider bodies.
- 返回
- Borrowed mechanism owned by this world. @ownership World3D owns the mechanism and its joints; body pointers are borrowed inputs. @lifetime Valid until Mechanism3D::destroy() or World3D::destroy(). @thread Call on the owning physics thread. @reentrancy Creation does not invoke callbacks; do not mutate the input bodies re-entrantly.
- 异常
-
eve::Exception for invalid body chains or parallel hinge/slide axes.
在文件 World3DJoints.cpp 第 155 行定义.
引用了 axisX, axisY, axisZ, eve::physics::Mechanism3D::CrankSlider, Mechanism3D, newPrismaticJoint(), newRevoluteJoint(), nextMechanismId() , 以及 values.
◆ newDistanceJoint()
| Joint3D * eve::physics::World3D::newDistanceJoint | ( | Body3D * | bodyA, |
| Body3D * | bodyB, | ||
| float | anchorAX, | ||
| float | anchorAY, | ||
| float | anchorAZ, | ||
| float | anchorBX, | ||
| float | anchorBY, | ||
| float | anchorBZ, | ||
| float | length, | ||
| bool | collideConnected = false |
||
| ) |
Connects two world-space anchor points with a rigid distance constraint.
- 返回
- Borrowed nullable joint owned by this world; null means creation failed. @ownership World3D owns the joint; body pointers are borrowed inputs and are never retained after validation. @lifetime Valid until Joint3D::destroy(), World3D::destroy(), or dependent body destruction; use PhysicsJointHandle across frames. @thread Call on the owning physics thread. @reentrancy Creation does not invoke callbacks; do not mutate either body re-entrantly.
- 异常
-
eve::Exception for invalid bodies, anchors, length, or cross-world bodies.
在文件 World3D.cpp 第 532 行定义.
引用了 eve::physics::Joint3D::Distance, eve::physics::Body3D::getWorld(), eve::physics::Body3D::isValid(), isValid(), Joint3D, length, nextJointId(), nextJointRuntimeHandle(), eve::physics::Body3D::raw(), runtimeHandle(), value , 以及 values.
◆ newFilterJoint()
Disables collision between two specific bodies (filter joint).
- 返回
- Borrowed nullable joint owned by this world. @ownership World3D owns the joint; body pointers are borrowed inputs and are not retained as caller ownership. @lifetime Valid until Joint3D::destroy(), World3D::destroy(), or dependent body destruction; use PhysicsJointHandle across frames. @thread Call on the owning physics thread. @reentrancy Creation does not invoke callbacks; do not mutate either body re-entrantly.
- 异常
-
eve::Exception for invalid/cross-world bodies.
在文件 World3DJoints.cpp 第 100 行定义.
引用了 eve::physics::Joint3D::Filter, Joint3D, nextJointId(), nextJointRuntimeHandle(), eve::physics::Body3D::raw() , 以及 runtimeHandle().
◆ newMotorJoint()
| Joint3D * eve::physics::World3D::newMotorJoint | ( | Body3D * | bodyA, |
| Body3D * | bodyB, | ||
| bool | collideConnected = false |
||
| ) |
Creates a motor joint that drives relative linear/angular velocity between bodies.
- 返回
- Borrowed nullable joint owned by this world. @ownership World3D owns the joint; body pointers are borrowed inputs and are not retained as caller ownership. @lifetime Valid until Joint3D::destroy(), World3D::destroy(), or dependent body destruction; use PhysicsJointHandle across frames. @thread Call on the owning physics thread. @reentrancy Creation does not invoke callbacks; do not mutate either body re-entrantly.
- 异常
-
eve::Exception for invalid/cross-world bodies.
在文件 World3DJoints.cpp 第 61 行定义.
引用了 Joint3D, eve::physics::Joint3D::Motor, nextJointId(), nextJointRuntimeHandle(), eve::physics::Body3D::raw() , 以及 runtimeHandle().
◆ newParallelJoint()
| Joint3D * eve::physics::World3D::newParallelJoint | ( | Body3D * | bodyA, |
| Body3D * | bodyB, | ||
| float | axisX, | ||
| float | axisY, | ||
| float | axisZ, | ||
| bool | collideConnected = false |
||
| ) |
Creates a parallel joint that spring-aligns body local Z axes to a world axis.
- 返回
- Borrowed nullable joint owned by this world. @ownership World3D owns the joint; body pointers are borrowed inputs and are not retained as caller ownership. @lifetime Valid until Joint3D::destroy(), World3D::destroy(), or dependent body destruction; use PhysicsJointHandle across frames. @thread Call on the owning physics thread. @reentrancy Creation does not invoke callbacks; do not mutate either body re-entrantly.
- 异常
-
eve::Exception for invalid bodies or a zero/non-finite axis.
在文件 World3DJoints.cpp 第 76 行定义.
引用了 axisX, axisY, axisZ, Joint3D, nextJointId(), nextJointRuntimeHandle(), eve::physics::Joint3D::Parallel, eve::physics::Body3D::raw(), runtimeHandle() , 以及 values.
◆ newPrismaticJoint()
| Joint3D * eve::physics::World3D::newPrismaticJoint | ( | Body3D * | bodyA, |
| Body3D * | bodyB, | ||
| float | anchorX, | ||
| float | anchorY, | ||
| float | anchorZ, | ||
| float | axisX, | ||
| float | axisY, | ||
| float | axisZ, | ||
| bool | collideConnected = false |
||
| ) |
Creates a slider whose permitted world-space translation follows axis.
- 返回
- Borrowed nullable joint owned by this world; null means creation failed. @ownership World3D owns the joint; body pointers are borrowed inputs and are not retained as caller ownership. @lifetime Valid until Joint3D::destroy(), World3D::destroy(), or dependent body destruction; use PhysicsJointHandle across frames. @thread Call on the owning physics thread. @reentrancy Creation does not invoke callbacks; do not mutate either body re-entrantly.
在文件 World3D.cpp 第 597 行定义.
引用了 anchor, axisX, axisY, axisZ, eve::physics::Body3D::getWorld(), eve::physics::Body3D::isValid(), isValid(), Joint3D, nextJointId(), nextJointRuntimeHandle(), eve::physics::Joint3D::Prismatic, eve::physics::Body3D::raw(), runtimeHandle(), value , 以及 values.
被这些函数引用 newCrankSlider().
◆ newRatchet()
| Mechanism3D * eve::physics::World3D::newRatchet | ( | Body3D * | frame, |
| Body3D * | wheel, | ||
| float | anchorX, | ||
| float | anchorY, | ||
| float | anchorZ, | ||
| float | axisX, | ||
| float | axisY, | ||
| float | axisZ, | ||
| int | direction, | ||
| float | engagementTorque, | ||
| bool | collideConnected = false |
||
| ) |
Builds a one-way ratchet around a revolute axis.
- 参数
-
direction Freewheel direction along the axis: +1 or -1. engagementTorque Maximum reverse-lock torque in newton-metres.
- 返回
- Borrowed mechanism owned by this world. @ownership World3D owns the mechanism and its joints; body pointers are borrowed inputs. @lifetime Valid until Mechanism3D::destroy() or World3D::destroy(). @thread Call on the owning physics thread. @reentrancy Creation does not invoke callbacks; do not mutate either body re-entrantly.
在文件 World3DJoints.cpp 第 136 行定义.
引用了 axisX, axisY, axisZ, direction, Mechanism3D, newRevoluteJoint(), nextMechanismId() , 以及 eve::physics::Mechanism3D::Ratchet.
◆ newRevoluteJoint()
| Joint3D * eve::physics::World3D::newRevoluteJoint | ( | Body3D * | bodyA, |
| Body3D * | bodyB, | ||
| float | anchorX, | ||
| float | anchorY, | ||
| float | anchorZ, | ||
| float | axisX, | ||
| float | axisY, | ||
| float | axisZ, | ||
| bool | collideConnected = false |
||
| ) |
Creates a hinge around a normalized world-space axis at a shared anchor.
- 返回
- Borrowed nullable joint owned by this world; null means creation failed. @ownership World3D owns the joint; body pointers are borrowed inputs and are not retained as caller ownership. @lifetime Valid until Joint3D::destroy(), World3D::destroy(), or dependent body destruction; use PhysicsJointHandle across frames. @thread Call on the owning physics thread. @reentrancy Creation does not invoke callbacks; do not mutate either body re-entrantly.
- 异常
-
eve::Exception for invalid/cross-world bodies or a zero/non-finite axis.
在文件 World3D.cpp 第 562 行定义.
引用了 anchor, axisX, axisY, axisZ, eve::physics::Body3D::getWorld(), eve::physics::Body3D::isValid(), isValid(), Joint3D, nextJointId(), nextJointRuntimeHandle(), eve::physics::Body3D::raw(), eve::physics::Joint3D::Revolute, runtimeHandle(), value , 以及 values.
被这些函数引用 newCrankSlider(), newRatchet() , 以及 newShaft().
◆ newShaft()
| Mechanism3D * eve::physics::World3D::newShaft | ( | Body3D * | support, |
| Body3D * | rotor, | ||
| float | anchorX, | ||
| float | anchorY, | ||
| float | anchorZ, | ||
| float | axisX, | ||
| float | axisY, | ||
| float | axisZ, | ||
| bool | collideConnected = false |
||
| ) |
Builds a shaft (support↔rotor revolute) with optional drive motor helpers.
- 返回
- Borrowed mechanism owned by this world. @ownership World3D owns the mechanism and its joints; body pointers are borrowed inputs. @lifetime Valid until Mechanism3D::destroy() or World3D::destroy(). @thread Call on the owning physics thread. @reentrancy Creation does not invoke callbacks; do not mutate either body re-entrantly.
在文件 World3DJoints.cpp 第 122 行定义.
引用了 axisX, axisY, axisZ, Mechanism3D, newRevoluteJoint(), nextMechanismId() , 以及 eve::physics::Mechanism3D::Shaft.
◆ newSphericalJoint()
| Joint3D * eve::physics::World3D::newSphericalJoint | ( | Body3D * | bodyA, |
| Body3D * | bodyB, | ||
| float | anchorX, | ||
| float | anchorY, | ||
| float | anchorZ, | ||
| float | axisX, | ||
| float | axisY, | ||
| float | axisZ, | ||
| bool | collideConnected = false |
||
| ) |
Creates a ball-and-socket joint with a world-space twist/cone axis.
- 返回
- Borrowed nullable joint owned by this world; null means creation failed. @ownership World3D owns the joint; body pointers are borrowed inputs and are not retained as caller ownership. @lifetime Valid until Joint3D::destroy(), World3D::destroy(), or dependent body destruction; use PhysicsJointHandle across frames. @thread Call on the owning physics thread. @reentrancy Creation does not invoke callbacks; do not mutate either body re-entrantly.
在文件 World3D.cpp 第 632 行定义.
引用了 anchor, axisX, axisY, axisZ, eve::physics::Body3D::getWorld(), eve::physics::Body3D::isValid(), isValid(), Joint3D, nextJointId(), nextJointRuntimeHandle(), eve::physics::Body3D::raw(), runtimeHandle(), eve::physics::Joint3D::Spherical, value , 以及 values.
◆ newWeldJoint()
| Joint3D * eve::physics::World3D::newWeldJoint | ( | Body3D * | bodyA, |
| Body3D * | bodyB, | ||
| float | anchorX, | ||
| float | anchorY, | ||
| float | anchorZ, | ||
| bool | collideConnected = false |
||
| ) |
Welds two bodies at a shared world-space anchor, preserving current relative pose.
- 返回
- Borrowed nullable joint owned by this world. @ownership World3D owns the joint; body pointers are borrowed inputs and are not retained as caller ownership. @lifetime Valid until Joint3D::destroy(), World3D::destroy(), or dependent body destruction; use PhysicsJointHandle across frames. @thread Call on the owning physics thread. @reentrancy Creation does not invoke callbacks; do not mutate either body re-entrantly.
- 异常
-
eve::Exception for invalid/cross-world bodies or non-finite anchors.
在文件 World3DJoints.cpp 第 36 行定义.
引用了 anchor, Joint3D, nextJointId(), nextJointRuntimeHandle(), eve::physics::Body3D::raw(), runtimeHandle(), values , 以及 eve::physics::Joint3D::Weld.
◆ newWheelJoint()
| Joint3D * eve::physics::World3D::newWheelJoint | ( | Body3D * | bodyA, |
| Body3D * | bodyB, | ||
| float | anchorX, | ||
| float | anchorY, | ||
| float | anchorZ, | ||
| float | suspensionAxisX, | ||
| float | suspensionAxisY, | ||
| float | suspensionAxisZ, | ||
| float | wheelAxisX, | ||
| float | wheelAxisY, | ||
| float | wheelAxisZ, | ||
| bool | collideConnected = false |
||
| ) |
Creates a vehicle wheel joint with independent world suspension and spin axes.
- 返回
- Borrowed nullable joint owned by this world; null means creation failed. @ownership World3D owns the joint; body pointers are borrowed inputs and are not retained as caller ownership. @lifetime Valid until Joint3D::destroy(), World3D::destroy(), or dependent body destruction; use PhysicsJointHandle across frames. @thread Call on the owning physics thread. @reentrancy Creation does not invoke callbacks; do not mutate either body re-entrantly.
在文件 World3D.cpp 第 667 行定义.
引用了 anchor, eve::physics::Body3D::getWorld(), eve::physics::Body3D::isValid(), isValid(), Joint3D, nextJointId(), nextJointRuntimeHandle(), eve::physics::Body3D::raw(), runtimeHandle(), value, values , 以及 eve::physics::Joint3D::Wheel.
◆ nextBodyId()
| int eve::physics::World3D::nextBodyId | ( | ) |
◆ nextBodyRuntimeHandle()
| PhysicsBodyHandle eve::physics::World3D::nextBodyRuntimeHandle | ( | ) |
Internal: next generation-qualified body handle.
在文件 World3D.cpp 第 884 行定义.
引用了 eve::RuntimeHandle< PhysicsBodyHandleTag >::invalidIndex.
被这些函数引用 newBody().
◆ nextJointId()
|
inline |
Internal: next stable joint id.
被这些函数引用 newDistanceJoint(), newFilterJoint(), newMotorJoint(), newParallelJoint(), newPrismaticJoint(), newRevoluteJoint(), newSphericalJoint(), newWeldJoint() , 以及 newWheelJoint().
◆ nextJointRuntimeHandle()
| PhysicsJointHandle eve::physics::World3D::nextJointRuntimeHandle | ( | ) |
Internal: next generation-qualified joint handle.
在文件 World3D.cpp 第 896 行定义.
引用了 eve::RuntimeHandle< PhysicsJointHandleTag >::invalidIndex.
被这些函数引用 newDistanceJoint(), newFilterJoint(), newMotorJoint(), newParallelJoint(), newPrismaticJoint(), newRevoluteJoint(), newSphericalJoint(), newWeldJoint() , 以及 newWheelJoint().
◆ nextMechanismId()
| int eve::physics::World3D::nextMechanismId | ( | ) |
Internal: next stable mechanism id.
在文件 World3DJoints.cpp 第 120 行定义.
被这些函数引用 newCrankSlider(), newRatchet() , 以及 newShaft().
◆ nextShapeId()
|
inline |
◆ nextShapeRuntimeHandle()
| PhysicsShapeHandle eve::physics::World3D::nextShapeRuntimeHandle | ( | ) |
Internal: next generation-qualified shape handle.
在文件 World3D.cpp 第 890 行定义.
引用了 eve::RuntimeHandle< PhysicsShapeHandleTag >::invalidIndex.
被这些函数引用 eve::physics::Body3D::newBoxShape(), eve::physics::Body3D::newCapsuleShape(), eve::physics::Body3D::newConvexHullShape(), eve::physics::Body3D::newHeightFieldShape(), eve::physics::Body3D::newSphereShape() , 以及 eve::physics::Body3D::newTriangleMeshShape().
◆ operator=()
◆ persistentId()
|
inlinenoexcept |
◆ pointProbe()
| bool eve::physics::World3D::pointProbe | ( | float | x, |
| float | y, | ||
| float | z, | ||
| float | radius, | ||
| ClothContact3D * | out | ||
| ) | const |
Probe the deepest non-sensor shape within radius of a meter-space point. Returns false when nothing is hit. Used by Cloth3D for particle-vs-body collision.
在文件 World3D.cpp 第 2080 行定义.
引用了 eve::physics::Hit, pointProbeFiltered(), radius, x, y , 以及 z.
◆ pointProbeFiltered()
| ClothProbeStatus eve::physics::World3D::pointProbeFiltered | ( | float | x, |
| float | y, | ||
| float | z, | ||
| float | radius, | ||
| ClothContact3D * | out, | ||
| uint64_t | categoryBits, | ||
| uint64_t | maskBits | ||
| ) | const |
Probe a cloth particle using symmetric category/mask filtering.
在文件 World3D.cpp 第 2084 行定义.
引用了 eve::physics::ClothContact3D::body, d, depth, eve::physics::ClothContact3D::depth, eve::physics::ClothContact3D::friction, eve::physics::ClothContact3D::hit, eve::physics::Hit, isValid(), kind, eve::physics::Miss, eve::physics::ClothContact3D::nx, eve::physics::ClothContact3D::ny, eve::physics::ClothContact3D::nz, radius, eve::physics::ClothContact3D::restitution, s, target, x, y , 以及 z.
被这些函数引用 pointProbe().
◆ queryAABB()
| int eve::physics::World3D::queryAABB | ( | float | minX, |
| float | minY, | ||
| float | minZ, | ||
| float | maxX, | ||
| float | maxY, | ||
| float | maxZ | ||
| ) |
◆ queryAabbBroadPhaseOwned()
| eve::Result< BroadPhaseAabb3D > eve::physics::World3D::queryAabbBroadPhaseOwned | ( | float | minX, |
| float | minY, | ||
| float | minZ, | ||
| float | maxX, | ||
| float | maxY, | ||
| float | maxZ, | ||
| QueryFilter3D | filter = {} |
||
| ) |
Queries one AABB into a fixed owning result without using the legacy query cache.
- 参数
-
filter Filter and exclusions scoped to this operation.
- 返回
- Stable-id-sorted nearest-set evidence; truncated is observable when capacity is exceeded. @thread Call on the owning physics simulation thread. @reentrancy Does not invoke user callbacks; do not concurrently mutate this world.
在文件 World3D.cpp 第 1539 行定义.
引用了 body, eve::physics::BroadPhaseHit3D::bodyId, bounds, callback, collector, context, eve::physics::BroadPhaseAabb3D::count, error, filter, hit, eve::physics::BroadPhaseAabb3D::hits, eve::InvalidArgument, isValid(), output, shape, eve::physics::BroadPhaseHit3D::shapeId, eve::StaleHandle, eve::Result< T >::success() , 以及 world.
◆ queryBodyContacts()
| int eve::physics::World3D::queryBodyContacts | ( | int | bodyId, |
| int | maxPoints | ||
| ) |
Caches current touching manifold points for one stable Body3D ID. Results are oriented from the queried body toward the other body.
- 参数
-
maxPoints Maximum cached points in [1,4096].
- 返回
- Number of cached points.
在文件 World3D.cpp 第 1096 行定义.
引用了 a, b, body, capacity, eve::physics::Body3D::getId(), eve::physics::Shape3D::getId(), eve::physics::Shape3D::getTag(), isValid(), normal, point , 以及 target.
◆ queryBox()
| int eve::physics::World3D::queryBox | ( | float | x, |
| float | y, | ||
| float | z, | ||
| float | width, | ||
| float | height, | ||
| float | depth, | ||
| float | qx, | ||
| float | qy, | ||
| float | qz, | ||
| float | qw | ||
| ) |
Query shapes overlapping an oriented box.
- 参数
-
width Full positive box width along its local X axis. height Full positive box height along its local Y axis. depth Full positive box depth along its local Z axis. qx Quaternion X component; the quaternion is normalized internally. qy Quaternion Y component. qz Quaternion Z component. qw Quaternion scalar component.
- 返回
- Number of unique bodies hit.
在文件 World3D.cpp 第 1692 行定义.
引用了 depth, height, points, qw, qx, qy, qz, rotation, width, x, y , 以及 z.
◆ queryCapsule()
| int eve::physics::World3D::queryCapsule | ( | float | ax, |
| float | ay, | ||
| float | az, | ||
| float | bx, | ||
| float | by, | ||
| float | bz, | ||
| float | radius | ||
| ) |
◆ queryCapsuleOwned()
| eve::Result< CapsuleOverlap3D > eve::physics::World3D::queryCapsuleOwned | ( | float | ax, |
| float | ay, | ||
| float | az, | ||
| float | bx, | ||
| float | by, | ||
| float | bz, | ||
| float | radius, | ||
| QueryFilter3D | filter = {} |
||
| ) |
Performs one capsule overlap and returns an owning summary without exposing the query cache.
- 参数
-
filter Filter and exclusions scoped to this operation.
- 返回
- Owning overlap summary, or a structured failure for invalid input/world state. @thread Call on the owning physics simulation thread. @reentrancy Does not invoke user callbacks; do not concurrently mutate this world.
在文件 World3D.cpp 第 1647 行定义.
引用了 ax, ay, az, body, eve::physics::CapsuleOverlap3D::bodyCount, bx, by, bz, callback, collector, context, count, error, filter, eve::InvalidArgument, isValid(), points, radius, eve::StaleHandle, eve::Result< T >::success(), eve::physics::CapsuleOverlap3D::world , 以及 world.
◆ querySphere()
| int eve::physics::World3D::querySphere | ( | float | x, |
| float | y, | ||
| float | z, | ||
| float | radius | ||
| ) |
◆ raw()
|
inline |
◆ rayCast()
| int eve::physics::World3D::rayCast | ( | float | x1, |
| float | y1, | ||
| float | z1, | ||
| float | x2, | ||
| float | y2, | ||
| float | z2 | ||
| ) |
Closest raycast from (x1,y1,z1) to (x2,y2,z2) in meters. Returns hit body id, or -1. Read hit details via getRayHit*.
在文件 World3D.cpp 第 1332 行定义.
引用了 rayCastAll().
◆ rayCastAll()
| int eve::physics::World3D::rayCastAll | ( | float | x1, |
| float | y1, | ||
| float | z1, | ||
| float | x2, | ||
| float | y2, | ||
| float | z2, | ||
| int | maxHits | ||
| ) |
Collects the nearest maxHits ray intersections, sorted by fraction then Shape ID.
- 返回
- Number of cached intersections; read them with getRayResult*.
在文件 World3D.cpp 第 1405 行定义.
被这些函数引用 rayCast().
◆ rayCastFiltered()
| int eve::physics::World3D::rayCastFiltered | ( | float | x1, |
| float | y1, | ||
| float | z1, | ||
| float | x2, | ||
| float | y2, | ||
| float | z2, | ||
| uint64_t | maskBits | ||
| ) |
◆ rayCastOwned()
| eve::Result< RayHit3D > eve::physics::World3D::rayCastOwned | ( | float | x1, |
| float | y1, | ||
| float | z1, | ||
| float | x2, | ||
| float | y2, | ||
| float | z2, | ||
| QueryFilter3D | filter = {} |
||
| ) |
Performs one ray query and returns an owning, generation-qualified snapshot.
- 参数
-
filter Filter and exclusions used only for this operation; prior world query state is restored.
- 返回
- A successful snapshot whose
hitfield distinguishes a normal miss, or a structured failure. @ownership The returned value owns its scalar data and retains no body, shape, or world pointers. @lifetime Handles must be re-resolved before later use and become stale with their physics owners. @thread Call on the owning physics simulation thread. @reentrancy Does not invoke user callbacks; do not concurrently mutate this world.
在文件 World3D.cpp 第 1345 行定义.
引用了 body, eve::physics::RayHit3D::body, eve::physics::RayHit3D::bodyId, callback, collector, context, error, filter, eve::physics::RayHit3D::fraction, eve::physics::RayHit3D::hit, eve::InvalidArgument, eve::InvariantViolation, eve::RuntimeHandle< Tag >::isInvalid(), isValid(), eve::physics::RayHit3D::materialId, normal, eve::physics::RayHit3D::normalX, eve::physics::RayHit3D::normalY, eve::physics::RayHit3D::normalZ, point, shape, eve::physics::RayHit3D::shape, eve::physics::RayHit3D::shapeId, eve::physics::RayHit3D::shapeTag, eve::StaleHandle, eve::Result< T >::success(), eve::physics::RayHit3D::triangleIndex, eve::physics::RayHit3D::world, world, eve::physics::RayHit3D::x, eve::physics::RayHit3D::y , 以及 eve::physics::RayHit3D::z.
◆ registerShapeHandle()
| void eve::physics::World3D::registerShapeHandle | ( | Shape3D * | shape | ) |
Internal: snapshots a backend handle for destruction-safe end events.
在文件 World3D.cpp 第 1026 行定义.
被这些函数引用 eve::physics::Shape3D::Shape3D().
◆ resetQueryFilter()
| void eve::physics::World3D::resetQueryFilter | ( | ) |
Restore the query filter to accept all lower-32-bit categories.
在文件 World3D.cpp 第 975 行定义.
◆ restore()
| eve::Result< void > eve::physics::World3D::restore | ( | const eve::SnapshotEnvelope & | snapshot, |
| const eve::SnapshotHashProvider & | hashProvider | ||
| ) |
Restores a verified snapshot without exposing partial state.
- 参数
-
snapshot Versioned envelope produced for this world schema. hashProvider Provider used to verify its content hash.
- 返回
- Applied after replacing live bodies, supported shapes, and supported joint topology from detached prepared state.
- 备注
- The snapshot is borrowed for this call and runtime handles are never persisted or reused from its payload. Preparation is detached and failure leaves the live world unchanged. Schema v2 reconstructs shape sources and joint kind/local frames; joint motor, spring, limit, threshold, and collide-connected runtime settings are not represented and therefore restore to constructor defaults.
在文件 WorldSnapshot.cpp 第 945 行定义.
引用了 eve::physics::WorldSnapshotAccess::adopt(), eve::Applied, eve::Value::arraySize(), clearContactEvents(), eve::Conflict, eve::Diagnostic::error(), eve::Result< T >::failure(), eve::Value::getIf(), eve::SnapshotEnvelope::instanceId, eve::Value::isArray(), eve::detail::Id128< Tag >::isNil(), isValid(), eve::ParseError, eve::SnapshotEnvelope::payload, eve::PreconditionViolation, eve::SnapshotEnvelope::schemaVersion, eve::Status::success(), eve::Result< T >::success(), eve::detail::StrongUint64< Tag >::value() , 以及 eve::verifySnapshotEnvelope().
◆ runtimeHandle()
|
inlinenoexcept |
Process-local identity used by PhysicsLink; invalid after destruction.
被这些函数引用 eve::physics::PhysicsArtifactProvider::boundWorld(), newBody(), newDistanceJoint(), newFilterJoint(), newMotorJoint(), newParallelJoint(), newPrismaticJoint(), newRevoluteJoint(), newSphericalJoint(), newWeldJoint(), newWheelJoint() , 以及 eve::physics::PhysicsArtifactProvider::prepare().
◆ setBodyPairCollisionEnabled()
| void eve::physics::World3D::setBodyPairCollisionEnabled | ( | Body3D * | bodyA, |
| Body3D * | bodyB, | ||
| bool | enabled | ||
| ) |
Overrides collision for a live body pair without changing layer masks.
在文件 World3D.cpp 第 810 行定义.
引用了 enabled, eve::physics::Body3D::getId(), eve::physics::Body3D::getWorld(), eve::physics::Body3D::isValid(), key , 以及 shape.
◆ setContactRecycleDistance()
| void eve::physics::World3D::setContactRecycleDistance | ( | float | distance | ) |
Sets contact-point persistence distance in meters; zero disables recycling.
在文件 World3D.cpp 第 252 行定义.
◆ setContactTuning()
| void eve::physics::World3D::setContactTuning | ( | float | hertz, |
| float | dampingRatio, | ||
| float | pushOutSpeed | ||
| ) |
Configures contact overlap recovery.
- 参数
-
hertz Positive contact stiffness frequency in cycles per second. dampingRatio Non-negative damping ratio; 1 is critical damping. pushOutSpeed Non-negative maximum overlap recovery speed in m/s.
在文件 World3D.cpp 第 239 行定义.
引用了 isValid().
◆ setContinuousCollisionEnabled()
| void eve::physics::World3D::setContinuousCollisionEnabled | ( | bool | enabled | ) |
Enables world-level continuous collision against static geometry.
在文件 World3D.cpp 第 221 行定义.
◆ setGravity()
| void eve::physics::World3D::setGravity | ( | float | gx, |
| float | gy, | ||
| float | gz | ||
| ) |
◆ setHitEventThreshold()
| void eve::physics::World3D::setHitEventThreshold | ( | float | speed | ) |
Minimum approach speed in m/s required for enabled Shape3D hit events.
在文件 World3D.cpp 第 795 行定义.
引用了 isValid().
◆ setMaximumLinearSpeed()
| void eve::physics::World3D::setMaximumLinearSpeed | ( | float | speed | ) |
Sets the finite positive world-wide linear velocity clamp in m/s.
在文件 World3D.cpp 第 262 行定义.
引用了 isValid().
◆ setMoverSlopeLimit()
| void eve::physics::World3D::setMoverSlopeLimit | ( | float | degrees | ) |
Set maximum walkable slope in degrees, clamped to [0, 89.9].
在文件 World3D.cpp 第 1928 行定义.
引用了 degrees.
◆ setMoverUp()
| void eve::physics::World3D::setMoverUp | ( | float | x, |
| float | y, | ||
| float | z | ||
| ) |
Set the up direction used for grounded and slope classification.
在文件 World3D.cpp 第 1918 行定义.
◆ setQueryFilter()
| void eve::physics::World3D::setQueryFilter | ( | int | categoryBits, |
| int | maskBits | ||
| ) |
Set category/mask bits for subsequent ray, overlap, cast and mover queries.
在文件 World3D.cpp 第 970 行定义.
◆ setQueryIgnoredBodyId()
| void eve::physics::World3D::setQueryIgnoredBodyId | ( | int | bodyId | ) |
Ignores one stable Body3D ID in subsequent spatial queries; -1 disables.
在文件 World3D.cpp 第 980 行定义.
◆ setQueryIgnoredShapeId()
| void eve::physics::World3D::setQueryIgnoredShapeId | ( | int | shapeId | ) |
Ignores one stable Shape3D ID in subsequent spatial queries; -1 disables.
在文件 World3D.cpp 第 986 行定义.
◆ setRestitutionThreshold()
| void eve::physics::World3D::setRestitutionThreshold | ( | float | speed | ) |
Minimum impact speed that permits material restitution, in m/s.
在文件 World3D.cpp 第 229 行定义.
引用了 isValid().
◆ setShapePairCollisionEnabled()
| void eve::physics::World3D::setShapePairCollisionEnabled | ( | Shape3D * | shapeA, |
| Shape3D * | shapeB, | ||
| bool | enabled | ||
| ) |
Overrides collision for one live shape pair.
在文件 World3D.cpp 第 835 行定义.
引用了 enabled, eve::physics::Shape3D::getBody(), eve::physics::Shape3D::getId(), eve::physics::Body3D::getWorld(), eve::physics::Shape3D::isValid() , 以及 key.
◆ setWarmStartingEnabled()
| void eve::physics::World3D::setWarmStartingEnabled | ( | bool | enabled | ) |
Enables constraint warm starting for stable stacks and joints.
在文件 World3D.cpp 第 272 行定义.
◆ simulationObservation()
|
noexcept |
Snapshot of completed backend steps and logical simulation time.
在文件 World3D.cpp 第 761 行定义.
被这些函数引用 snapshot().
◆ simulationTick()
|
inlinenoexcept |
Current deterministic tick; save data should persist this value.
被这些函数引用 snapshot().
◆ snapshot()
| eve::Result< eve::SnapshotEnvelope > eve::physics::World3D::snapshot | ( | const eve::SnapshotHashProvider & | hashProvider | ) | const |
Captures a versioned, integrity-checked 3D world snapshot.
- 参数
-
hashProvider Injected digest provider used to seal the envelope.
- 返回
- A snapshot containing bodies plus shape and joint topology, including mesh and height-field sources.
- 备注
- Schema v2 rejects unknown fields. The provider is not retained; this call is owner-thread-only.
在文件 WorldSnapshot.cpp 第 929 行定义.
引用了 eve::Diagnostic::error(), eve::Result< T >::failure(), isValid(), eve::makeSnapshotEnvelope(), eve::PreconditionViolation, simulationObservation() , 以及 simulationTick().
◆ sphereCast()
| bool eve::physics::World3D::sphereCast | ( | float | x1, |
| float | y1, | ||
| float | z1, | ||
| float | x2, | ||
| float | y2, | ||
| float | z2, | ||
| float | radius, | ||
| uint64_t | maskBits, | ||
| int | ignoredBodyId, | ||
| CameraSphereHit3D * | out | ||
| ) | const |
Internal camera query: swept sphere against non-sensor shapes.
在文件 World3D.cpp 第 493 行定义.
引用了 body, callback, collector, context, filter, eve::physics::CameraSphereHit3D::fraction, eve::physics::CameraSphereHit3D::hit, isValid(), normal, point , 以及 radius.
◆ step()
| eve::Result< void > eve::physics::World3D::step | ( | const eve::SimulationStep & | step, |
| const SimulationSettings & | settings = {} |
||
| ) |
Advances the 3D domain with an injected deterministic step.
- 参数
-
step Tick and fixed duration supplied by SimulationClock or replay. settings Solver policy; subStepCount controls Box3D substeps.
- 返回
- Applied when the step completed, or a structured rejection/failure.
- 备注
- A rejected step leaves solver state and the current tick unchanged.
在文件 World3D.cpp 第 739 行定义.
引用了 clearContactEvents(), emitContactEvents(), eve::Diagnostic::error(), eve::Result< T >::failure(), isValid(), eve::PreconditionViolation, settings, shape, eve::SimulationStep::tick , 以及 valid.
◆ update()
| void eve::physics::World3D::update | ( | float | dt | ) |
Steps the simulation by dt seconds (default substep count).
在文件 World3D.cpp 第 726 行定义.
引用了 updateFull().
◆ updateFull()
| void eve::physics::World3D::updateFull | ( | float | dt, |
| int | subStepCount | ||
| ) |
Steps with an explicit substep count.
在文件 World3D.cpp 第 728 行定义.
引用了 EV_PROFILE_MODULE , 以及 step.
被这些函数引用 update().
◆ updateShapeTag()
| void eve::physics::World3D::updateShapeTag | ( | Shape3D * | shape | ) |
Internal: refreshes the tag snapshot for a live shape handle.
在文件 World3D.cpp 第 1069 行定义.
被这些函数引用 eve::physics::Shape3D::setTag().
◆ usedBackendFallback()
|
inlinenoexcept |
友元及相关函数文档
◆ action_adapter::ActionCollisionIgnoreState
|
friend |
◆ Body3D
◆ Joint3D
|
friend |
◆ Mechanism3D
|
friend |
被这些函数引用 newCrankSlider(), newRatchet() , 以及 newShaft().
◆ registerCameraObstructionWorld
|
friend |
Registers camera obstruction world.
在文件 PhysicsCapabilities.cpp 第 177 行定义.
◆ Shape3D
◆ TargetingLineOfSightAdapter
|
friend |
◆ WorldSnapshotAccess
|
friend |
该类的文档由以下文件生成:
- src/modules/physics/World3D.h
- src/modules/physics/World3D.cpp
- src/modules/physics/World3DJoints.cpp
- src/modules/physics/WorldSnapshot.cpp