载入中...
搜索中...
未找到
Climbing.h
浏览该文件的文档.
82enum class ClimbingProbeRecipe : std::uint8_t { Automatic, Obstacle, Ledge, Wall, Ground, AnchorGraph };
85enum class ClimbingTrajectoryKind : std::uint8_t { Automatic, BallisticArc, SurfaceFollow, AnchorToAnchor };
115enum class ClimbingContactTarget : std::uint8_t { LeftHand, RightHand, LeftFoot, RightFoot, Pelvis };
354 [[nodiscard]] const ClimbingCandidate& operator[](std::size_t index) const noexcept { return values_[index]; }
380using ClimbingPredictionSequence = eve::detail::StrongUint64<detail::ClimbingPredictionSequenceTag>;
396 friend bool operator==(const ClimbingCandidateKey&, const ClimbingCandidateKey&) noexcept = default;
400[[nodiscard]] EVENGINE_API_DOMAINS ClimbingCandidateKey makeClimbingCandidateKey(const ClimbingCandidate& candidate,
454[[nodiscard]] EVENGINE_API_DOMAINS eve::Result<ClimbingPredictionRequest> decodeClimbingPredictionRequest(
460[[nodiscard]] EVENGINE_API_DOMAINS eve::Result<ClimbingPredictionDecision> decodeClimbingPredictionDecision(
710 [[nodiscard]] eve::Result<ClimbingCandidate> tryBegin(physics::World3D& world, const ClimbingPose& pose,
751 [[nodiscard]] eve::Result<ClimbingAdvance> advance(physics::World3D& world, eve::SimulationStep step);
753 [[nodiscard]] eve::Result<ClimbingAdvance> advance(physics::World3D& world, eve::SimulationStep step,
809 [[nodiscard]] std::uint64_t definitionGeneration() const noexcept { return definitionGeneration_; }
853 [[nodiscard]] eve::Result<PreparedBegin> prepareBegin(physics::World3D& world, const ClimbingPose& pose,
860 [[nodiscard]] eve::Result<void> publishProfile(ClimbingProfile profile, bool allowActiveExecution);
861 [[nodiscard]] eve::Result<void> requireEventCapacity(std::size_t count, eve::SimulationTick tick) const;
897 [[nodiscard]] static eve::script::Borrowed<ClimbingRuntime> resolve(ClimbingRuntimeHandleRef reference) noexcept;
909 [[nodiscard]] static eve::Result<void> releaseAnchorGraph(ClimbingAnchorGraphHandleRef reference);
Deterministic authoring primitives, baker, and renderer-neutral editor overlay for climbing anchors.
Versioned body-local climbing topology, dynamic resolution, and deterministic occupancy.
Shared value types with no climbing runtime dependency.
Fixed-capacity, allocation-free performance telemetry for climbing workloads.
Owning, generation-qualified results for cross-module 3D physics queries.
Move-only, checked operation results for the common layer.
Explicit Value/Owned/Borrowed semantics at the Squirrel boundary.
Internal storage primitive for domain-owned unsigned values.
Common time values and an injectable deterministic simulation clock.
Owning, renderer-independent dynamic values.
static constexpr Duration fromNanoseconds(std::int64_t nanoseconds) noexcept
Construct an exact duration from nanoseconds.
Definition Time.h:55
static constexpr RuntimeHandle invalid() noexcept
Returns the canonical invalid handle.
Definition RuntimeHandle.h:143
Fixed-capacity owning candidate set used by the production probe hot path.
Definition Climbing.h:329
void considerWithActionId(ClimbingCandidate candidate, std::string_view actionId)
Consider a candidate while reusing slot-owned action-id storage on the production probe path.
Definition Climbing.cpp:29
void consider(ClimbingCandidate candidate)
Consider one candidate and retain it only when it belongs to the best fixed-capacity set.
Definition Climbing.cpp:23
const ClimbingCandidate * end() const noexcept
Returns the sentinel following the last candidate for synchronous read-only iteration.
Definition Climbing.h:366
void swap(ClimbingCandidateSet &other) noexcept
Exchange complete owning slot storage without allocating.
Definition Climbing.cpp:60
ClimbingCandidate takeFront() noexcept
Move the best candidate out of a non-empty set.
Definition Climbing.h:353
const ClimbingCandidate & operator[](std::size_t index) const noexcept
Definition Climbing.h:354
void sortAndLimit(std::size_t limit)
Sort by canonical deterministic selection key and clamp to a validated limit.
Definition Climbing.cpp:55
const ClimbingCandidate * begin() const noexcept
Returns the first candidate for synchronous read-only iteration.
Definition Climbing.h:360
std::span< const ClimbingCandidate > values() const noexcept
Definition Climbing.h:367
static constexpr std::size_t Capacity
Definition Climbing.h:331
void clear() noexcept
Remove all candidates while retaining each slot's owned string capacity.
Definition Climbing.h:334
Owner-thread climbing planner and executor for one character.
Definition Climbing.h:653
ClimbingRuntime & operator=(const ClimbingRuntime &)=delete
ClimbingRuntimeCounters counters() const noexcept
Return allocation-free counters for the latest probe or active execution workload.
Definition Climbing.h:777
const ClimbingTelemetryBuffer & telemetry() const noexcept
Return the runtime-owned fixed profiler ring.
Definition Climbing.h:779
ClimbingRuntime(const ClimbingRuntime &)=delete
std::uint64_t definitionGeneration() const noexcept
Current monotonically increasing profile/action definition generation.
Definition Climbing.h:809
ClimbingRuntime(ClimbingRuntime &&) noexcept=default
Climbing runtime.
ClimbingExecutionId executionId() const noexcept
Current execution identity, or zero when no execution is active or retained.
Definition Climbing.h:805
PrePhysics selection transaction joining buffered input to one authoritative execution.
Definition ClimbingInput.h:95
Selection transaction that atomically joins external stamina reservation to runtime publication.
Definition ClimbingServices.h:107
Runtime-owned fixed ring of performance samples.
Definition ClimbingTelemetry.h:82
Script-facing factory and owner for independent climbing runtimes.
Definition Climbing.h:891
Module_REG(Climbing)
static constexpr StrongUint64 zero() noexcept
Returns the zero value for this strong type.
Definition StrongUint64.h:24
Box3D rigid-body world. Script coordinates are meters (Box3D native), unlike 2D World which uses pixe...
Definition World3D.h:63
Non-owning C++ observation with no implicit lifetime extension.
Definition RuntimeRegistry.h:42
Slot/generation registry whose objects are exclusively unique-owned.
Definition RuntimeRegistry.h:359
Definition Animation.cpp:58
Definition Climbing.cpp:19
ClimbingObstacleCollision
Per-call capsule collision policy; never changes persistent world collision state.
Definition Climbing.h:525
@ IgnoreTraversedShape
ClimbingAnchorEdgeKind
Allowed authored transition between two explicit anchors.
Definition ClimbingAnchorGraph.h:34
ClimbingTrajectoryKind
Semantic trajectory topology, independent of a particular animation clip.
Definition Climbing.h:85
@ BallisticArc
@ AnchorToAnchor
@ SurfaceFollow
EVENGINE_API_DOMAINS eve::Result< eve::Value > encodeClimbingPredictionRequest(const ClimbingPredictionRequest &request)
Encodes a validated prediction request to its canonical owning Value representation.
Definition ClimbingPrediction.cpp:255
ClimbingLandingPolicy
Policy applied when authored motion reaches its landing phase.
Definition Climbing.h:88
@ PreserveMomentum
@ MatchGround
ClimbingPhase
Execution lifecycle visible to gameplay and animation adapters.
Definition Climbing.h:470
@ Completed
@ Recovering
@ Swinging
@ Aligning
@ Cancelled
@ Balanced
@ Launching
@ Dropping
@ Requested
ClimbingMovementMode
Movement mode used by action source-mode hard validation.
Definition Climbing.h:67
EVENGINE_API_DOMAINS eve::Result< eve::Value > encodeClimbingPredictionDecision(const ClimbingPredictionDecision &decision)
Encodes a validated authoritative decision to its canonical owning Value representation.
Definition ClimbingPrediction.cpp:289
ClimbingPredictionReason
Stable reason for a non-accepted prediction decision.
Definition Climbing.h:421
@ RuntimeBusy
@ CandidateMismatch
@ TickTooFarAhead
@ InvalidRequest
@ NoCandidate
ClimbingPredictionDisposition
Named server-authoritative outcome of one prediction request.
Definition Climbing.h:418
@ MotionBlocked
@ DropRequested
@ AnchorStale
@ PlayerRequest
@ DefinitionReloaded
@ WarpBudgetExceeded
ClimbingCommandRequirement
Input edge required by an action definition; Any keeps legacy automatic selection.
Definition Climbing.h:79
EVENGINE_API_DOMAINS eve::Result< ClimbingPredictionDecision > decodeClimbingPredictionDecision(const eve::Value &value)
Decodes a complete authoritative decision transactionally.
Definition ClimbingPrediction.cpp:309
ClimbingDebugCapture
Runtime policy controlling optional owning diagnostic capture.
Definition Climbing.h:600
ClimbingInputMode
Input interpretation used by candidate assist and deterministic selection policies.
Definition Climbing.h:97
@ Precision
ClimbingNotifyKind
Stable animation notify semantics accepted from a validated climbing clip.
Definition Climbing.h:503
@ BranchClose
@ CollisionCompact
@ BranchOpen
ClimbingRootMotionPolicy
Whether animation deltas still require the runtime's procedural target warp.
Definition Climbing.h:523
@ PreserveSuppliedDelta
@ ApplyActionWarp
ClimbingStaminaPolicy
Optional stamina integration policy; climbing never owns stamina state.
Definition Climbing.h:94
@ RequireProvider
@ UseWhenPresent
ClimbingEventKind
Stable semantic event emitted by the authoritative climbing lifecycle.
Definition Climbing.h:488
@ AnchorReached
@ AnchorTransitionStarted
@ ContactRightHand
@ ContactLeftHand
ClimbingTerminalVelocityPolicy
Policy applied to vertical velocity when an action terminates.
Definition Climbing.h:91
@ ClampDownward
ClimbingActionKind
Data-driven action family; stable action identity remains the definition id.
Definition Climbing.h:46
@ LedgeGrab
@ ClimbDown
@ LadderMount
@ PoleSwing
@ LadderDismount
@ LadderClimb
@ CornerInner
@ BeamBalance
@ CornerOuter
@ LedgeJump
ClimbingSourceMode
Bit mask of movement modes from which an action may start.
Definition Climbing.h:70
EVENGINE_API_DOMAINS eve::Result< ClimbingPredictionRequest > decodeClimbingPredictionRequest(const eve::Value &value)
Decodes a complete request and rejects unknown schema versions transactionally.
Definition ClimbingPrediction.cpp:269
EVENGINE_API_DOMAINS ClimbingCandidateKey makeClimbingCandidateKey(const ClimbingCandidate &candidate, std::uint32_t sortedRank) noexcept
Creates the opaque key for one candidate at its deterministic sorted rank.
Definition ClimbingPrediction.cpp:226
@ AnchorGraph
Definition Container.h:602
Definition of one geometry-compatible climbing action.
Definition Climbing.h:160
float landingForward
Definition Climbing.h:171
ClimbingCommandRequirement requiredCommand
Definition Climbing.h:191
ClimbingTrajectoryKind trajectory
Definition Climbing.h:201
ClimbingSourceMode sourceModes
Definition Climbing.h:190
std::vector< ClimbingContactConstraint > contactConstraints
Definition Climbing.h:204
float cancelWindowStart
Definition Climbing.h:178
float hangFeetBelowLedge
Definition Climbing.h:176
float minSurfaceNormalY
Definition Climbing.h:197
float facingWarpBudgetRadians
Definition Climbing.h:186
std::vector< ClimbingBranchWindow > branchWindows
Definition Climbing.h:203
ClimbingAnimationBinding animation
Definition Climbing.h:202
std::vector< std::string > requiredSupportTags
Definition Climbing.h:200
float cancelWindowEnd
Definition Climbing.h:179
eve::Value::Object extensionMetadata
Unknown schema fields retained across decode and encode.
Definition Climbing.h:214
ClimbingTerminalVelocityPolicy terminalVelocityPolicy
Definition Climbing.h:206
float verticalWarpBudget
Definition Climbing.h:185
std::vector< std::string > tags
Definition Climbing.h:189
float rootMotionScaleMax
Definition Climbing.h:181
float maxYawWarpRadiansPerTick
Definition Climbing.h:183
std::vector< std::string > requiredConditionTags
Definition Climbing.h:209
std::vector< std::string > comboTags
Definition Climbing.h:207
std::int32_t repetitionPenalty
Definition Climbing.h:208
float maxSlopeRadians
Definition Climbing.h:198
std::vector< std::string > requiredNotifies
Definition Climbing.h:188
std::vector< std::string > eventMetadata
Definition Climbing.h:212
std::vector< ClimbingWarpWindow > warpWindows
Definition Climbing.h:187
ClimbingProbeRecipe probeRecipe
Definition Climbing.h:192
float horizontalWarpBudget
Definition Climbing.h:184
float rootMotionScaleMin
Definition Climbing.h:180
float maxTranslationWarpPerTick
Definition Climbing.h:182
float hangBodyOffset
Definition Climbing.h:175
static constexpr std::string_view SchemaId
Schema id emitted by the canonical action codec.
Definition Climbing.h:162
ClimbingLandingPolicy landingPolicy
Definition Climbing.h:205
float rightFootWeight
Right-foot constraint weight resolved from the immutable action contact windows.
Definition Climbing.h:590
float leftFootWeight
Left-foot constraint weight resolved from the immutable action contact windows.
Definition Climbing.h:588
std::string animationGraphNodeId
Stable external animation-graph node id; the game adapter resolves it to its graph handle.
Definition Climbing.h:584
std::string cameraCue
Action-local camera cue resolved from the immutable execution definition.
Definition Climbing.h:580
std::string cameraCueProfile
Owning presentation hint; consumers may ignore it without affecting simulation.
Definition Climbing.h:578
bool animationMirrored
Whether the selected action requests the mirrored presentation variant.
Definition Climbing.h:586
bool compactCollisionActive
Definition Climbing.h:570
bool hasTerminalVelocity
Whether terminalVelocity must replace velocity derived from this tick's displacement.
Definition Climbing.h:596
std::string branchComboTag
Active authored combo tag; empty for notify-only or terminal branch availability.
Definition Climbing.h:573
bool compactCollisionRequested
Definition Climbing.h:569
std::string animationClipId
Stable animation clip id resolved from the immutable action definition.
Definition Climbing.h:582
Vec3 terminalVelocity
Authoritative velocity policy output for the receiving locomotion owner.
Definition Climbing.h:594
float pelvisWeight
Pelvis constraint weight resolved from the immutable action contact windows.
Definition Climbing.h:592
Versioned graph asset; topology is authoritative while collision remains owned by Physics.
Definition ClimbingAnchorGraph.h:74
Generation-qualified reference to an authored anchor node.
Definition ClimbingAnchorGraph.h:121
Owning reservation credential; release validates every field.
Definition ClimbingAnchorGraph.h:128
Stable animation asset and graph binding metadata.
Definition Climbing.h:100
std::string graphNodeId
Definition Climbing.h:102
Normalized branch interval advertising one stable combo tag.
Definition Climbing.h:108
Quantized selection cost and hard-decision evidence for one action definition.
Definition Climbing.h:613
std::int64_t heightCost
Definition Climbing.h:617
std::int64_t distanceCost
Definition Climbing.h:618
Opaque deterministic identity of one sorted candidate; contains no client-authored position.
Definition Climbing.h:389
std::uint64_t definitionGeneration
Definition Climbing.h:392
friend bool operator==(const ClimbingCandidateKey &, const ClimbingCandidateKey &) noexcept=default
Operator ==.
Owning, replayable climbing candidate; contains no borrowed query pointers.
Definition Climbing.h:290
ClimbingProbeRecipe probeRecipe
Definition Climbing.h:317
std::uint64_t definitionGeneration
Definition generation used to produce this candidate.
Definition Climbing.h:293
physics::PhysicsBodyHandle obstacleBody
Definition Climbing.h:295
physics::PhysicsShapeHandle obstacleShape
Definition Climbing.h:296
Normalized contact interval and maximum constraint weight.
Definition Climbing.h:118
ClimbingContactTarget target
Definition Climbing.h:119
Geometry-query evidence suitable for an engine debug-draw adapter.
Definition Climbing.h:603
Bounded owning debug snapshot, independent of Physics query caches.
Definition Climbing.h:633
std::vector< ClimbingDebugQuery > queries
Definition Climbing.h:642
Vec3 accumulatedWarpResidual
Definition Climbing.h:636
std::uint32_t broadPhaseHitCount
Definition Climbing.h:638
std::uint32_t broadPhaseQueryCount
Definition Climbing.h:637
ClimbingExecutionId executionId
Definition Climbing.h:641
std::vector< ClimbingMotionEvidence > motion
Definition Climbing.h:644
std::vector< ClimbingCandidateEvidence > evidence
Definition Climbing.h:643
std::vector< ClimbingCandidate > candidates
Definition Climbing.h:635
Owning event record; dispatch to scripts only after the simulation phase.
Definition Climbing.h:513
std::vector< std::string > metadata
Owning immutable action metadata copied when the event is enqueued.
Definition Climbing.h:519
Small owning projection of profile fields consumed by ordinary ground/air locomotion.
Definition Climbing.h:261
std::uint64_t coyoteTicks
Definition Climbing.h:267
float groundAcceleration
Definition Climbing.h:262
physics::QueryFilter3D queryFilter
Definition Climbing.h:268
One planned-versus-actual capsule sample from an authoritative execution tick.
Definition Climbing.h:623
Per-tick authored animation motion supplied before climbing warp and collision.
Definition Climbing.h:540
ClimbingObstacleCollision obstacleCollision
Definition Climbing.h:549
std::vector< ClimbingNotifyKind > notifies
Owning semantic notifies crossed by the animation player during this exact simulation step.
Definition Climbing.h:547
ClimbingRootMotionPolicy rootMotionPolicy
Definition Climbing.h:548
Input pose used for one deterministic candidate probe.
Definition Climbing.h:275
Vec3 lookIntent
Camera/look intent; Precision mode prioritizes this direction.
Definition Climbing.h:285
Vec3 moveIntent
Camera-relative movement intent; Flow mode prioritizes this direction.
Definition Climbing.h:283
Server-to-client decision carrying the authoritative runtime snapshot for reconciliation.
Definition Climbing.h:431
ClimbingPredictionSequence sequence
Definition Climbing.h:437
eve::Value authoritativeSnapshot
Canonical server runtime state after the decision, used for rollback/replay reconciliation.
Definition Climbing.h:445
eve::SimulationTick serverTick
Definition Climbing.h:439
ClimbingPredictionReason reason
Definition Climbing.h:441
eve::SimulationTick clientTick
Definition Climbing.h:438
eve::Value::Object extensionMetadata
Unknown schema fields retained across decode and encode.
Definition Climbing.h:447
ClimbingPredictionDisposition disposition
Definition Climbing.h:440
ClimbingCandidateKey authoritativeCandidate
Server-selected key; fingerprint zero means no authoritative candidate was available.
Definition Climbing.h:443
static constexpr std::string_view SchemaId
Canonical cross-process schema id.
Definition Climbing.h:433
Client-to-server request containing selection identity only, never a world-space target.
Definition Climbing.h:404
ClimbingCandidateKey candidate
Definition Climbing.h:412
eve::Value::Object extensionMetadata
Unknown schema fields retained across decode and encode.
Definition Climbing.h:414
eve::SimulationTick clientTick
Definition Climbing.h:411
ClimbingPredictionSequence sequence
Definition Climbing.h:410
static constexpr std::string_view SchemaId
Canonical cross-process schema id.
Definition Climbing.h:406
Runtime profile controlling capsule geometry and probe limits.
Definition Climbing.h:218
static constexpr std::string_view SchemaId
Schema id emitted by the canonical profile codec.
Definition Climbing.h:220
float groundAcceleration
Definition Climbing.h:238
std::vector< std::string > deniedActionTags
Definition Climbing.h:250
std::uint32_t probeSectors
Definition Climbing.h:243
eve::Value::Object extensionMetadata
Unknown schema fields retained across decode and encode.
Definition Climbing.h:257
float maxPelvisDeviation
Definition Climbing.h:237
std::vector< std::string > defaultActionIds
Definition Climbing.h:248
physics::QueryFilter3D queryFilter
Definition Climbing.h:254
ClimbingScoreWeights scoreWeights
Definition Climbing.h:246
std::uint64_t inputBufferTicks
Definition Climbing.h:234
float maxPlatformSpeed
Definition Climbing.h:232
float autoAssistStrength
Definition Climbing.h:245
std::uint64_t coyoteTicks
Definition Climbing.h:235
std::uint32_t pathValidationSegments
Definition Climbing.h:236
float maxObstacleHeight
Definition Climbing.h:229
float maxProbeDistance
Definition Climbing.h:228
std::string staminaAdapter
Definition Climbing.h:252
std::vector< ClimbingActionDefinition > actions
Definition Climbing.h:255
float maxTotalWarpBudget
Definition Climbing.h:247
std::uint32_t maxCandidates
Definition Climbing.h:244
float dropInitialSpeed
Definition Climbing.h:233
std::string cameraCueProfile
Definition Climbing.h:253
std::vector< std::string > allowedActionTags
Definition Climbing.h:249
float maxWarpResidual
Definition Climbing.h:231
float compactCapsuleHeight
Definition Climbing.h:226
ClimbingStaminaPolicy staminaPolicy
Definition Climbing.h:251
Allocation-free counters produced by the latest runtime workload.
Definition ClimbingTelemetry.h:44
Handle domain for module-owned climbing runtimes.
Definition Climbing.h:886
Quantized selection-cost weights stored with a profile.
Definition Climbing.h:126
std::int32_t approachSpeed
Definition Climbing.h:128
std::int32_t intentMismatch
Definition Climbing.h:133
std::int32_t warpTranslation
Definition Climbing.h:131
Owning evidence returned by one committed climbing selection transaction.
Definition Climbing.h:464
Normalized action interval selecting which motion-warp channels may correct authored motion.
Definition Climbing.h:151
Small owning world-space vector used at climbing module boundaries.
Definition ClimbingPrimitives.h:18
Query filter applied atomically for one owning query operation.
Definition OwnedQuery3D.h:22