载入中...
搜索中...
未找到
HexFogMesh.cpp
浏览该文件的文档.
59void emitTriangle(HexMeshData& out, const HexVec3& p0, const HexVec3& p1, const HexVec3& p2, float shade) {
80void appendFogColumn(const HexMap& map, HexCoordinates coordinates, float shade, HexMeshData& out) {
116void buildFogMesh(const HexMap& map, const HexVisibility& visibility, std::int32_t chunkIndex, HexMeshData& out) {
Axial hex coordinates and world-space conversion.
Per-chunk mesh generation for every hex map surface.
Editable hex cell grid: topology, queries, picking and authoring.
CPU vertex/index container shared by the hex surface builders.
Pointy-top hex metrics, directions and vertex helpers.
Deterministic asset-free noise for hex perturbation and generation.
Reference-counted cell visibility and explored state.
std::int32_t indexOf(HexCoordinates coordinates) const noexcept
Linear cell index of coordinates (offset order), or -1 when outside the grid.
Definition HexMap.cpp:64
bool contains(HexCoordinates coordinates) const noexcept
Whether coordinates address a cell inside the grid.
Definition HexMap.h:122
bool isExplored(HexCoordinates c) const noexcept
Whether a cell has ever been seen by a viewer (the fog-of-war latch).
Definition HexMap.cpp:348
HexCoordinates chunkCell(std::int32_t chunkIndex, std::int32_t column, std::int32_t row) const noexcept
Coordinates of the cell at (column, row) inside a chunk.
Definition HexMap.cpp:115
CPU-side triangle soup for one hex chunk surface.
Definition HexMeshData.h:24
void finalize() noexcept
Computes flat per-face normals. Must be called before upload.
Definition HexMeshData.cpp:35
void clear() noexcept
Removes every vertex and index, keeping the allocated capacity.
Definition HexMeshData.cpp:7
static float waterSurfaceY(int waterLevel) noexcept
Y coordinate of a water surface at waterLevel.
Definition HexMetrics.h:273
static float elevationY(int elevation) noexcept
Y coordinate of a cell's elevation surface.
Definition HexMetrics.h:265
static HexVec3 corner(HexDirection direction, float scale=1.f) noexcept
Outer corner direction of a unit hex, scaled by scale.
Definition HexMetrics.h:183
Fog-of-war bookkeeping: how many viewers currently see each cell.
Definition HexVisibility.h:32
bool isVisible(std::int32_t cellIndex) const noexcept
Whether any viewer currently sees the cell.
Definition HexVisibility.cpp:39
Definition HexCell.h:9
constexpr std::int32_t kHexDirectionCount
Number of hex edges / facing directions.
Definition HexMetrics.h:62
constexpr HexDirection next(HexDirection d) noexcept
The next direction clockwise (NW wraps to NE).
Definition HexMetrics.h:76
void buildFogMesh(const HexMap &map, const HexVisibility &visibility, std::int32_t chunkIndex, HexMeshData &out)
Builds the fog-of-war overlay of one chunk.
Definition HexFogMesh.cpp:116