载入中...
搜索中...
未找到
eve::procgen::TerrainDetailLayer类 参考

Owned integer terrain-detail layer, independent of graphics and resource registries. Each instance is an independent owning value; explicit copies deep-copy all counts for transaction snapshots. Caller serializes access on its owning thread. Every operation evaluates privately and publishes once; no callback, borrowed raster or mutable view survives a call. Each apply owns a named detail-thinning RNG stream initialized by its explicit signed seed. Replay uses same-build float arithmetic, X-major iteration and conditional source RNG draws. This layer covers one complete aligned terrain and owns independent density rasters keyed by stable resource namespace. Multi-terrain windows and renderer instancing remain in their existing domain owners. 更多...

#include <TerrainDetailLayer.h>

类

struct  Impl
 

Public 成员函数

 TerrainDetailLayer ()
 Construct an empty layer.
 
 ~TerrainDetailLayer ()
 Release owned counts.
 
 TerrainDetailLayer (TerrainDetailLayer &&) noexcept
 Transfer ownership; moved-from layer is empty and resettable.
 
TerrainDetailLayer & operator= (TerrainDetailLayer &&) noexcept
 Transfer ownership, releasing previous counts.
 
 TerrainDetailLayer (const TerrainDetailLayer &)
 Create an independent deep value copy for transactional snapshots.
 
TerrainDetailLayer & operator= (const TerrainDetailLayer &)
 Replace with an independent deep value copy.
 
Result< int > reset (int width, int height, int count=0)
 Reset positive dimensions and uniform nonnegative count atomically.
 
Result< int > apply (const Heightmap &fitness, const TerrainDetailSettings &settings, int32_t seed)
 Apply a finite aligned fitness map with source thinning and nearest-even integer rounding.
 
Result< int > sample (int x, int z) const
 Read an integer value copy; empty state or invalid coordinates return InvalidArgument.
 
Result< int > sampleResource (std::uint64_t namespaceId, int x, int z) const
 Read one resource layer without exposing mutable storage; an absent namespace reads as zero.
 
Result< int > clearResource (std::uint64_t namespaceId)
 Remove one resource layer atomically and return its changed cell count.
 
int getWidth () const noexcept
 Return width, zero when empty or moved-from.
 
int getHeight () const noexcept
 Return height, zero when empty or moved-from.
 

友元

class TerrainWorldWorkspace
 
class TerrainMultiDetailWorkspace
 
EVENGINE_API_DOMAINS Result< TerrainMultiTileReport > applyTerrainDetailMultiTile (const std::vector< TerrainDetailTile > &, const Heightmap &, const TerrainDetailSettings &, const TerrainStampSettings &, std::int32_t, bool, const std::vector< std::string > &)
 Apply one shared Pcg detail-distribution raster to every selected tile atomically.
 

详细描述

Owned integer terrain-detail layer, independent of graphics and resource registries. Each instance is an independent owning value; explicit copies deep-copy all counts for transaction snapshots. Caller serializes access on its owning thread. Every operation evaluates privately and publishes once; no callback, borrowed raster or mutable view survives a call. Each apply owns a named detail-thinning RNG stream initialized by its explicit signed seed. Replay uses same-build float arithmetic, X-major iteration and conditional source RNG draws. This layer covers one complete aligned terrain and owns independent density rasters keyed by stable resource namespace. Multi-terrain windows and renderer instancing remain in their existing domain owners.

在文件 TerrainDetailLayer.h 第 35 行定义.

构造及析构函数说明

◆ TerrainDetailLayer() [1/3]

eve::procgen::TerrainDetailLayer::TerrainDetailLayer ( )
default

Construct an empty layer.

◆ ~TerrainDetailLayer()

eve::procgen::TerrainDetailLayer::~TerrainDetailLayer ( )
default

Release owned counts.

◆ TerrainDetailLayer() [2/3]

eve::procgen::TerrainDetailLayer::TerrainDetailLayer ( TerrainDetailLayer &&  )
defaultnoexcept

Transfer ownership; moved-from layer is empty and resettable.

◆ TerrainDetailLayer() [3/3]

eve::procgen::TerrainDetailLayer::TerrainDetailLayer ( const TerrainDetailLayer &  other)

Create an independent deep value copy for transactional snapshots.

在文件 TerrainDetailLayer.cpp 第 76 行定义.

成员函数说明

◆ apply()

Result< int > eve::procgen::TerrainDetailLayer::apply ( const Heightmap &  fitness,
const TerrainDetailSettings &  settings,
int32_t  seed 
)

Apply a finite aligned fitness map with source thinning and nearest-even integer rounding.

参数
fitnessBorrowed matching finite raster; scalar values may exceed [0,1].
settingsFinite unit thresholds and nonnegative density below INT_MAX; mode must be known.
seedExplicit detail-thinning stream seed; zero is normalized to one, negative uses uint32 bits.
返回
Changed cell count or InvalidArgument; failure/allocation exception preserves every count. Replace clears the selected resource layer before generation. Add/Remove preserve rejected cells but clamp accepted cells to the target density, even if the previous count was already above that density.

在文件 TerrainDetailLayer.cpp 第 117 行定义.

引用了 eve::procgen::Heightmap::data(), eve::procgen::Heightmap::getHeight(), eve::procgen::Heightmap::getWidth(), index, eve::procgen::raster_detail::invalid(), random, eve::procgen::Remove, eve::procgen::Replace, resource, seed, settings, eve::Result< T >::success(), target, value, x , 以及 z.

◆ clearResource()

Result< int > eve::procgen::TerrainDetailLayer::clearResource ( std::uint64_t  namespaceId)

Remove one resource layer atomically and return its changed cell count.

在文件 TerrainDetailLayer.cpp 第 104 行定义.

引用了 count, found, eve::procgen::raster_detail::invalid() , 以及 eve::Result< T >::success().

◆ getHeight()

int eve::procgen::TerrainDetailLayer::getHeight ( ) const
noexcept

Return height, zero when empty or moved-from.

在文件 TerrainDetailLayer.cpp 第 83 行定义.

◆ getWidth()

int eve::procgen::TerrainDetailLayer::getWidth ( ) const
noexcept

Return width, zero when empty or moved-from.

在文件 TerrainDetailLayer.cpp 第 82 行定义.

◆ operator=() [1/2]

TerrainDetailLayer & eve::procgen::TerrainDetailLayer::operator= ( const TerrainDetailLayer &  other)

Replace with an independent deep value copy.

在文件 TerrainDetailLayer.cpp 第 78 行定义.

◆ operator=() [2/2]

TerrainDetailLayer & eve::procgen::TerrainDetailLayer::operator= ( TerrainDetailLayer &&  )
defaultnoexcept

Transfer ownership, releasing previous counts.

◆ reset()

Result< int > eve::procgen::TerrainDetailLayer::reset ( int  width,
int  height,
int  count = 0 
)

Reset positive dimensions and uniform nonnegative count atomically.

返回
Initialized cell count or InvalidArgument; dimension product must fit int.

在文件 TerrainDetailLayer.cpp 第 84 行定义.

引用了 count, height, eve::procgen::raster_detail::invalid(), eve::Result< T >::success() , 以及 width.

被这些函数引用 eve::procgen::TerrainWorldWorkspace::create().

◆ sample()

Result< int > eve::procgen::TerrainDetailLayer::sample ( int  x,
int  z 
) const

Read an integer value copy; empty state or invalid coordinates return InvalidArgument.

在文件 TerrainDetailLayer.cpp 第 94 行定义.

引用了 eve::procgen::raster_detail::invalid(), eve::Result< T >::success(), x , 以及 z.

◆ sampleResource()

Result< int > eve::procgen::TerrainDetailLayer::sampleResource ( std::uint64_t  namespaceId,
int  x,
int  z 
) const

Read one resource layer without exposing mutable storage; an absent namespace reads as zero.

在文件 TerrainDetailLayer.cpp 第 98 行定义.

引用了 found, eve::procgen::raster_detail::invalid(), eve::Result< T >::success(), x , 以及 z.

友元及相关函数文档

◆ applyTerrainDetailMultiTile

EVENGINE_API_DOMAINS Result< TerrainMultiTileReport > applyTerrainDetailMultiTile ( const std::vector< TerrainDetailTile > &  ,
const Heightmap &  ,
const TerrainDetailSettings &  ,
const TerrainStampSettings &  ,
std::int32_t  ,
bool  ,
const std::vector< std::string > &   
)
friend

Apply one shared Pcg detail-distribution raster to every selected tile atomically.

参数
tilesBorrowed distinct initialized detail owners with matching dimensions and aligned world geometry.
operationFitnessBorrowed finite raster matching the calculated shared operation rectangle.
settingsPcg detail mode, thresholds and target density.
operationSettingsWorld-space operation rectangle used to derive per-tile mappings.
seedExplicit signed seed for one XorshiftPlus stream shared across tiles in descriptor order.
worldMapOperationSelect ordinary or world-map tiles.
validTerrainNamesOptional exact allow-list.
返回
Affected mappings and changed-cell total, or InvalidArgument; all layers publish together. @ownership Retains no pointer or raster. Caller exclusively owns every layer on one thread for the call.

◆ TerrainMultiDetailWorkspace

friend class TerrainMultiDetailWorkspace
friend

在文件 TerrainDetailLayer.h 第 74 行定义.

◆ TerrainWorldWorkspace

friend class TerrainWorldWorkspace
friend

在文件 TerrainDetailLayer.h 第 73 行定义.


该类的文档由以下文件生成: