载入中...
搜索中...
未找到
PrimitiveScene.cpp
浏览该文件的文档.
13bool finite(glm::vec3 value) { return std::isfinite(value.x) && std::isfinite(value.y) && std::isfinite(value.z); }
33 return volume * volume > minimumRelativeVolumeSquared * glm::dot(a, a) * glm::dot(b, b) * glm::dot(c, c);
51 eve::DiagnosticCode::InvalidArgument, "invalid primitive dash pattern", "primitive", {}, "graphics"));
61 eve::DiagnosticCode::InvalidArgument, "primitive dash period overflow", "primitive", {}, "graphics"));
67 eve::Diagnostic::error(eve::DiagnosticCode::InvalidArgument, error.what(), "primitive", {}, "graphics"));
86 return finite(geometry.center) && nonZero(geometry.halfAxes[0]) && nonZero(geometry.halfAxes[1]) &&
151 eve::DiagnosticCode::Failed, "primitive scene slot capacity exceeded", "primitive", {}, "graphics"));
157 return eve::Result<PrimitiveHandle>::success(PrimitiveHandle(owner_, index, slots_[index].generation));
191eve::Result<std::size_t> PrimitiveScene::updateMany(std::span<const PrimitiveBatchUpdate> updates) {
295 eve::DiagnosticCode::Failed, "primitive scene command budget exceeded", "primitive", {}, "graphics"));
317 if (!handle.isValid() || handle.owner() != owner_ || handle.index() >= slots_.size()) return false;
static Diagnostic error(DiagnosticCode code, std::string message, std::string path={}, DiagnosticDetails details={}, std::string source={})
Construct an error diagnostic with the standard error severity.
Definition Diagnostic.h:125
static Result failure(Status status)
Construct a failed result from a structured status.
Definition Result.h:175
Instance-qualified persistent primitive handle.
Definition PrimitiveScene.h:21
LocalHandle::index_type index_type
Definition PrimitiveScene.h:24
static constexpr index_type invalidIndex
Definition PrimitiveScene.h:27
static constexpr std::optional< generation_type > nextGeneration(generation_type current) noexcept
Next generation.
Definition PrimitiveScene.h:44
Frame-local scene recorder for 3D line primitives.
Definition PrimitiveDrawList.h:114
void drawArrow(glm::vec3 from, glm::vec3 to, float headLength, float headRadius, const ScenePrimitivePaint &paint)
Records a shaft and four-sided arrow head.
Definition PrimitiveDrawList.cpp:800
void drawSphere(glm::vec3 center, float radius, const ScenePrimitivePaint &paint, std::uint32_t segments=32)
Records three orthogonal great circles.
Definition PrimitiveDrawList.cpp:691
void drawCapsule(glm::vec3 a, glm::vec3 b, float radius, const ScenePrimitivePaint &paint, std::uint32_t segments=32)
Draws capsule.
Definition PrimitiveDrawList.cpp:743
void drawFrustum(const std::array< glm::vec3, 8 > &corners, const ScenePrimitivePaint &paint)
Draws frustum.
Definition PrimitiveDrawList.cpp:815
void drawObb(glm::vec3 center, const std::array< glm::vec3, 3 > &halfAxes, const ScenePrimitivePaint &paint)
Draws obb.
Definition PrimitiveDrawList.cpp:663
void drawGrid(glm::vec3 origin, glm::vec3 axisU, glm::vec3 axisV, std::uint32_t cellsU, std::uint32_t cellsV, const ScenePrimitivePaint &paint)
Records a planar grid spanned by two caller-provided axes.
Definition PrimitiveDrawList.cpp:673
void drawAabb(glm::vec3 minimum, glm::vec3 maximum, const ScenePrimitivePaint &paint)
Records the twelve edges of an axis-aligned box.
Definition PrimitiveDrawList.cpp:635
void drawPolyline(std::span< const glm::vec3 > points, bool closed, const ScenePrimitivePaint &paint)
Draws polyline.
Definition PrimitiveDrawList.cpp:541
void drawArc(glm::vec3 center, glm::vec3 normal, glm::vec3 zeroDirection, float radius, float startRadians, float sweepRadians, const ScenePrimitivePaint &paint, std::uint32_t segments=32)
Draws arc.
Definition PrimitiveDrawList.cpp:612
void drawCylinder(glm::vec3 a, glm::vec3 b, float radius, const ScenePrimitivePaint &paint, std::uint32_t segments=32)
Records endpoint circles and four side lines of a cylinder.
Definition PrimitiveDrawList.cpp:752
void drawDisk(glm::vec3 center, glm::vec3 normal, float radius, const ScenePrimitivePaint &paint, std::uint32_t segments=32)
Draws disk.
Definition PrimitiveDrawList.cpp:600
void drawCone(glm::vec3 apex, glm::vec3 axis, float height, float radius, const ScenePrimitivePaint &paint, std::uint32_t segments=32)
Records the base circle and four side lines of a cone.
Definition PrimitiveDrawList.cpp:776
void clear()
Invalidates all live handles while retaining slot capacity.
Definition PrimitiveScene.cpp:218
void render(PrimitiveSceneCanvas3D &canvas) const
Compatibility-only wrapper over tryRender; throws on budget failure.
Definition PrimitiveScene.cpp:236
eve::Result< PrimitiveRemoveStatus > remove(PrimitiveHandle handle)
Removes .
Definition PrimitiveScene.cpp:172
eve::Result< PrimitiveHandle > add(PrimitiveDescriptor3D descriptor)
Adds .
Definition PrimitiveScene.cpp:140
eve::Result< std::size_t > updateMany(std::span< const PrimitiveBatchUpdate > updates)
Atomically replaces several live descriptors after validating every handle.
Definition PrimitiveScene.cpp:191
eve::Result< PrimitiveUpdateStatus > update(PrimitiveHandle handle, PrimitiveDescriptor3D descriptor)
Updates .
Definition PrimitiveScene.cpp:160
eve::Result< void > tryRender(PrimitiveSceneCanvas3D &canvas) const
Projects visible descriptors in stable slot order using per-slot CPU caches. Successful updates inval...
Definition PrimitiveScene.cpp:241
const PrimitiveDescriptor3D * tryGet(PrimitiveHandle handle) const noexcept
Resolves a live primitive handle.
Definition PrimitiveScene.cpp:211
bool isStale(PrimitiveHandle handle) const noexcept
Returns true when a handle is invalid, removed, foreign, or generation-stale.
Definition PrimitiveScene.cpp:216
卡牌游戏 UI 工具模块:工厂 + 脚本绑定入口。 功能参考 ycarowr/UiCard:扇形手牌布局、抽牌/洗牌、悬浮放大、拖拽到落牌区、 敌方手牌(背面/偷看)、费用不足置灰,以及可实时调节的布局...
Definition Animation.h:25
WidgetDesc row(std::vector< WidgetDesc > children, std::string id)
Horizontal elastic layout row.
Definition Widget.cpp:679
@ InvalidArgument
@ Failed
@ StaleHandle
One persistent scene primitive owned by PrimitiveScene.
Definition PrimitiveScene.h:141
std::size_t segmentCount
Definition PrimitiveTypes.h:113
std::size_t commandCount
Definition PrimitiveTypes.h:112
std::size_t triangleCount
Definition PrimitiveTypes.h:114
std::size_t droppedCommands
Definition PrimitiveTypes.h:118
std::size_t cacheHits
Definition PrimitiveTypes.h:117