Runtime instance binding one immutable graph generation to one Physics body. 更多...
#include <ClimbingAnchorGraph.h>
Public 成员函数 | |
| eve::Result< ClimbingAnchorNodeRef > | nodeRef (std::string_view nodeId) const |
| Returns a current-generation reference for a stable node id. | |
| eve::Result< ResolvedClimbingAnchorNode > | resolveNode (physics::World3D &world, const ClimbingAnchorNodeRef &reference) const |
| Resolves a current node from body-local to world space after validating world/body generation. | |
| eve::Result< ResolvedClimbingAnchorNode > | resolveNodeKinematics (physics::World3D &world, const ClimbingAnchorNodeRef &reference) const |
| Resolves per-tick anchor transforms without copying cold tag metadata. | |
| eve::Result< std::vector< ClimbingAnchorEdgeDefinition > > | edgesFrom (const ClimbingAnchorNodeRef &reference) const |
| Returns deterministic outgoing edges for a current-generation node reference. | |
| eve::Result< ClimbingAnchorRoute > | planRoute (const ClimbingAnchorRouteRequest &request) const |
| Finds the shortest occupancy-aware route using stable edge-kind/node-id tie breaking. | |
| eve::Result< ClimbingAnchorReservation > | reserve (const ClimbingAnchorNodeRef &reference, ClimbingAnchorOccupant occupant) |
| Reserves the lowest free slot on a node for one non-zero agent/execution identity. | |
| eve::Result< void > | validateReservation (const ClimbingAnchorReservation &reservation) const |
| Validates that a reservation credential still names the exact live slot record. | |
| eve::Result< ClimbingAnchorReservation > | transferReservation (const ClimbingAnchorReservation &reservation) |
| Atomically transfers a live slot claim to a newly issued credential. | |
| eve::Result< ClimbingAnchorReservation > | restoreReservation (const ClimbingAnchorReservation &reservation) |
| Claims a snapshot reservation by transfer or exact-slot reacquisition. | |
| eve::Result< void > | release (const ClimbingAnchorReservation &reservation) |
| Releases exactly the live reservation described by the credential. | |
| eve::Result< std::uint32_t > | releaseOccupant (ClimbingAnchorOccupant occupant) |
| Releases all reservations owned by an agent/execution pair and returns the released count. | |
| eve::Result< ClimbingAnchorGraphReload > | reload (ClimbingAnchorGraphDefinition graph) |
| Atomically publishes a validated graph generation and invalidates old-generation reservations. | |
| std::uint64_t | generation () const noexcept |
| Current monotonically increasing topology generation. | |
| physics::PhysicsBodyHandle | body () const noexcept |
| Target Physics body handle; stale detection occurs during resolve. | |
| std::size_t | reservationCount () const noexcept |
| Number of live reservations in this graph instance. | |
静态 Public 成员函数 | |
| static eve::Result< ClimbingAnchorGraphInstance > | bind (ClimbingAnchorGraphDefinition graph, physics::World3D &world, physics::PhysicsBodyHandle body) |
| Validates and binds a graph snapshot to an existing Physics body. | |
详细描述
Runtime instance binding one immutable graph generation to one Physics body.
The instance owns topology and reservations, but stores only generation-checked Physics handles. It never retains World3D or Body3D pointers across calls.
在文件 ClimbingAnchorGraph.h 第 198 行定义.
成员函数说明
◆ bind()
|
static |
Validates and binds a graph snapshot to an existing Physics body.
- 参数
-
graph Owning definition candidate. world Borrowed synchronously for link validation only. body Generation-checked target body handle.
在文件 ClimbingAnchorGraph.cpp 第 391 行定义.
引用了 body(), eve::Diagnostic::error(), eve::Result< T >::failure(), graph, eve::RuntimeHandle< Tag >::isValid(), eve::StaleHandle, eve::Result< T >::success(), valid, eve::climbing::validateClimbingAnchorGraphDefinition() , 以及 world.
◆ body()
|
inlinenoexcept |
Target Physics body handle; stale detection occurs during resolve.
在文件 ClimbingAnchorGraph.h 第 261 行定义.
被这些函数引用 bind() , 以及 resolveNodeKinematics().
◆ edgesFrom()
| eve::Result< std::vector< ClimbingAnchorEdgeDefinition > > eve::climbing::ClimbingAnchorGraphInstance::edgesFrom | ( | const ClimbingAnchorNodeRef & | reference | ) | const |
Returns deterministic outgoing edges for a current-generation node reference.
在文件 ClimbingAnchorGraph.cpp 第 489 行定义.
引用了 eve::Conflict, edge, eve::climbing::ClimbingAnchorGraphDefinition::edges, eve::Diagnostic::error(), eve::climbing::ClimbingAnchorEdgeDefinition::from, eve::climbing::ClimbingAnchorGraphDefinition::id, eve::NotFound, reference, eve::StaleHandle , 以及 eve::climbing::ClimbingAnchorEdgeDefinition::to.
◆ generation()
|
inlinenoexcept |
Current monotonically increasing topology generation.
在文件 ClimbingAnchorGraph.h 第 259 行定义.
◆ nodeRef()
| eve::Result< ClimbingAnchorNodeRef > eve::climbing::ClimbingAnchorGraphInstance::nodeRef | ( | std::string_view | nodeId | ) | const |
Returns a current-generation reference for a stable node id.
在文件 ClimbingAnchorGraph.cpp 第 414 行定义.
引用了 eve::Diagnostic::error(), eve::Result< T >::failure(), eve::climbing::ClimbingAnchorGraphDefinition::id, nodeId, eve::NotFound , 以及 eve::Result< T >::success().
◆ planRoute()
| eve::Result< ClimbingAnchorRoute > eve::climbing::ClimbingAnchorGraphInstance::planRoute | ( | const ClimbingAnchorRouteRequest & | request | ) | const |
Finds the shortest occupancy-aware route using stable edge-kind/node-id tie breaking.
- 返回
- An owning current-generation route; NotFound means no permitted complete route exists. @thread Call on the graph owner thread; this method is read-only and invokes no callbacks.
在文件 ClimbingAnchorGraph.cpp 第 520 行定义.
引用了 eve::Conflict, eve::Diagnostic::error(), eve::Result< T >::failure(), from, eve::climbing::ClimbingAnchorGraphDefinition::id, eve::climbing::Ignore, eve::InvalidArgument, kind, node, nodeId, eve::NotFound, occupied, previous, request , 以及 eve::StaleHandle.
◆ release()
| eve::Result< void > eve::climbing::ClimbingAnchorGraphInstance::release | ( | const ClimbingAnchorReservation & | reservation | ) |
Releases exactly the live reservation described by the credential.
在文件 ClimbingAnchorGraph.cpp 第 688 行定义.
引用了 eve::Applied, eve::climbing::ClimbingAnchorReservation::id, eve::Status::success(), eve::Result< T >::success() , 以及 valid.
◆ releaseOccupant()
| eve::Result< std::uint32_t > eve::climbing::ClimbingAnchorGraphInstance::releaseOccupant | ( | ClimbingAnchorOccupant | occupant | ) |
Releases all reservations owned by an agent/execution pair and returns the released count.
在文件 ClimbingAnchorGraph.cpp 第 775 行定义.
引用了 eve::climbing::ClimbingAnchorOccupant::agentId, eve::Applied, code, count, eve::Diagnostic::error(), eve::climbing::ClimbingAnchorOccupant::executionId, eve::Result< T >::failure(), eve::InvalidArgument, eve::detail::StrongUint64< Tag >::isZero(), eve::NoOp, eve::Status::success() , 以及 eve::Result< T >::success().
◆ reload()
| eve::Result< ClimbingAnchorGraphReload > eve::climbing::ClimbingAnchorGraphInstance::reload | ( | ClimbingAnchorGraphDefinition | graph | ) |
Atomically publishes a validated graph generation and invalidates old-generation reservations.
- 返回
- Sorted unique agent/execution identities that the caller must safely cancel or migrate.
在文件 ClimbingAnchorGraph.cpp 第 793 行定义.
引用了 eve::Applied, eve::Diagnostic::error(), eve::Result< T >::failure(), graph, eve::climbing::ClimbingAnchorGraphReload::invalidatedOccupants, eve::climbing::ClimbingAnchorGraphReload::newGeneration, eve::climbing::ClimbingAnchorGraphReload::oldGeneration, eve::PreconditionViolation, eve::Status::success(), eve::Result< T >::success(), valid , 以及 eve::climbing::validateClimbingAnchorGraphDefinition().
◆ reservationCount()
|
inlinenoexcept |
Number of live reservations in this graph instance.
在文件 ClimbingAnchorGraph.h 第 263 行定义.
◆ reserve()
| eve::Result< ClimbingAnchorReservation > eve::climbing::ClimbingAnchorGraphInstance::reserve | ( | const ClimbingAnchorNodeRef & | reference, |
| ClimbingAnchorOccupant | occupant | ||
| ) |
Reserves the lowest free slot on a node for one non-zero agent/execution identity.
在文件 ClimbingAnchorGraph.cpp 第 641 行定义.
引用了 eve::climbing::ClimbingAnchorOccupant::agentId, eve::Applied, eve::Conflict, eve::Diagnostic::error(), eve::climbing::ClimbingAnchorOccupant::executionId, eve::Result< T >::failure(), id, eve::InvalidArgument, eve::detail::StrongUint64< Tag >::isZero(), node, eve::NotFound, occupied, eve::PreconditionViolation, reference, eve::StaleHandle, eve::Status::success() , 以及 eve::Result< T >::success().
◆ resolveNode()
| eve::Result< ResolvedClimbingAnchorNode > eve::climbing::ClimbingAnchorGraphInstance::resolveNode | ( | physics::World3D & | world, |
| const ClimbingAnchorNodeRef & | reference | ||
| ) | const |
Resolves a current node from body-local to world space after validating world/body generation.
在文件 ClimbingAnchorGraph.cpp 第 421 行定义.
引用了 EV_ASSERT, node, reference, resolveNodeKinematics() , 以及 world.
◆ resolveNodeKinematics()
| eve::Result< ResolvedClimbingAnchorNode > eve::climbing::ClimbingAnchorGraphInstance::resolveNodeKinematics | ( | physics::World3D & | world, |
| const ClimbingAnchorNodeRef & | reference | ||
| ) | const |
Resolves per-tick anchor transforms without copying cold tag metadata.
- 备注
- The returned tags are empty by contract; use resolveNode for authoring/transition validation.
在文件 ClimbingAnchorGraph.cpp 第 431 行定义.
引用了 eve::climbing::ResolvedClimbingAnchorNode::body, body(), eve::Conflict, eve::Diagnostic::error(), eve::Result< T >::failure(), eve::climbing::ResolvedClimbingAnchorNode::feetSocket, eve::climbing::ClimbingAnchorGraphDefinition::id, eve::climbing::ResolvedClimbingAnchorNode::kind, eve::climbing::ResolvedClimbingAnchorNode::leftHandSocket, node, eve::climbing::ResolvedClimbingAnchorNode::normal, normal, eve::NotFound, eve::climbing::ResolvedClimbingAnchorNode::pointVelocity, position, eve::climbing::ResolvedClimbingAnchorNode::position, reference, eve::climbing::ResolvedClimbingAnchorNode::reference, eve::climbing::ResolvedClimbingAnchorNode::rightHandSocket, eve::StaleHandle, eve::Result< T >::success(), eve::climbing::ResolvedClimbingAnchorNode::tangent, tangent , 以及 world.
被这些函数引用 resolveNode().
◆ restoreReservation()
| eve::Result< ClimbingAnchorReservation > eve::climbing::ClimbingAnchorGraphInstance::restoreReservation | ( | const ClimbingAnchorReservation & | reservation | ) |
Claims a snapshot reservation by transfer or exact-slot reacquisition.
A still-live matching credential is transferred and invalidated. If its prior owner already released it, the authored slot is reacquired only when still free. A conflicting live claim is never displaced.
在文件 ClimbingAnchorGraph.cpp 第 731 行定义.
引用了 eve::climbing::ClimbingAnchorOccupant::agentId, eve::Applied, eve::climbing::ClimbingAnchorReservation::claimGeneration, eve::Conflict, eve::Diagnostic::error(), eve::climbing::ClimbingAnchorOccupant::executionId, eve::Result< T >::failure(), eve::climbing::ClimbingAnchorReservation::graphGeneration, id, eve::climbing::ClimbingAnchorReservation::id, eve::InvalidArgument, eve::detail::StrongUint64< Tag >::isZero(), node, eve::climbing::ClimbingAnchorReservation::nodeId, eve::NotFound, eve::climbing::ClimbingAnchorReservation::occupant, eve::PreconditionViolation, eve::climbing::ClimbingAnchorReservation::slot, eve::StaleHandle, eve::Status::success(), eve::Result< T >::success() , 以及 valid.
◆ transferReservation()
| eve::Result< ClimbingAnchorReservation > eve::climbing::ClimbingAnchorGraphInstance::transferReservation | ( | const ClimbingAnchorReservation & | reservation | ) |
Atomically transfers a live slot claim to a newly issued credential.
- 返回
- A credential with an incremented claim generation; the input credential becomes stale.
在文件 ClimbingAnchorGraph.cpp 第 715 行定义.
引用了 eve::Applied, eve::climbing::ClimbingAnchorReservation::claimGeneration, eve::Diagnostic::error(), eve::Result< T >::failure(), found, eve::climbing::ClimbingAnchorReservation::id, eve::PreconditionViolation, eve::Status::success(), eve::Result< T >::success() , 以及 valid.
◆ validateReservation()
| eve::Result< void > eve::climbing::ClimbingAnchorGraphInstance::validateReservation | ( | const ClimbingAnchorReservation & | reservation | ) | const |
Validates that a reservation credential still names the exact live slot record.
在文件 ClimbingAnchorGraph.cpp 第 695 行定义.
引用了 eve::climbing::ClimbingAnchorReservation::claimGeneration, eve::Conflict, eve::Diagnostic::error(), eve::Result< T >::failure(), found, eve::climbing::ClimbingAnchorReservation::graphGeneration, eve::climbing::ClimbingAnchorReservation::id, eve::climbing::ClimbingAnchorReservation::nodeId, eve::NotFound, eve::climbing::ClimbingAnchorReservation::occupant, eve::climbing::ClimbingAnchorReservation::slot, eve::StaleHandle , 以及 eve::Result< T >::success().
该类的文档由以下文件生成:
- src/modules/climbing/ClimbingAnchorGraph.h
- src/modules/climbing/ClimbingAnchorGraph.cpp