Own a complete Pcg-style terrain grid and its height, splat, detail, tree, object and probe state. Creation and every operation publish by one owner swap. History snapshots contain every domain, so undo/redo cannot expose a height/resource combination that never existed. Inputs are copied during calls and never retained. The workspace is caller-thread affine, invokes no callback, reads no clock and uses only explicitly supplied seeds. 更多...
#include <TerrainWorldWorkspace.h>
类 | |
| struct | Impl |
Public 成员函数 | |
| TerrainWorldWorkspace () | |
| Terrain world workspace. | |
| ~TerrainWorldWorkspace () | |
| Terrain world workspace. | |
| TerrainWorldWorkspace (TerrainWorldWorkspace &&) noexcept | |
| Terrain world workspace. | |
| TerrainWorldWorkspace & | operator= (TerrainWorldWorkspace &&) noexcept |
| Operator =. | |
| TerrainWorldWorkspace (const TerrainWorldWorkspace &)=delete | |
| TerrainWorldWorkspace & | operator= (const TerrainWorldWorkspace &)=delete |
| Result< int > | create (const TerrainWorldCreationSettings &settings) |
| Atomically replace the world with a zero-height centered tile grid. | |
| Result< int > | stamp (const Heightmap &stamp, const TerrainStampSettings &settings, const Heightmap &localMask, const Heightmap &globalMask) |
| Apply one height stamp and record a complete-world snapshot. | |
| Result< int > | paintSplat (const Heightmap &paint, int targetLayer, const TerrainStampSettings &operation) |
| Paint one splat layer and record a complete-world snapshot. | |
| Result< int > | applyDetail (const Heightmap &fitness, const TerrainDetailSettings &settings, const TerrainStampSettings &operation, TerrainDetailMode mode, std::int32_t seed) |
| Apply one detail rule and record a complete-world snapshot. | |
| Result< int > | applyTrees (const Heightmap &fitness, const TerrainTreePlacementSettings &settings, const TerrainStampSettings &operation, TerrainTreeOperationMode mode) |
| Apply one tree rule and record a complete-world snapshot. | |
| Result< int > | applyObjects (const Heightmap &fitness, const TerrainObjectPlacementSettings &settings, const TerrainStampSettings &operation, TerrainObjectOperationMode mode) |
| Apply one game-object rule and record a complete-world snapshot. | |
| Result< int > | applyProbes (const Heightmap &fitness, const TerrainProbePlacementSettings &settings, const TerrainStampSettings &operation, TerrainProbeOperationMode mode) |
| Apply one reflection or light probe rule and record a complete-world snapshot. | |
| Result< int > | spawn (const TerrainSpawnPlan &plan) |
| Execute all enabled rules from an owned spawn plan as one complete-world transaction. | |
| Result< int > | spawnBiome (const TerrainBiomePreset &preset) |
| Compile and execute biome-active preset spawners as one complete-world transaction. | |
| Result< int > | spawnStamper (const TerrainBiomePreset &preset) |
| Compile and execute stamper-active preset spawners as one complete-world transaction. | |
| Result< TerrainWorldRunStatus > | beginSpawn (const TerrainSpawnPlan &plan) |
| Start an owned rule-by-rule spawn without exposing candidate world state. | |
| Result< TerrainWorldRunStatus > | beginSpawnBiome (const TerrainBiomePreset &preset) |
| Start the biome-active preset stack as an owned staged spawn. | |
| Result< TerrainWorldRunStatus > | beginSpawnStamper (const TerrainBiomePreset &preset) |
| Start the stamper-active preset stack as an owned staged spawn. | |
| Result< TerrainWorldRunStatus > | stepSpawn (int maxRules) |
| Execute at most maxRules rules and publish the complete world once all rules finish. | |
| Result< TerrainWorldRunStatus > | cancelSpawn () |
| Cancel a pending spawn and discard its complete-world candidate. | |
| TerrainWorldRunStatus | getSpawnStatus () const noexcept |
| Return the staged world-spawn lifecycle state. | |
| int | getSpawnCompletedRules () const noexcept |
| Return rules visited by the current or most recent staged spawn. | |
| Result< int > | flatten () |
| Flatten every owned heightmap to zero and record one complete-world snapshot. | |
| Result< int > | setHeightWorldUnits (float heightWorldUnits, float worldHeightSpan) |
| Set every owned height sample from a world-unit elevation using Pcg's Clamp01 conversion. | |
| Result< int > | clearSpawns (const TerrainWorldClearSettings &settings) |
| Clear selected spawn domains on every tile and record one complete-world snapshot. | |
| Result< int > | copyHeightmap (int index, Heightmap &output) const |
| Copy a tile heightmap by stable creation-order index. | |
| Result< int > | copySplatmap (int index, TerrainSplatmap &output) const |
| Copy a tile splatmap by stable creation-order index. | |
| Result< int > | copyDetail (int index, TerrainDetailLayer &output) const |
| Copy a tile detail layer by stable creation-order index. | |
| Result< int > | copyTrees (int index, PointSet &output) const |
| Copy a tile tree PointSet by stable creation-order index. | |
| Result< int > | copyObjects (int index, PointSet &output) const |
| Copy a tile game-object PointSet by stable creation-order index. | |
| Result< int > | copyProbes (int index, PointSet &output) const |
| Copy a tile reflection/light probe PointSet by stable creation-order index. | |
| Result< std::string > | getTileName (int index) const |
| Return a tile's persistent name copy. | |
| Result< double > | getTileOriginX (int index) const |
| Return a tile's world X origin. | |
| Result< double > | getTileOriginZ (int index) const |
| Return a tile's world Z origin. | |
| Result< int > | undo () |
| Restore the previous complete-world snapshot. | |
| Result< int > | redo () |
| Restore the next complete-world snapshot. | |
| int | getTileCount () const noexcept |
| Return owned tile count. | |
| int | getLastChangedSamples () const noexcept |
| Return changed element count from the current snapshot. | |
| int | getLastAffectedTiles () const noexcept |
| Return affected tile count from the current snapshot. | |
| int | getOperationCount () const noexcept |
| Return retained operation count. | |
| int | getAppliedCount () const noexcept |
| Return applied operation count. | |
详细描述
Own a complete Pcg-style terrain grid and its height, splat, detail, tree, object and probe state. Creation and every operation publish by one owner swap. History snapshots contain every domain, so undo/redo cannot expose a height/resource combination that never existed. Inputs are copied during calls and never retained. The workspace is caller-thread affine, invokes no callback, reads no clock and uses only explicitly supplied seeds.
在文件 TerrainWorldWorkspace.h 第 61 行定义.
构造及析构函数说明
◆ TerrainWorldWorkspace() [1/3]
| eve::procgen::TerrainWorldWorkspace::TerrainWorldWorkspace | ( | ) |
Terrain world workspace.
在文件 TerrainWorldWorkspace.cpp 第 95 行定义.
◆ ~TerrainWorldWorkspace()
|
default |
Terrain world workspace.
◆ TerrainWorldWorkspace() [2/3]
|
defaultnoexcept |
Terrain world workspace.
◆ TerrainWorldWorkspace() [3/3]
|
delete |
成员函数说明
◆ applyDetail()
| Result< int > eve::procgen::TerrainWorldWorkspace::applyDetail | ( | const Heightmap & | fitness, |
| const TerrainDetailSettings & | settings, | ||
| const TerrainStampSettings & | operation, | ||
| TerrainDetailMode | mode, | ||
| std::int32_t | seed | ||
| ) |
Apply one detail rule and record a complete-world snapshot.
在文件 TerrainWorldWorkspace.cpp 第 238 行定义.
引用了 eve::procgen::applyTerrainDetailMultiTile(), operation, seed, settings, tiles , 以及 world.
◆ applyObjects()
| Result< int > eve::procgen::TerrainWorldWorkspace::applyObjects | ( | const Heightmap & | fitness, |
| const TerrainObjectPlacementSettings & | settings, | ||
| const TerrainStampSettings & | operation, | ||
| TerrainObjectOperationMode | mode | ||
| ) |
Apply one game-object rule and record a complete-world snapshot.
在文件 TerrainWorldWorkspace.cpp 第 262 行定义.
引用了 eve::procgen::applyTerrainObjectsMultiTile(), operation, settings, tiles , 以及 world.
◆ applyProbes()
| Result< int > eve::procgen::TerrainWorldWorkspace::applyProbes | ( | const Heightmap & | fitness, |
| const TerrainProbePlacementSettings & | settings, | ||
| const TerrainStampSettings & | operation, | ||
| TerrainProbeOperationMode | mode | ||
| ) |
Apply one reflection or light probe rule and record a complete-world snapshot.
在文件 TerrainWorldWorkspace.cpp 第 276 行定义.
引用了 eve::procgen::applyTerrainProbesMultiTile(), operation, settings, tiles , 以及 world.
◆ applyTrees()
| Result< int > eve::procgen::TerrainWorldWorkspace::applyTrees | ( | const Heightmap & | fitness, |
| const TerrainTreePlacementSettings & | settings, | ||
| const TerrainStampSettings & | operation, | ||
| TerrainTreeOperationMode | mode | ||
| ) |
Apply one tree rule and record a complete-world snapshot.
在文件 TerrainWorldWorkspace.cpp 第 250 行定义.
引用了 eve::procgen::applyTerrainTreesMultiTile(), operation, settings, tiles , 以及 world.
◆ beginSpawn()
| Result< TerrainWorldRunStatus > eve::procgen::TerrainWorldWorkspace::beginSpawn | ( | const TerrainSpawnPlan & | plan | ) |
Start an owned rule-by-rule spawn without exposing candidate world state.
在文件 TerrainWorldWorkspace.cpp 第 332 行定义.
引用了 eve::Diagnostic::error(), eve::Result< T >::failure(), eve::InvalidArgument, eve::procgen::TerrainSpawnPlan::rules(), eve::Result< T >::success() , 以及 value.
◆ beginSpawnBiome()
| Result< TerrainWorldRunStatus > eve::procgen::TerrainWorldWorkspace::beginSpawnBiome | ( | const TerrainBiomePreset & | preset | ) |
Start the biome-active preset stack as an owned staged spawn.
在文件 TerrainWorldWorkspace.cpp 第 351 行定义.
引用了 eve::procgen::TerrainBiomePreset::compileForBiome() , 以及 eve::Result< T >::failure().
◆ beginSpawnStamper()
| Result< TerrainWorldRunStatus > eve::procgen::TerrainWorldWorkspace::beginSpawnStamper | ( | const TerrainBiomePreset & | preset | ) |
Start the stamper-active preset stack as an owned staged spawn.
在文件 TerrainWorldWorkspace.cpp 第 357 行定义.
引用了 eve::procgen::TerrainBiomePreset::compileForStamper() , 以及 eve::Result< T >::failure().
◆ cancelSpawn()
| Result< TerrainWorldRunStatus > eve::procgen::TerrainWorldWorkspace::cancelSpawn | ( | ) |
Cancel a pending spawn and discard its complete-world candidate.
在文件 TerrainWorldWorkspace.cpp 第 403 行定义.
引用了 eve::Diagnostic::error(), eve::Result< T >::failure(), eve::InvalidArgument , 以及 eve::Result< T >::success().
◆ clearSpawns()
| Result< int > eve::procgen::TerrainWorldWorkspace::clearSpawns | ( | const TerrainWorldClearSettings & | settings | ) |
Clear selected spawn domains on every tile and record one complete-world snapshot.
在文件 TerrainWorldWorkspace.cpp 第 462 行定义.
引用了 eve::procgen::TerrainMultiTileReport::affectedTiles, eve::procgen::PointSet::appendPointFrom(), eve::procgen::TerrainMultiTileReport::changedSamples, eve::Diagnostic::error(), eve::Result< T >::failure(), eve::InvalidArgument, points, eve::procgen::PointSet::reserve(), settings, source, eve::Result< T >::success(), eve::Result< T >::value(), world, x , 以及 z.
◆ copyDetail()
| Result< int > eve::procgen::TerrainWorldWorkspace::copyDetail | ( | int | index, |
| TerrainDetailLayer & | output | ||
| ) | const |
Copy a tile detail layer by stable creation-order index.
在文件 TerrainWorldWorkspace.cpp 第 538 行定义.
引用了 eve::Result< T >::failure(), index, output , 以及 eve::Result< T >::success().
◆ copyHeightmap()
| Result< int > eve::procgen::TerrainWorldWorkspace::copyHeightmap | ( | int | index, |
| Heightmap & | output | ||
| ) | const |
Copy a tile heightmap by stable creation-order index.
在文件 TerrainWorldWorkspace.cpp 第 536 行定义.
引用了 eve::Result< T >::failure(), index, output , 以及 eve::Result< T >::success().
◆ copyObjects()
| Result< int > eve::procgen::TerrainWorldWorkspace::copyObjects | ( | int | index, |
| PointSet & | output | ||
| ) | const |
Copy a tile game-object PointSet by stable creation-order index.
在文件 TerrainWorldWorkspace.cpp 第 540 行定义.
引用了 eve::Result< T >::failure(), index, output , 以及 eve::Result< T >::success().
◆ copyProbes()
| Result< int > eve::procgen::TerrainWorldWorkspace::copyProbes | ( | int | index, |
| PointSet & | output | ||
| ) | const |
Copy a tile reflection/light probe PointSet by stable creation-order index.
在文件 TerrainWorldWorkspace.cpp 第 541 行定义.
引用了 eve::Result< T >::failure(), index, output , 以及 eve::Result< T >::success().
◆ copySplatmap()
| Result< int > eve::procgen::TerrainWorldWorkspace::copySplatmap | ( | int | index, |
| TerrainSplatmap & | output | ||
| ) | const |
Copy a tile splatmap by stable creation-order index.
在文件 TerrainWorldWorkspace.cpp 第 537 行定义.
引用了 eve::Result< T >::failure(), index, output , 以及 eve::Result< T >::success().
◆ copyTrees()
Copy a tile tree PointSet by stable creation-order index.
在文件 TerrainWorldWorkspace.cpp 第 539 行定义.
引用了 eve::Result< T >::failure(), index, output , 以及 eve::Result< T >::success().
◆ create()
| Result< int > eve::procgen::TerrainWorldWorkspace::create | ( | const TerrainWorldCreationSettings & | settings | ) |
Atomically replace the world with a zero-height centered tile grid.
在文件 TerrainWorldWorkspace.cpp 第 100 行定义.
引用了 detail, eve::procgen::TerrainWorldWorkspace::Impl::Tile::detail, eve::Diagnostic::error(), eve::Result< T >::failure(), eve::procgen::TerrainWorldWorkspace::Impl::Tile::heights, eve::procgen::TerrainSplatmap::initialize(), eve::InvalidArgument, eve::procgen::TerrainWorldWorkspace::Impl::Tile::name, eve::procgen::TerrainWorldWorkspace::Impl::Tile::originX, eve::procgen::TerrainWorldWorkspace::Impl::Tile::originZ, eve::procgen::Pending, eve::procgen::TerrainDetailLayer::reset(), s, eve::procgen::TerrainWorldWorkspace::Impl::Tile::splat, eve::Result< T >::success(), x , 以及 z.
◆ flatten()
| Result< int > eve::procgen::TerrainWorldWorkspace::flatten | ( | ) |
Flatten every owned heightmap to zero and record one complete-world snapshot.
在文件 TerrainWorldWorkspace.cpp 第 421 行定义.
引用了 eve::procgen::TerrainMultiTileReport::affectedTiles, eve::procgen::TerrainMultiTileReport::changedSamples, height, eve::Result< T >::success() , 以及 world.
◆ getAppliedCount()
|
noexcept |
Return applied operation count.
在文件 TerrainWorldWorkspace.cpp 第 573 行定义.
◆ getLastAffectedTiles()
|
noexcept |
Return affected tile count from the current snapshot.
在文件 TerrainWorldWorkspace.cpp 第 571 行定义.
◆ getLastChangedSamples()
|
noexcept |
Return changed element count from the current snapshot.
在文件 TerrainWorldWorkspace.cpp 第 570 行定义.
◆ getOperationCount()
|
noexcept |
Return retained operation count.
在文件 TerrainWorldWorkspace.cpp 第 572 行定义.
◆ getSpawnCompletedRules()
|
noexcept |
Return rules visited by the current or most recent staged spawn.
在文件 TerrainWorldWorkspace.cpp 第 417 行定义.
◆ getSpawnStatus()
|
noexcept |
Return the staged world-spawn lifecycle state.
在文件 TerrainWorldWorkspace.cpp 第 413 行定义.
◆ getTileCount()
|
noexcept |
Return owned tile count.
在文件 TerrainWorldWorkspace.cpp 第 569 行定义.
◆ getTileName()
| Result< std::string > eve::procgen::TerrainWorldWorkspace::getTileName | ( | int | index | ) | const |
Return a tile's persistent name copy.
在文件 TerrainWorldWorkspace.cpp 第 542 行定义.
引用了 eve::Result< T >::failure(), index , 以及 eve::Result< T >::success().
◆ getTileOriginX()
| Result< double > eve::procgen::TerrainWorldWorkspace::getTileOriginX | ( | int | index | ) | const |
Return a tile's world X origin.
在文件 TerrainWorldWorkspace.cpp 第 543 行定义.
引用了 eve::Result< T >::failure(), index , 以及 eve::Result< T >::success().
◆ getTileOriginZ()
| Result< double > eve::procgen::TerrainWorldWorkspace::getTileOriginZ | ( | int | index | ) | const |
Return a tile's world Z origin.
在文件 TerrainWorldWorkspace.cpp 第 544 行定义.
引用了 eve::Result< T >::failure(), index , 以及 eve::Result< T >::success().
◆ operator=() [1/2]
|
delete |
◆ operator=() [2/2]
|
defaultnoexcept |
Operator =.
◆ paintSplat()
| Result< int > eve::procgen::TerrainWorldWorkspace::paintSplat | ( | const Heightmap & | paint, |
| int | targetLayer, | ||
| const TerrainStampSettings & | operation | ||
| ) |
Paint one splat layer and record a complete-world snapshot.
在文件 TerrainWorldWorkspace.cpp 第 228 行定义.
引用了 layer, operation, eve::procgen::paintTerrainSplatLayerMultiTile(), tiles , 以及 world.
◆ redo()
| Result< int > eve::procgen::TerrainWorldWorkspace::redo | ( | ) |
Restore the next complete-world snapshot.
在文件 TerrainWorldWorkspace.cpp 第 557 行定义.
引用了 cursor, eve::Diagnostic::error(), eve::Result< T >::failure(), eve::InvalidArgument , 以及 eve::Result< T >::success().
◆ setHeightWorldUnits()
| Result< int > eve::procgen::TerrainWorldWorkspace::setHeightWorldUnits | ( | float | heightWorldUnits, |
| float | worldHeightSpan | ||
| ) |
Set every owned height sample from a world-unit elevation using Pcg's Clamp01 conversion.
- 参数
-
heightWorldUnits Requested world elevation. worldHeightSpan Positive vertical size represented by normalized height 1.
- 返回
- Changed sample count; validation failure leaves the complete world and history unchanged.
在文件 TerrainWorldWorkspace.cpp 第 439 行定义.
引用了 eve::procgen::TerrainMultiTileReport::affectedTiles, eve::procgen::TerrainMultiTileReport::changedSamples, eve::Diagnostic::error(), eve::Result< T >::failure(), height, eve::InvalidArgument, eve::Result< T >::success() , 以及 world.
◆ spawn()
| Result< int > eve::procgen::TerrainWorldWorkspace::spawn | ( | const TerrainSpawnPlan & | plan | ) |
Execute all enabled rules from an owned spawn plan as one complete-world transaction.
在文件 TerrainWorldWorkspace.cpp 第 291 行定义.
引用了 eve::procgen::TerrainMultiTileReport::affectedTiles, eve::procgen::TerrainMultiTileReport::changedSamples, eve::Diagnostic::error(), eve::Result< T >::failure(), eve::InvalidArgument, eve::procgen::TerrainMultiTileReport::mappings, eve::procgen::TerrainSpawnPlan::rules(), eve::Result< T >::success(), value, variant , 以及 world.
◆ spawnBiome()
| Result< int > eve::procgen::TerrainWorldWorkspace::spawnBiome | ( | const TerrainBiomePreset & | preset | ) |
Compile and execute biome-active preset spawners as one complete-world transaction.
在文件 TerrainWorldWorkspace.cpp 第 320 行定义.
引用了 eve::procgen::TerrainBiomePreset::compileForBiome() , 以及 eve::Result< T >::failure().
◆ spawnStamper()
| Result< int > eve::procgen::TerrainWorldWorkspace::spawnStamper | ( | const TerrainBiomePreset & | preset | ) |
Compile and execute stamper-active preset spawners as one complete-world transaction.
在文件 TerrainWorldWorkspace.cpp 第 326 行定义.
引用了 eve::procgen::TerrainBiomePreset::compileForStamper() , 以及 eve::Result< T >::failure().
◆ stamp()
| Result< int > eve::procgen::TerrainWorldWorkspace::stamp | ( | const Heightmap & | stamp, |
| const TerrainStampSettings & | settings, | ||
| const Heightmap & | localMask, | ||
| const Heightmap & | globalMask | ||
| ) |
Apply one height stamp and record a complete-world snapshot.
在文件 TerrainWorldWorkspace.cpp 第 218 行定义.
引用了 eve::procgen::applyTerrainStampMultiTile(), global, local, settings, tiles , 以及 world.
◆ stepSpawn()
| Result< TerrainWorldRunStatus > eve::procgen::TerrainWorldWorkspace::stepSpawn | ( | int | maxRules | ) |
Execute at most maxRules rules and publish the complete world once all rules finish.
在文件 TerrainWorldWorkspace.cpp 第 363 行定义.
引用了 eve::Diagnostic::error(), eve::Result< T >::failure(), eve::InvalidArgument , 以及 eve::Result< T >::success().
◆ undo()
| Result< int > eve::procgen::TerrainWorldWorkspace::undo | ( | ) |
Restore the previous complete-world snapshot.
在文件 TerrainWorldWorkspace.cpp 第 545 行定义.
引用了 cursor, eve::Diagnostic::error(), eve::Result< T >::failure(), eve::InvalidArgument , 以及 eve::Result< T >::success().
该类的文档由以下文件生成:
- src/modules/procgen/heightmap/TerrainWorldWorkspace.h
- src/modules/procgen/heightmap/TerrainWorldWorkspace.cpp