载入中...
搜索中...
未找到
ClimbingAnchorGraph.h
浏览该文件的文档.
31enum class ClimbingAnchorKind : std::uint8_t { Ledge, CornerInner, CornerOuter, LadderRung, Pole, Beam, Bar };
90[[nodiscard]] eve::Result<void> validateClimbingAnchorGraphDefinition(const ClimbingAnchorGraphDefinition& graph);
95[[nodiscard]] EVENGINE_API_DOMAINS eve::Result<ClimbingAnchorGraphDefinition> decodeClimbingAnchorGraphDefinition(
106using ClimbingAnchorReservationId = eve::detail::StrongUint64<detail::ClimbingAnchorReservationIdTag>;
115 friend bool operator==(const ClimbingAnchorOccupant&, const ClimbingAnchorOccupant&) noexcept = default;
117 friend auto operator<=>(const ClimbingAnchorOccupant&, const ClimbingAnchorOccupant&) noexcept = default;
206 [[nodiscard]] static eve::Result<ClimbingAnchorGraphInstance> bind(ClimbingAnchorGraphDefinition graph,
228 [[nodiscard]] eve::Result<ClimbingAnchorRoute> planRoute(const ClimbingAnchorRouteRequest& request) const;
230 [[nodiscard]] eve::Result<ClimbingAnchorReservation> reserve(const ClimbingAnchorNodeRef& reference,
233 [[nodiscard]] eve::Result<void> validateReservation(const ClimbingAnchorReservation& reservation) const;
257 [[nodiscard]] eve::Result<ClimbingAnchorGraphReload> reload(ClimbingAnchorGraphDefinition graph);
291using ClimbingAnchorGraphHandleRef = eve::script::RuntimeHandleRef<ClimbingAnchorGraphHandleTag>;
Shared value types with no climbing runtime dependency.
Process-local, generation-qualified handles owned by the physics domain.
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.
Owning, renderer-independent dynamic values.
static constexpr RuntimeHandle invalid() noexcept
Returns the canonical invalid handle.
Definition RuntimeHandle.h:143
Runtime instance binding one immutable graph generation to one Physics body.
Definition ClimbingAnchorGraph.h:198
std::uint64_t generation() const noexcept
Current monotonically increasing topology generation.
Definition ClimbingAnchorGraph.h:259
physics::PhysicsBodyHandle body() const noexcept
Target Physics body handle; stale detection occurs during resolve.
Definition ClimbingAnchorGraph.h:261
std::size_t reservationCount() const noexcept
Number of live reservations in this graph instance.
Definition ClimbingAnchorGraph.h:263
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
Definition Climbing.cpp:19
ClimbingAnchorEdgeKind
Allowed authored transition between two explicit anchors.
Definition ClimbingAnchorGraph.h:34
eve::Result< ClimbingAnchorGraphDefinition > decodeClimbingAnchorGraphDefinition(const eve::Value &value)
Decodes and validates a complete owning graph candidate transactionally.
Definition ClimbingAnchorGraph.cpp:316
ClimbingAnchorKind
Authored semantic of one explicit climbing anchor.
Definition ClimbingAnchorGraph.h:31
@ LadderRung
ClimbingRouteOccupancyPolicy
Policy controlling whether deterministic route planning may cross fully occupied nodes.
Definition ClimbingAnchorGraph.h:138
eve::Result< void > validateClimbingAnchorGraphDefinition(const ClimbingAnchorGraphDefinition &graph)
Validates all graph identities, frames, slots, tags, and edge endpoints.
Definition ClimbingAnchorGraph.cpp:208
@ CornerInner
@ CornerOuter
eve::Result< eve::Value > encodeClimbingAnchorGraphDefinition(const ClimbingAnchorGraphDefinition &graph)
Encodes a validated graph to its canonical owning Value representation.
Definition ClimbingAnchorGraph.cpp:273
Directed authored transition in a climbing anchor graph.
Definition ClimbingAnchorGraph.h:63
eve::Value::Object extensionMetadata
Unknown schema fields retained across decode and encode.
Definition ClimbingAnchorGraph.h:70
std::string from
Definition ClimbingAnchorGraph.h:64
bool bidirectional
Definition ClimbingAnchorGraph.h:67
std::vector< std::string > requiredTags
Definition ClimbingAnchorGraph.h:68
ClimbingAnchorEdgeKind kind
Definition ClimbingAnchorGraph.h:66
Versioned graph asset; topology is authoritative while collision remains owned by Physics.
Definition ClimbingAnchorGraph.h:74
eve::Value::Object extensionMetadata
Unknown schema fields retained across decode and encode.
Definition ClimbingAnchorGraph.h:86
std::vector< ClimbingAnchorNodeDefinition > nodes
Definition ClimbingAnchorGraph.h:83
std::vector< ClimbingAnchorEdgeDefinition > edges
Definition ClimbingAnchorGraph.h:84
std::string sourceGeometryContentId
Definition ClimbingAnchorGraph.h:81
std::string buildSettingsHash
Definition ClimbingAnchorGraph.h:82
Handle domain for module-owned anchor graph runtime instances.
Definition ClimbingAnchorGraph.h:289
Atomic graph-reload outcome and owners whose old-generation reservations were invalidated.
Definition ClimbingAnchorGraph.h:186
std::vector< ClimbingAnchorOccupant > invalidatedOccupants
Definition ClimbingAnchorGraph.h:189
std::uint64_t newGeneration
Definition ClimbingAnchorGraph.h:188
std::uint64_t oldGeneration
Definition ClimbingAnchorGraph.h:187
One body-local anchor node with deterministic occupancy slots.
Definition ClimbingAnchorGraph.h:47
ClimbingAnchorKind kind
Definition ClimbingAnchorGraph.h:49
Vec3 feetSocket
Definition ClimbingAnchorGraph.h:55
Vec3 rightHandSocket
Definition ClimbingAnchorGraph.h:54
eve::Value::Object extensionMetadata
Unknown schema fields retained across decode and encode.
Definition ClimbingAnchorGraph.h:59
std::uint32_t occupancySlots
Definition ClimbingAnchorGraph.h:56
Vec3 localTangent
Definition ClimbingAnchorGraph.h:52
Vec3 localPosition
Definition ClimbingAnchorGraph.h:50
Vec3 leftHandSocket
Definition ClimbingAnchorGraph.h:53
std::vector< std::string > tags
Definition ClimbingAnchorGraph.h:57
Vec3 localNormal
Definition ClimbingAnchorGraph.h:51
Generation-qualified reference to an authored anchor node.
Definition ClimbingAnchorGraph.h:121
std::uint64_t graphGeneration
Definition ClimbingAnchorGraph.h:124
std::string graphId
Definition ClimbingAnchorGraph.h:122
Compound occupancy owner; execution ids are only unique inside one agent/runtime.
Definition ClimbingAnchorGraph.h:111
friend auto operator<=>(const ClimbingAnchorOccupant &, const ClimbingAnchorOccupant &) noexcept=default
Operator <=>.
ClimbingAnchorAgentId agentId
Definition ClimbingAnchorGraph.h:112
ClimbingExecutionId executionId
Definition ClimbingAnchorGraph.h:113
friend bool operator==(const ClimbingAnchorOccupant &, const ClimbingAnchorOccupant &) noexcept=default
Operator ==.
Owning reservation credential; release validates every field.
Definition ClimbingAnchorGraph.h:128
std::uint32_t slot
Definition ClimbingAnchorGraph.h:133
std::string nodeId
Definition ClimbingAnchorGraph.h:132
std::uint64_t claimGeneration
Definition ClimbingAnchorGraph.h:131
ClimbingAnchorOccupant occupant
Definition ClimbingAnchorGraph.h:134
std::uint64_t graphGeneration
Definition ClimbingAnchorGraph.h:130
Read-only route request over one current anchor-graph generation.
Definition ClimbingAnchorGraph.h:141
std::vector< ClimbingAnchorEdgeKind > allowedEdgeKinds
Empty means every authored edge kind is allowed.
Definition ClimbingAnchorGraph.h:148
std::uint32_t maxVisitedNodes
Deterministic safety bound; planning fails instead of returning a partial route.
Definition ClimbingAnchorGraph.h:152
ClimbingRouteOccupancyPolicy occupancyPolicy
Definition ClimbingAnchorGraph.h:144
std::vector< std::string > availableTags
Stable capability tags available to the route consumer; every edge requirement must be present.
Definition ClimbingAnchorGraph.h:150
ClimbingAnchorOccupant requester
Existing owner allowed to traverse its own current reservation; both ids must be zero or non-zero.
Definition ClimbingAnchorGraph.h:146
ClimbingAnchorNodeRef start
Definition ClimbingAnchorGraph.h:142
ClimbingAnchorNodeRef goal
Definition ClimbingAnchorGraph.h:143
One owning directed edge in a planned anchor route.
Definition ClimbingAnchorGraph.h:156
ClimbingAnchorEdgeKind kind
Definition ClimbingAnchorGraph.h:159
ClimbingAnchorNodeRef from
Definition ClimbingAnchorGraph.h:157
ClimbingAnchorNodeRef to
Definition ClimbingAnchorGraph.h:158
Shortest deterministic route pinned to one graph generation.
Definition ClimbingAnchorGraph.h:163
std::uint64_t graphGeneration
Definition ClimbingAnchorGraph.h:165
std::vector< ClimbingAnchorNodeRef > nodes
Definition ClimbingAnchorGraph.h:166
std::vector< ClimbingAnchorRouteStep > steps
Definition ClimbingAnchorGraph.h:167
World-space projection of a body-local anchor at one synchronous resolve point.
Definition ClimbingAnchorGraph.h:171
Vec3 position
Definition ClimbingAnchorGraph.h:175
physics::PhysicsBodyHandle body
Definition ClimbingAnchorGraph.h:174
ClimbingAnchorKind kind
Definition ClimbingAnchorGraph.h:173
ClimbingAnchorNodeRef reference
Definition ClimbingAnchorGraph.h:172
std::vector< std::string > tags
Definition ClimbingAnchorGraph.h:182
Vec3 feetSocket
Definition ClimbingAnchorGraph.h:180
Vec3 rightHandSocket
Definition ClimbingAnchorGraph.h:179
Vec3 leftHandSocket
Definition ClimbingAnchorGraph.h:178
Vec3 pointVelocity
Definition ClimbingAnchorGraph.h:181
Small owning world-space vector used at climbing module boundaries.
Definition ClimbingPrimitives.h:18
ClimbingAnchorAgentIdTag public API.
Definition ClimbingAnchorGraph.h:102
ClimbingAnchorReservationIdTag public API.
Definition ClimbingAnchorGraph.h:100