Frame-local scene recorder for 3D line primitives. 更多...
#include <PrimitiveDrawList.h>
Public 成员函数 | |
| PrimitiveSceneCanvas3D (SceneDrawContext context, std::size_t hardCommandLimit=65536) | |
| Primitive scene canvas 3 d. | |
| void | save () |
| Saves . | |
| void | restore () |
| Restore. | |
| void | concat (const glm::mat4 &transform) |
| Concat. | |
| void | drawLine (glm::vec3 a, glm::vec3 b, const ScenePrimitivePaint &paint) |
| Draws line. | |
| void | drawPoint (glm::vec3 point, const ScenePrimitivePaint &paint) |
| Draws point. | |
| void | drawPolyline (std::span< const glm::vec3 > points, bool closed, const ScenePrimitivePaint &paint) |
| Draws polyline. | |
| eve::Result< PrimitiveRecordStatus > | tryDrawPolyline (std::span< const glm::vec3 > points, bool closed, const ScenePrimitivePaint &paint) |
| Atomically records an owning 3D polyline or returns a structured budget failure. | |
| void | drawRay (glm::vec3 origin, glm::vec3 direction, float length, const ScenePrimitivePaint &paint) |
| Draws ray. | |
| void | drawTriangle (glm::vec3 a, glm::vec3 b, glm::vec3 c, const ScenePrimitivePaint &paint) |
| Draws triangle. | |
| void | drawQuad (glm::vec3 a, glm::vec3 b, glm::vec3 c, glm::vec3 d, const ScenePrimitivePaint &paint) |
| Draws quad. | |
| void | drawDisk (glm::vec3 center, glm::vec3 normal, float radius, const ScenePrimitivePaint &paint, std::uint32_t segments=32) |
| Draws disk. | |
| 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. | |
| void | drawAabb (glm::vec3 minimum, glm::vec3 maximum, const ScenePrimitivePaint &paint) |
| Records the twelve edges of an axis-aligned box. | |
| void | drawObb (glm::vec3 center, const std::array< glm::vec3, 3 > &halfAxes, const ScenePrimitivePaint &paint) |
| Draws obb. | |
| 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. | |
| void | drawSphere (glm::vec3 center, float radius, const ScenePrimitivePaint &paint, std::uint32_t segments=32) |
| Records three orthogonal great circles. | |
| void | drawSphere (glm::vec3 center, float radius, const ScenePrimitivePaint &paint, const RadialTessellation &tessellation) |
| Draws a sphere using a fixed quality or adaptive projected error policy. | |
| void | drawCapsule (glm::vec3 a, glm::vec3 b, float radius, const ScenePrimitivePaint &paint, std::uint32_t segments=32) |
| Draws capsule. | |
| 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. | |
| 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. | |
| void | drawArrow (glm::vec3 from, glm::vec3 to, float headLength, float headRadius, const ScenePrimitivePaint &paint) |
| Records a shaft and four-sided arrow head. | |
| void | drawFrustum (const std::array< glm::vec3, 8 > &corners, const ScenePrimitivePaint &paint) |
| Draws frustum. | |
| void | reset () |
| Resets . | |
| const SceneDrawContext & | context () const noexcept |
| Context. | |
| const std::vector< PolylineCommand3D > & | commands () const noexcept |
| Commands. | |
| const std::vector< TriangleCommand3D > & | triangles () const noexcept |
| Triangles. | |
| const PrimitiveDrawStatistics & | statistics () const noexcept |
| Statistics. | |
友元 | |
| class | PrimitiveScene |
详细描述
Frame-local scene recorder for 3D line primitives.
在文件 PrimitiveDrawList.h 第 114 行定义.
构造及析构函数说明
◆ PrimitiveSceneCanvas3D()
|
explicit |
Primitive scene canvas 3 d.
在文件 PrimitiveDrawList.cpp 第 511 行定义.
引用了 EV_PARAM_CHECK , 以及 eve::graphics::SceneDrawContext::validate().
成员函数说明
◆ commands()
|
inlinenoexcept |
Commands.
在文件 PrimitiveDrawList.h 第 177 行定义.
被这些函数引用 eve::graphics::RenderSystem3D::render() , 以及 eve::graphics::resolvePrimitiveStrokes3D().
◆ concat()
| void eve::graphics::PrimitiveSceneCanvas3D::concat | ( | const glm::mat4 & | transform | ) |
Concat.
在文件 PrimitiveDrawList.cpp 第 525 行定义.
被这些函数引用 eve::graphics_editing::PrimitiveGizmoRenderer::render() , 以及 eve::graphics::PrimitiveScene::tryRender().
◆ context()
|
inlinenoexcept |
◆ drawAabb()
| void eve::graphics::PrimitiveSceneCanvas3D::drawAabb | ( | glm::vec3 | minimum, |
| glm::vec3 | maximum, | ||
| const ScenePrimitivePaint & | paint | ||
| ) |
Records the twelve edges of an axis-aligned box.
在文件 PrimitiveDrawList.cpp 第 635 行定义.
引用了 drawLine(), edges, EV_PARAM_CHECK, eve::graphics::Fill, maximum, minimum, eve::graphics::PrimitivePaint::mode , 以及 eve::graphics::Stroke.
被这些函数引用 eve::graphics_editing::PrimitiveGizmoRenderer::render() , 以及 eve::graphics::PrimitiveScene::tryRender().
◆ drawArc()
| void eve::graphics::PrimitiveSceneCanvas3D::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.
在文件 PrimitiveDrawList.cpp 第 612 行定义.
引用了 angle, center, drawPolyline(), EV_PARAM_CHECK, eve::graphics::Fill, eve::graphics::PrimitivePaint::mode, n, normal, points, radius, eve::graphics::Stroke, u , 以及 v.
◆ drawArrow()
| void eve::graphics::PrimitiveSceneCanvas3D::drawArrow | ( | glm::vec3 | from, |
| glm::vec3 | to, | ||
| float | headLength, | ||
| float | headRadius, | ||
| const ScenePrimitivePaint & | paint | ||
| ) |
Records a shaft and four-sided arrow head.
在文件 PrimitiveDrawList.cpp 第 800 行定义.
引用了 direction, drawCone(), drawLine(), EV_PARAM_CHECK, from, length , 以及 to.
被这些函数引用 eve::graphics_editing::PrimitiveGizmoRenderer::render() , 以及 eve::graphics::PrimitiveScene::tryRender().
◆ drawCapsule()
| void eve::graphics::PrimitiveSceneCanvas3D::drawCapsule | ( | glm::vec3 | a, |
| glm::vec3 | b, | ||
| float | radius, | ||
| const ScenePrimitivePaint & | paint, | ||
| std::uint32_t | segments = 32 |
||
| ) |
Draws capsule.
在文件 PrimitiveDrawList.cpp 第 743 行定义.
引用了 a, b, drawCylinder(), drawSphere() , 以及 radius.
被这些函数引用 eve::graphics_editing::PrimitiveGizmoRenderer::render() , 以及 eve::graphics::PrimitiveScene::tryRender().
◆ drawCone()
| void eve::graphics::PrimitiveSceneCanvas3D::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.
在文件 PrimitiveDrawList.cpp 第 776 行定义.
引用了 direction, drawLine(), drawPolyline(), EV_PARAM_CHECK, eve::graphics::Fill, height, eve::graphics::PrimitivePaint::mode, radius, eve::graphics::Stroke, u , 以及 v.
被这些函数引用 drawArrow() , 以及 eve::graphics::PrimitiveScene::tryRender().
◆ drawCylinder()
| void eve::graphics::PrimitiveSceneCanvas3D::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.
在文件 PrimitiveDrawList.cpp 第 752 行定义.
引用了 a, b, drawLine(), drawPolyline(), eve::graphics::Fill, eve::graphics::PrimitivePaint::mode, radius, eve::graphics::Stroke, u , 以及 v.
被这些函数引用 drawCapsule() , 以及 eve::graphics::PrimitiveScene::tryRender().
◆ drawDisk()
| void eve::graphics::PrimitiveSceneCanvas3D::drawDisk | ( | glm::vec3 | center, |
| glm::vec3 | normal, | ||
| float | radius, | ||
| const ScenePrimitivePaint & | paint, | ||
| std::uint32_t | segments = 32 |
||
| ) |
Draws disk.
在文件 PrimitiveDrawList.cpp 第 600 行定义.
引用了 center, drawPolyline(), eve::graphics::Fill, eve::graphics::PrimitivePaint::mode, normal, radius, eve::graphics::Stroke, u , 以及 v.
◆ drawFrustum()
| void eve::graphics::PrimitiveSceneCanvas3D::drawFrustum | ( | const std::array< glm::vec3, 8 > & | corners, |
| const ScenePrimitivePaint & | paint | ||
| ) |
Draws frustum.
在文件 PrimitiveDrawList.cpp 第 815 行定义.
引用了 drawLine(), edges, eve::graphics::Fill, eve::graphics::PrimitivePaint::mode , 以及 eve::graphics::Stroke.
被这些函数引用 drawObb(), eve::graphics_editing::PrimitiveGizmoRenderer::render() , 以及 eve::graphics::PrimitiveScene::tryRender().
◆ drawGrid()
| void eve::graphics::PrimitiveSceneCanvas3D::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.
在文件 PrimitiveDrawList.cpp 第 673 行定义.
引用了 drawLine(), EV_PARAM_CHECK, origin , 以及 t.
◆ drawLine()
| void eve::graphics::PrimitiveSceneCanvas3D::drawLine | ( | glm::vec3 | a, |
| glm::vec3 | b, | ||
| const ScenePrimitivePaint & | paint | ||
| ) |
Draws line.
在文件 PrimitiveDrawList.cpp 第 527 行定义.
引用了 a, b, drawPolyline() , 以及 points.
被这些函数引用 drawAabb(), drawArrow(), drawCone(), drawCylinder(), drawFrustum(), drawGrid(), drawPoint(), drawRay() , 以及 eve::graphics_editing::PrimitiveGizmoRenderer::render().
◆ drawObb()
| void eve::graphics::PrimitiveSceneCanvas3D::drawObb | ( | glm::vec3 | center, |
| const std::array< glm::vec3, 3 > & | halfAxes, | ||
| const ScenePrimitivePaint & | paint | ||
| ) |
Draws obb.
在文件 PrimitiveDrawList.cpp 第 663 行定义.
引用了 center, drawFrustum(), EV_PARAM_CHECK , 以及 index.
被这些函数引用 eve::graphics_editing::PrimitiveGizmoRenderer::render() , 以及 eve::graphics::PrimitiveScene::tryRender().
◆ drawPoint()
| void eve::graphics::PrimitiveSceneCanvas3D::drawPoint | ( | glm::vec3 | point, |
| const ScenePrimitivePaint & | paint | ||
| ) |
Draws point.
在文件 PrimitiveDrawList.cpp 第 532 行定义.
引用了 drawLine(), eve::graphics::SceneDrawContext::nearPlane, point, eve::graphics::PrimitivePaint::stroke, eve::graphics::SceneDrawContext::view, eve::graphics::SceneDrawContext::viewportSize, eve::graphics::StrokeStyle::width, eve::graphics::StrokeStyle::widthSpace , 以及 eve::graphics::WorldUnits.
被这些函数引用 eve::graphics_editing::PrimitiveGizmoRenderer::render().
◆ drawPolyline()
| void eve::graphics::PrimitiveSceneCanvas3D::drawPolyline | ( | std::span< const glm::vec3 > | points, |
| bool | closed, | ||
| const ScenePrimitivePaint & | paint | ||
| ) |
Draws polyline.
在文件 PrimitiveDrawList.cpp 第 541 行定义.
引用了 points , 以及 tryDrawPolyline().
被这些函数引用 drawArc(), drawCone(), drawCylinder(), drawDisk(), drawLine(), drawQuad(), drawSphere(), drawTriangle() , 以及 eve::graphics::PrimitiveScene::tryRender().
◆ drawQuad()
| void eve::graphics::PrimitiveSceneCanvas3D::drawQuad | ( | glm::vec3 | a, |
| glm::vec3 | b, | ||
| glm::vec3 | c, | ||
| glm::vec3 | d, | ||
| const ScenePrimitivePaint & | paint | ||
| ) |
Draws quad.
在文件 PrimitiveDrawList.cpp 第 588 行定义.
引用了 a, b, c, d, drawPolyline(), eve::graphics::Fill, eve::graphics::PrimitivePaint::mode , 以及 eve::graphics::Stroke.
被这些函数引用 eve::graphics_editing::PrimitiveGizmoRenderer::render().
◆ drawRay()
| void eve::graphics::PrimitiveSceneCanvas3D::drawRay | ( | glm::vec3 | origin, |
| glm::vec3 | direction, | ||
| float | length, | ||
| const ScenePrimitivePaint & | paint | ||
| ) |
Draws ray.
在文件 PrimitiveDrawList.cpp 第 563 行定义.
引用了 direction, drawLine(), EV_PARAM_CHECK, length , 以及 origin.
◆ drawSphere() [1/2]
| void eve::graphics::PrimitiveSceneCanvas3D::drawSphere | ( | glm::vec3 | center, |
| float | radius, | ||
| const ScenePrimitivePaint & | paint, | ||
| const RadialTessellation & | tessellation | ||
| ) |
Draws a sphere using a fixed quality or adaptive projected error policy.
在文件 PrimitiveDrawList.cpp 第 726 行定义.
引用了 center, drawSphere(), eve::graphics::SceneDrawContext::projection, radius, eve::graphics::resolveRadialSegments(), eve::graphics::SceneDrawContext::view , 以及 eve::graphics::SceneDrawContext::viewportSize.
◆ drawSphere() [2/2]
| void eve::graphics::PrimitiveSceneCanvas3D::drawSphere | ( | glm::vec3 | center, |
| float | radius, | ||
| const ScenePrimitivePaint & | paint, | ||
| std::uint32_t | segments = 32 |
||
| ) |
Records three orthogonal great circles.
在文件 PrimitiveDrawList.cpp 第 691 行定义.
引用了 a, b, c, center, d, drawPolyline(), eve::graphics::Fill, eve::graphics::PrimitivePaint::mode, point, radius , 以及 eve::graphics::Stroke.
被这些函数引用 drawCapsule(), drawSphere(), eve::graphics_editing::PrimitiveGizmoRenderer::render() , 以及 eve::graphics::PrimitiveScene::tryRender().
◆ drawTriangle()
| void eve::graphics::PrimitiveSceneCanvas3D::drawTriangle | ( | glm::vec3 | a, |
| glm::vec3 | b, | ||
| glm::vec3 | c, | ||
| const ScenePrimitivePaint & | paint | ||
| ) |
Draws triangle.
在文件 PrimitiveDrawList.cpp 第 573 行定义.
引用了 a, b, c, drawPolyline(), eve::graphics::Fill, eve::graphics::PrimitivePaint::mode, points, eve::graphics::Stroke , 以及 eve::graphics::PrimitivePaint::validate().
◆ reset()
| void eve::graphics::PrimitiveSceneCanvas3D::reset | ( | ) |
Resets .
在文件 PrimitiveDrawList.cpp 第 830 行定义.
◆ restore()
| void eve::graphics::PrimitiveSceneCanvas3D::restore | ( | ) |
Restore.
在文件 PrimitiveDrawList.cpp 第 519 行定义.
引用了 EV_PARAM_CHECK.
被这些函数引用 eve::graphics_editing::PrimitiveGizmoRenderer::render().
◆ save()
| void eve::graphics::PrimitiveSceneCanvas3D::save | ( | ) |
Saves .
在文件 PrimitiveDrawList.cpp 第 517 行定义.
被这些函数引用 eve::graphics_editing::PrimitiveGizmoRenderer::render().
◆ statistics()
|
inlinenoexcept |
Statistics.
在文件 PrimitiveDrawList.h 第 181 行定义.
被这些函数引用 eve::graphics_editing::PrimitiveGizmoRenderer::render() , 以及 eve::graphics::resolvePrimitiveStrokes3D().
◆ triangles()
|
inlinenoexcept |
Triangles.
在文件 PrimitiveDrawList.h 第 179 行定义.
被这些函数引用 eve::graphics::RenderSystem3D::render() , 以及 eve::graphics::resolvePrimitiveStrokes3D().
◆ tryDrawPolyline()
| eve::Result< PrimitiveRecordStatus > eve::graphics::PrimitiveSceneCanvas3D::tryDrawPolyline | ( | std::span< const glm::vec3 > | points, |
| bool | closed, | ||
| const ScenePrimitivePaint & | paint | ||
| ) |
Atomically records an owning 3D polyline or returns a structured budget failure.
在文件 PrimitiveDrawList.cpp 第 547 行定义.
引用了 eve::graphics::PrimitiveDrawStatistics::commandCount, eve::graphics::PrimitiveDrawStatistics::droppedCommands, points, eve::graphics::Recorded, eve::graphics::PrimitiveDrawStatistics::segmentCount, eve::Result< T >::success(), u , 以及 eve::graphics::PrimitivePaint::validate().
被这些函数引用 drawPolyline().
友元及相关函数文档
◆ PrimitiveScene
|
friend |
在文件 PrimitiveDrawList.h 第 184 行定义.
该类的文档由以下文件生成:
- src/modules/graphics/PrimitiveDrawList.h
- src/modules/graphics/PrimitiveDrawList.cpp