载入中...
搜索中...
未找到
CaveSediment.h
浏览该文件的文档.
1#pragma once
2#include "common/Export.h"
3
4
5#include <cstdint>
6#include <vector>
7
8namespace eve::procgen {
9
12 float x = 0.f, y = 0.f, z = 0.f;
13 float radius = 0.16f;
14};
15
18 float x = 0.f, y = 0.f, z = 0.f;
19 float flowX = 1.f, flowZ = 0.f;
20 float longRadius = 0.035f, thickRadius = 0.012f, shortRadius = 0.022f;
21 float pitch = 0.f;
22};
23
26 float x = 0.f, y = 0.f, z = 0.f;
27 float ceilingY = 0.f;
28 float flowX = 1.f, flowZ = 0.f;
29 float length = 0.18f, width = 0.09f, thickness = 0.025f;
31 float channelLift = 0.f, channelMeander = 0.f;
32 float passageRadius = 0.f, palaeofillY = 0.f;
34 std::vector<CaveSedimentClast> clasts;
35};
36
39 std::vector<CaveSedimentBar> bars;
40 int clastCount = 0;
41 float depositedVolume = 0.f;
45 float maximumCeilingLift = 0.f;
49 float meanNotchThickness = 0.f;
50};
51
61EVENGINE_API_DOMAINS CaveSedimentSet createCaveSediment(const std::vector<CaveSedimentPathPoint>& path, int barCount,
62 float strength, float paragenesis, uint32_t seed);
63
65EVENGINE_API_DOMAINS float carveCaveParagenesis(float x, float y, float z, float current,
67
69EVENGINE_API_DOMAINS float addCaveSediment(float x, float y, float z, float current, const CaveSedimentSet& sediment);
70
72EVENGINE_API_DOMAINS bool isCaveSedimentSurface(float x, float y, float z, float tolerance,
74
75} // namespace eve::procgen
float y
Definition AnimClip.cpp:738
float x
Definition AnimClip.cpp:738
float z
Definition AnimClip.cpp:738
#define EVENGINE_API_DOMAINS
Definition Export.h:110
std::string path
Definition PlayHost.cpp:110
std::uint32_t seed
Definition PointSet.cpp:807
double current
Heightmap sediment
CaveSedimentSet createCaveSediment(const std::vector< CaveSedimentPathPoint > &path, int barCount, float strength, float paragenesis, uint32_t seed)
Create flow-aligned cave sediment bars with upstream-imbricated gravel.
float carveCaveParagenesis(float x, float y, float z, float current, const CaveSedimentSet &sediment)
Carve flow-aligned antigravitative ceiling channels above generated sediment bars.
bool isCaveSedimentSurface(float x, float y, float z, float tolerance, const CaveSedimentSet &sediment)
Test whether a point lies on a generated sediment surface.
float addCaveSediment(float x, float y, float z, float current, const CaveSedimentSet &sediment)
Union sediment bars and imbricated clasts into a cave SDF.
CaveSedimentBar public API.
std::vector< CaveSedimentClast > clasts
CaveSedimentClast public API.
CaveSedimentPathPoint public API.
CaveSedimentSet public API.
std::vector< CaveSedimentBar > bars