载入中...
搜索中...
未找到
Procgen.h
浏览该文件的文档.
117using ProcgenTerrainSamplerHandleRef = eve::script::RuntimeHandleRef<ProcgenTerrainSamplerHandleTag>;
126using ProcgenRuntimeGenerationHandleRef = eve::script::RuntimeHandleRef<ProcgenRuntimeGenerationHandleTag>;
128using ProcgenMeshModifierGraphHandleRef = eve::script::RuntimeHandleRef<ProcgenMeshModifierGraphHandleTag>;
129using ProcgenMeshDeformationSessionHandleRef = eve::script::RuntimeHandleRef<ProcgenMeshDeformationSessionHandleTag>;
136using ProcgenShapeGrammarHandleRef = eve::script::RuntimeHandleRef<ProcgenShapeGrammarHandleTag>;
160 [[nodiscard]] static eve::script::Borrowed<Params> resolve(ProcgenParamsHandleRef reference) noexcept;
168 [[nodiscard]] eve::script::Borrowed<OutputSpec> resolveOutput(ProcgenOutputHandleRef reference) noexcept;
176 [[nodiscard]] static eve::script::Borrowed<Grid2D> resolve(ProcgenGridHandleRef reference) noexcept;
186 [[nodiscard]] eve::script::Borrowed<PointSet> resolvePointSet(ProcgenPointSetHandleRef reference) noexcept;
191 [[nodiscard]] eve::Result<ProcgenPointSetHandleRef> sampleGridHandle(int width, int depth, float spacing,
194 [[nodiscard]] eve::Result<ProcgenPointSetHandleRef> filterHeightHandle(ProcgenPointSetHandleRef input,
197 [[nodiscard]] eve::Result<ProcgenPointSetHandleRef> filterDensityHandle(ProcgenPointSetHandleRef input,
200 [[nodiscard]] eve::Result<ProcgenPointSetHandleRef> filterBoxHandle(ProcgenPointSetHandleRef input, float minX,
204 [[nodiscard]] eve::Result<ProcgenPointSetHandleRef> filterSlopeHandle(ProcgenPointSetHandleRef input,
207 [[nodiscard]] eve::Result<ProcgenPointSetHandleRef> filterPolygonHandle(ProcgenPointSetHandleRef input,
212 ProcgenPointSetHandleRef input, ProcgenPointSetHandleRef controlPoints, float minDistance, float maxDistance);
214 [[nodiscard]] eve::Result<ProcgenPointSetHandleRef> excludeRadiusHandle(ProcgenPointSetHandleRef input, float x,
217 [[nodiscard]] eve::Result<ProcgenPointSetHandleRef> jitterPointsHandle(ProcgenPointSetHandleRef input,
220 [[nodiscard]] eve::Result<ProcgenPointSetHandleRef> selfPruneHandle(ProcgenPointSetHandleRef input, float radius);
222 [[nodiscard]] eve::Result<ProcgenPointSetHandleRef> projectToHeightmapHandle(ProcgenPointSetHandleRef input,
227 [[nodiscard]] eve::Result<ProcgenPointSetHandleRef> sampleSplineHandle(ProcgenPointSetHandleRef controlPoints,
231 [[nodiscard]] eve::Result<ProcgenPointSetHandleRef> poissonDiskHandle(int width, int depth, float radius,
234 [[nodiscard]] eve::Result<ProcgenPointSetHandleRef> mergePointsHandle(ProcgenPointSetHandleRef first,
237 [[nodiscard]] eve::Result<ProcgenPointSetHandleRef> unionPointsHandle(ProcgenPointSetHandleRef first,
240 [[nodiscard]] eve::Result<ProcgenPointSetHandleRef> intersectPointsHandle(ProcgenPointSetHandleRef first,
243 [[nodiscard]] eve::Result<ProcgenPointSetHandleRef> differencePointsHandle(ProcgenPointSetHandleRef first,
246 [[nodiscard]] eve::Result<ProcgenPointSetHandleRef> transformPointsHandle(ProcgenPointSetHandleRef input,
252 ProcgenPointSetHandleRef input, float translateX, float translateY, float translateZ, float pitchDegrees,
255 [[nodiscard]] eve::Result<ProcgenPointSetHandleRef> copyPointsHandle(ProcgenPointSetHandleRef source,
259 [[nodiscard]] eve::Result<ProcgenPointSetHandleRef> remapDensityHandle(ProcgenPointSetHandleRef input,
264 [[nodiscard]] eve::Result<ProcgenPointSetHandleRef> mathFloatAttributeHandle(ProcgenPointSetHandleRef input,
270 [[nodiscard]] eve::Result<ProcgenPointSetHandleRef> filterFloatAttributeHandle(ProcgenPointSetHandleRef input,
275 [[nodiscard]] eve::Result<ProcgenPointSetHandleRef> filterStringAttributeHandle(ProcgenPointSetHandleRef input,
281 ProcgenPointSetHandleRef input, ProcgenGridHandleRef mask, float originX, float originZ, float cellSize,
284 [[nodiscard]] eve::Result<ProcgenPointSetHandleRef> densityCullHandle(ProcgenPointSetHandleRef input, uint32_t seed,
287 [[nodiscard]] eve::Result<ProcgenPointSetHandleRef> projectToWorldHandle(ProcgenPointSetHandleRef input, float maxY,
293 [[nodiscard]] eve::Result<ProcgenSpatialDataHandleRef> pointDataHandle(ProcgenPointSetHandleRef points);
295 [[nodiscard]] eve::Result<ProcgenSpatialDataHandleRef> boxVolumeHandle(float minX, float minY, float minZ,
298 [[nodiscard]] eve::Result<ProcgenSpatialDataHandleRef> sphereVolumeHandle(float x, float y, float z, float radius);
300 [[nodiscard]] eve::Result<ProcgenSpatialDataHandleRef> polygonVolumeHandle(ProcgenPointSetHandleRef controlPoints,
303 [[nodiscard]] eve::Result<ProcgenSpatialDataHandleRef> splineDataHandle(ProcgenPointSetHandleRef controlPoints,
306 [[nodiscard]] eve::Result<ProcgenSpatialDataHandleRef> heightfieldDataHandle(ProcgenHeightmapHandleRef heightmap,
310 [[nodiscard]] eve::Result<ProcgenSpatialDataHandleRef> textureMaskDataHandle(ProcgenHeightmapHandleRef values,
316 [[nodiscard]] eve::Result<ProcgenSpatialDataHandleRef> meshSurfaceDataHandle(ProcgenMeshBuildHandleRef mesh,
319 [[nodiscard]] eve::Result<ProcgenSpatialDataHandleRef> unionSpatialHandle(ProcgenSpatialDataHandleRef left,
322 [[nodiscard]] eve::Result<ProcgenSpatialDataHandleRef> intersectSpatialHandle(ProcgenSpatialDataHandleRef left,
325 [[nodiscard]] eve::Result<ProcgenSpatialDataHandleRef> differenceSpatialHandle(ProcgenSpatialDataHandleRef left,
328 [[nodiscard]] eve::Result<ProcgenPointSetHandleRef> sampleSpatialHandle(ProcgenSpatialDataHandleRef spatial,
331 [[nodiscard]] eve::Result<ProcgenPointSetHandleRef> filterSpatialHandle(ProcgenPointSetHandleRef input,
335 [[nodiscard]] eve::Result<ProcgenPointSetHandleRef> projectToSpatialHandle(ProcgenPointSetHandleRef input,
339 [[nodiscard]] eve::Result<ProcgenRuntimeGenerationHandleRef> newRuntimeGenerationHandle(uint32_t worldSeed);
345 [[nodiscard]] eve::Result<ProcgenMeshDeformationSessionHandleRef> newMeshDeformationSessionHandle();
347 [[nodiscard]] eve::Result<ProcgenDynamicMeshUvPaintSessionHandleRef> newDynamicMeshUvPaintSessionHandle();
355 [[nodiscard]] eve::script::Borrowed<SpatialData> resolveSpatialData(ProcgenSpatialDataHandleRef reference) noexcept;
359 [[nodiscard]] eve::script::Borrowed<PointGraph> resolvePointGraph(ProcgenPointGraphHandleRef reference) noexcept;
367 [[nodiscard]] eve::script::Borrowed<DynamicMeshUvPaintSession> resolveDynamicMeshUvPaintSession(
370 [[nodiscard]] eve::script::Borrowed<SplinePath> resolveSplinePath(ProcgenSplinePathHandleRef reference) noexcept;
371 [[nodiscard]] eve::script::Borrowed<GridGraph> resolveGridGraph(ProcgenGridGraphHandleRef reference) noexcept;
372 [[nodiscard]] eve::script::Borrowed<MeshGraph> resolveMeshGraph(ProcgenMeshGraphHandleRef reference) noexcept;
373 [[nodiscard]] eve::script::Borrowed<BiomeRules> resolveBiomeRules(ProcgenBiomeRulesHandleRef reference) noexcept;
377 [[nodiscard]] eve::script::Borrowed<LSystem> resolveLSystem(ProcgenLSystemHandleRef reference) noexcept;
414 [[nodiscard]] eve::Result<void> publishInstances(const std::string& batchId, ProcgenPointSetHandleRef points,
420 [[nodiscard]] eve::Result<void> publishCellInstances(const std::string& prefix, const ProcgenCellRequest& request,
496 [[nodiscard]] eve::Result<void> removeCellInstances(const std::string& prefix, const ProcgenCellRequest& request);
535 [[nodiscard]] static eve::Result<ProcgenContextHandleRef> beginSystemHandle(const std::string& name, uint32_t seed);
537 [[nodiscard]] static eve::Result<ProcgenContextHandleRef> beginCachedSystemHandle(const std::string& name,
541 [[nodiscard]] static eve::script::Borrowed<ProcgenContext> resolve(ProcgenContextHandleRef reference) noexcept;
565 [[nodiscard]] eve::Result<ProcgenPointSetHandleRef> getSystemOutputHandle(const std::string& name,
568 [[nodiscard]] eve::Result<ProcgenPointSetHandleRef> getSystemDebugStageHandle(const std::string& name,
585 [[nodiscard]] eve::Result<void> generateTo(const std::string& algorithmId, ProcgenParamsHandleRef params,
588 [[nodiscard]] eve::Result<void> applyToLayer(ProcgenGridHandleRef grid, const std::string& palette,
603 [[nodiscard]] eve::Result<RecipeDescriptor> getAlgorithmSchema(const std::string& algorithmId) const;
655 std::string getAlgorithmParamChoice(const std::string& algorithmId, int paramIndex, int choiceIndex) const;
676 [[nodiscard]] eve::Result<ProcgenImageHandleRef> generateImageHandle(const std::string& recipeId,
690 [[nodiscard]] static eve::script::Borrowed<image::ImageData> resolve(ProcgenImageHandleRef reference) noexcept;
705 [[nodiscard]] eve::Result<ProcgenNormalImageHandleRef> generateNormalImageHandle(const std::string& recipeId,
747 [[nodiscard]] eve::script::Borrowed<graphics::Texture> generateTextureBorrowed(const std::string& recipeId,
758 [[nodiscard]] eve::Result<RecipeDescriptor> getTextureRecipeSchema(const std::string& recipeId) const;
766 [[nodiscard]] eve::script::Borrowed<CloudField> resolveCloudField(ProcgenCloudFieldHandleRef) noexcept;
771 [[nodiscard]] eve::script::Borrowed<CloudShadow> resolveCloudShadow(ProcgenCloudShadowHandleRef) noexcept;
775 [[nodiscard]] eve::Result<float> cloudCoverageAt(ProcgenCloudFieldHandleRef field, float x, float z, float time);
777 [[nodiscard]] eve::Result<float> cloudShadowFactor(ProcgenCloudShadowHandleRef shadow, float x, float z,
780 [[nodiscard]] eve::Result<void> sampleCloud(ProcgenCloudFieldHandleRef field, std::span<float> out, int w, int h,
783 [[nodiscard]] eve::Result<void> sampleCloudShadow(ProcgenCloudShadowHandleRef shadow, std::span<float> out, int w,
791 [[nodiscard]] eve::Result<ProcgenPbrMaterialHandleRef> generatePbrMaterialHandle(const std::string& recipeId,
794 [[nodiscard]] eve::script::Borrowed<PbrTextureSet> resolvePbrMaterial(ProcgenPbrMaterialHandleRef) noexcept;
807 [[nodiscard]] eve::Result<RecipeDescriptor> getPbrRecipeSchema(const std::string& recipeId) const;
818 [[nodiscard]] eve::Result<ProcgenMeshBuildHandleRef> buildMeshHandle(const std::string& recipeId,
821 [[nodiscard]] eve::script::Borrowed<MeshBuild> resolveMeshBuild(ProcgenMeshBuildHandleRef) noexcept;
888 [[nodiscard]] eve::script::Borrowed<graphics::Mesh> generateMeshBorrowed(const std::string& recipeId,
899 [[nodiscard]] eve::Result<RecipeDescriptor> getMeshRecipeSchema(const std::string& recipeId) const;
907 [[nodiscard]] eve::script::Borrowed<TerrainSampler> resolveTerrainSampler(ProcgenTerrainSamplerHandleRef) noexcept;
916 [[nodiscard]] eve::script::Borrowed<Heightmap> resolveHeightmap(ProcgenHeightmapHandleRef) noexcept;
924 bool erodeTerrainHydraulic(Heightmap* heightmap, int iterations, float rainfall, float evaporation, float capacity,
927 bool erodeTerrainFluvial(Heightmap* heightmap, int iterations, float riverThreshold, float incision, float maxDepth,
930 bool erodeTerrainFluvialAdvanced(Heightmap* heightmap, int iterations, float riverThreshold, float incision,
933 bool erodeTerrainFluvialScaled(Heightmap* heightmap, int iterations, float riverThreshold, float incision,
936 TerrainErosionMap* erodeTerrainFluvialDetailed(Heightmap* heightmap, int iterations, float riverThreshold,
940 TerrainLayers* analyzeTerrain(Heightmap* heightmap, float riverThreshold, float seaLevel, float latitude);
942 TerrainLayers* analyzeTerrainScaled(Heightmap* heightmap, float riverThreshold, float seaLevel, float latitude,
947 TerrainMeshChunk* buildTerrainChunk(Heightmap* heightmap, TerrainLayers* layers, int originX, int originY,
951 int selectTerrainLod(Heightmap* heightmap, int originX, int originY, int cellsX, int cellsY, int maxLod,
957 graphics::Mesh* generateTerrainRiverMesh(Heightmap* heightmap, TerrainLayers* layers, graphics::Graphics* gfx,
967 graphics::Mesh* generateTerrainLakeMesh(Heightmap* heightmap, TerrainLayers* layers, graphics::Graphics* gfx,
985 [[nodiscard]] eve::Result<ProcgenHeightmapHandleRef> generateHeightmapHandle(ProcgenParamsHandleRef params);
987 [[nodiscard]] eve::Result<ProcgenGridHandleRef> heightmapToGrid(ProcgenHeightmapHandleRef heightmap,
1014 eve::script::RuntimeObjectRegistry<RuntimeGeneration, ProcgenRuntimeGenerationHandleTag> runtimeGenerations_;
1016 eve::script::RuntimeObjectRegistry<MeshModifierGraph, ProcgenMeshModifierGraphHandleTag> meshModifierGraphs_;
1017 eve::script::RuntimeObjectRegistry<MeshDeformationSession, ProcgenMeshDeformationSessionHandleTag>
1019 eve::script::RuntimeObjectRegistry<DynamicMeshUvPaintSession, ProcgenDynamicMeshUvPaintSessionHandleTag>
Explicit Value/Owned/Borrowed semantics at the Squirrel boundary.
In-memory byte buffer implementing eve::Data (ref-counted).
Definition ByteData.h:13
Definition Graphics.h:125
ECS tile layer entity. Script mutates tile GIDs / tileset / draw; TileRenderSystem batch-draws atlas ...
Definition TileLayer.h:32
In-memory owner and publisher for generated artifacts.
Definition GeneratedArtifact.h:227
Data-driven biome distribution rules compatible with PointGraph and scene batches.
Definition Biome.h:40
Integrates dynamic-mesh hit mapping with the canonical image UV-paint session.
Definition DynamicMeshUvPaintSession.h:19
Intermediate 2D generation result. cells store semantic ids (see Semantic.h), not tile GIDs — convert...
Definition Grid2D.h:36
Deterministic data-flow graph for grid generation and explicit grid-to-point composition.
Definition GridGraph.h:35
Owned result of the GTS split-and-sequential-simplify pipeline.
Definition GtsTerrainLod.h:112
In-memory terrain heightmap: a dense float grid (row-major, index = y * width + x) materialized from ...
Definition Heightmap.h:21
CPU triangle mesh from procedural mesh recipes (e.g. marching cubes). Positions/normals are xyz-packe...
Definition MeshBuild.h:19
Stateful CPU sculpting session with explicit bake, restore, and undo semantics.
Definition MeshDeformationSession.h:25
Typed procedural mesh graph composing grid, point and topology domains.
Definition MeshGraph.h:21
Deterministic CPU data-flow graph for procedural mesh deformation and composition.
Definition MeshModifierGraph.h:47
Named palette: semantic name -> tile GID. Unmapped semantics become GID 0.
Definition Palette.h:16
Owned generic mesh LOD output generated with Pcg's independent-per-level policy.
Definition PcgMeshLod.h:144
One immutable runtime-generation cell request returned to script.
Definition RuntimeGeneration.h:17
Staging area for one atomic rebuild of a named procedural system.
Definition ProcgenSystem.h:34
Procedural generation module. Phase A: runtime maps (semantic Grid2D → TileLayer)....
Definition Procgen.h:146
const ArtifactStore & artifactStore() const noexcept
Borrow the compatibility facade's published CPU artifact store.
Definition Procgen.h:848
Module_REG(Procgen)
bool heightmapToGrid(Heightmap *heightmap, Params *params, Grid2D *out)
Compatibility facade that classifies a heightmap into a semantic Grid2D.
View-driven partition and hierarchical procedural generation scheduler.
Definition RuntimeGeneration.h:115
Module-based shape grammar expanded continuously along a 3D polyline.
Definition ShapeGrammar.h:27
Queryable spatial input for procedural pipelines.
Definition SpatialData.h:35
Owning multi-segment 3D spline with deterministic bounded sampling.
Definition SplinePath.h:91
Script-friendly ownership wrapper for baked hydrology and climate layers.
Definition TerrainPipeline.h:77
One renderable heightfield chunk plus four ecological material weights.
Definition TerrainMesh.h:27
Non-owning C++ observation with no implicit lifetime extension.
Definition RuntimeRegistry.h:42
@ ImageData
Definition ByteData.cpp:7
卡牌游戏 UI 工具模块:工厂 + 脚本绑定入口。 功能参考 ycarowr/UiCard:扇形手牌布局、抽牌/洗牌、悬浮放大、拖拽到落牌区、 敌方手牌(背面/偷看)、费用不足置灰,以及可实时调节的布局...
Definition Animation.h:25
Definition AvatarInstance.h:25
Definition EvpackPointGraphLoader.h:12
std::string gridToJson(const Grid2D &grid)
Compact JSON for debugging / reload workflows (not full Tiled).
Definition JsonExport.cpp:29
uint32_t deriveSeed(uint32_t parent, const std::string &scope)
Stable label-based seed derivation; independent pipeline branches do not perturb each other.
Definition PointSet.cpp:459
@ Graphics
Definition Container.h:602
Required provider set for one artifact publication transaction.
Definition ArtifactPublication.h:179
Transactional identity-based change set between two point snapshots.
Definition PointDelta.h:16
Handle domain for module-owned biome rules.
Definition Procgen.h:107
Handle domain for module-owned cloud fields.
Definition Procgen.h:77
Handle domain for module-owned cloud shadow fields.
Definition Procgen.h:79
Handle domain for module-owned procedural rebuild contexts.
Definition Procgen.h:67
Handle domain for module-owned dynamic-mesh UV paint sessions.
Definition Procgen.h:99
Handle domain for module-owned grid graphs.
Definition Procgen.h:103
Handle domain for module-owned procedural grids.
Definition Procgen.h:65
Handle domain for module-owned heightmaps.
Definition Procgen.h:75
Handle domain for module-owned generated images.
Definition Procgen.h:85
Handle domain for module-owned L-system engines.
Definition Procgen.h:111
Handle domain for module-owned CPU mesh builds.
Definition Procgen.h:83
Handle domain for module-owned interactive mesh deformation sessions.
Definition Procgen.h:97
Handle domain for module-owned mesh graphs.
Definition Procgen.h:105
Handle domain for module-owned mesh modifier graphs.
Definition Procgen.h:95
Handle domain for module-owned generated normal images.
Definition Procgen.h:87
Handle domain for module-owned output specifications.
Definition Procgen.h:69
Handle domain for module-owned procedural parameter objects.
Definition Procgen.h:63
Handle domain for module-owned PBR material sets.
Definition Procgen.h:81
Handle domain for module-owned point graphs.
Definition Procgen.h:93
Handle domain for module-owned point-set intermediates.
Definition Procgen.h:71
Handle domain for module-owned runtime-generation schedulers.
Definition Procgen.h:91
Handle domain for module-owned shape grammars.
Definition Procgen.h:109
Handle domain for module-owned spatial data.
Definition Procgen.h:89
Handle domain for module-owned 3D spline paths.
Definition Procgen.h:101
Immutable committed snapshot retained by Procgen across script reloads.
Definition ProcgenSystem.h:131
Handle domain for module-owned terrain samplers.
Definition Procgen.h:73
Per-cell diagnostic outputs produced by an erosion stage.
Definition TerrainPipeline.h:59