载入中...
搜索中...
未找到
CaveDepositAnchoring.cpp
浏览该文件的文档.
9float lengthSquared(CaveFieldPoint point) { return point.x * point.x + point.y * point.y + point.z * point.z; }
24CaveSurfaceAnchor makeAnchor(const std::vector<float>& density, int nx, int ny, int nz, CaveFieldPoint position) {
30std::optional<CaveVerticalSpan> findCaveVerticalSpan(const std::vector<float>& density, int nx, int ny, int nz, float x,
32 if (nx < 2 || ny < 3 || nz < 2 || density.size() != size_t(nx) * size_t(ny) * size_t(nz)) return std::nullopt;
69 selected = &*std::min_element(intervals.begin(), intervals.end(), [preferredY](const auto& a, const auto& b) {
81 if (lengthSquared(span.floor.rockNormal) < 0.5f || lengthSquared(span.ceiling.rockNormal) < 0.5f)
86std::optional<CaveSurfaceAnchor> projectToFinalCaveSurface(const std::vector<float>& density, int nx, int ny, int nz,
88 if (nx < 2 || ny < 2 || nz < 2 || density.size() != size_t(nx) * size_t(ny) * size_t(nz) || maximumDistance <= 0.f)
Definition EvpackPointGraphLoader.h:12
std::optional< CaveSurfaceAnchor > projectToFinalCaveSurface(const std::vector< float > &density, int nx, int ny, int nz, CaveFieldPoint point, float maximumDistance)
Projects a nearby field-space point to the final cave zero isosurface.
Definition CaveDepositAnchoring.cpp:86
std::optional< CaveVerticalSpan > findCaveVerticalSpan(const std::vector< float > &density, int nx, int ny, int nz, float x, float z, float preferredY)
Finds the first connected cave-air interval intersected by a vertical ray.
Definition CaveDepositAnchoring.cpp:30
float sampleCaveDensity(const std::vector< float > &density, int nx, int ny, int nz, CaveFieldPoint point)
Sample cave density.
Definition CaveFieldSampling.cpp:9
CaveFieldPoint sampleCaveDensityGradient(const std::vector< float > &density, int nx, int ny, int nz, CaveFieldPoint point)
Sample cave density gradient.
Definition CaveFieldSampling.cpp:27
CaveFieldPoint rockNormal
Definition CaveDepositAnchoring.h:15
CaveSurfaceAnchor ceiling
Definition CaveDepositAnchoring.h:21