Own ordered Pcg-style PolyMask nodes and rasterize them into a caller-owned scalar grid. Nodes are value-copied and no terrain, texture, scene object, callback, clock, or RNG is retained. 更多...
#include <TerrainPolygonMask.h>
类 | |
| struct | Impl |
Public 成员函数 | |
| TerrainPolygonMask () | |
| Terrain polygon mask. | |
| ~TerrainPolygonMask () | |
| Terrain polygon mask. | |
| TerrainPolygonMask (TerrainPolygonMask &&) noexcept | |
| Terrain polygon mask. | |
| TerrainPolygonMask & | operator= (TerrainPolygonMask &&) noexcept |
| Operator =. | |
| TerrainPolygonMask (const TerrainPolygonMask &)=delete | |
| TerrainPolygonMask & | operator= (const TerrainPolygonMask &)=delete |
| Result< int > | addNode (double worldX, double worldZ, float radius, float strength) |
| Append a finite world-X/Z node with positive radius and retained Pcg strength metadata. | |
| void | clear () |
| Remove every owned node. | |
| int | getNodeCount () const noexcept |
| Return the current node count. | |
| Result< int > | rasterize (Heightmap &target, const Heightmap &brush, const TerrainSampleGrid &grid, TerrainPolygonMaskType type) const |
| Rasterize closed fill and ordered additive brush strokes atomically. | |
详细描述
Own ordered Pcg-style PolyMask nodes and rasterize them into a caller-owned scalar grid. Nodes are value-copied and no terrain, texture, scene object, callback, clock, or RNG is retained.
在文件 TerrainPolygonMask.h 第 17 行定义.
构造及析构函数说明
◆ TerrainPolygonMask() [1/3]
| eve::procgen::TerrainPolygonMask::TerrainPolygonMask | ( | ) |
Terrain polygon mask.
在文件 TerrainPolygonMask.cpp 第 21 行定义.
◆ ~TerrainPolygonMask()
|
default |
Terrain polygon mask.
◆ TerrainPolygonMask() [2/3]
|
defaultnoexcept |
Terrain polygon mask.
◆ TerrainPolygonMask() [3/3]
|
delete |
成员函数说明
◆ addNode()
| Result< int > eve::procgen::TerrainPolygonMask::addNode | ( | double | worldX, |
| double | worldZ, | ||
| float | radius, | ||
| float | strength | ||
| ) |
Append a finite world-X/Z node with positive radius and retained Pcg strength metadata.
在文件 TerrainPolygonMask.cpp 第 26 行定义.
引用了 eve::procgen::raster_detail::invalid(), radius, strength , 以及 eve::Result< T >::success().
◆ clear()
| void eve::procgen::TerrainPolygonMask::clear | ( | ) |
Remove every owned node.
在文件 TerrainPolygonMask.cpp 第 36 行定义.
◆ getNodeCount()
|
noexcept |
Return the current node count.
在文件 TerrainPolygonMask.cpp 第 40 行定义.
◆ operator=() [1/2]
|
delete |
◆ operator=() [2/2]
|
defaultnoexcept |
Operator =.
◆ rasterize()
| Result< int > eve::procgen::TerrainPolygonMask::rasterize | ( | Heightmap & | target, |
| const Heightmap & | brush, | ||
| const TerrainSampleGrid & | grid, | ||
| TerrainPolygonMaskType | type | ||
| ) | const |
Rasterize closed fill and ordered additive brush strokes atomically.
- 参数
-
target Exclusively borrowed finite destination; dimensions must match grid. brush Borrowed finite scalar brush. Samples outside each node's square footprint are zero. grid Positive finite sample spacing and finite world origin. type Open draws strokes only; Closed first fills the polygon when at least three nodes exist.
- 返回
- Changed sample count or InvalidArgument; failure leaves target unchanged.
- 异常
-
std::bad_alloc Target remains unchanged. @thread Synchronous exclusive target access; immutable brush and owned-node snapshot, no callbacks. Pcg 4.2.2 passes node strength to ApplyBrushStroke but its shader path does not bind or consume it; this implementation retains the field for asset fidelity and likewise does not scale the brush by it.
在文件 TerrainPolygonMask.cpp 第 44 行定义.
引用了 a, b, eve::procgen::Closed, hit, inside, eve::procgen::raster_detail::invalid(), node, output, eve::procgen::raster_detail::publish(), target, eve::procgen::raster_detail::textureSample(), type, u, v, eve::procgen::raster_detail::validRaster(), value, wx, wz, x , 以及 z.
该类的文档由以下文件生成:
- src/modules/procgen/heightmap/TerrainPolygonMask.h
- src/modules/procgen/heightmap/TerrainPolygonMask.cpp