载入中...
搜索中...
未找到
GridConfig.h
浏览该文件的文档.
1#pragma once
2
3// 统一网格抽象:与具体模块(building / map)解耦的纯数据结构。
4// 布局/拓扑 + 单元尺寸/间距 + 原点 + stagger 参数 + 平面轴。
5// 坐标换算全部是纯函数(GridProjection.h),本头文件零依赖。
6
7#include <string>
8
9namespace eve::grid {
10
12enum class StaggerAxis { X, Y };
13enum class StaggerIndex { Odd, Even };
14
20enum class GridPlane { XY, XZ };
21
23struct GridConfig {
26 float cellW = 32.f;
27 float cellH = 32.f;
28 float cellGapX = 0.f;
29 float cellGapY = 0.f;
30 float originX = 0.f;
31 float originY = 0.f;
34 float hexSideLength = 0.f;
35
36 static const char *layoutName(GridLayout l);
37 static GridLayout layoutFromName(const std::string &name);
38 static const char *planeName(GridPlane p);
39 static GridPlane planeFromName(const std::string &name);
40};
41
43inline float cellPitchX(const GridConfig &cfg) { return cfg.cellW + cfg.cellGapX; }
44inline float cellPitchY(const GridConfig &cfg) { return cfg.cellH + cfg.cellGapY; }
45
46} // namespace eve::grid
glm::vec4 p[6]
const char * name
Definition RockMesh.cpp:21
float cellPitchY(const GridConfig &cfg)
Definition GridConfig.h:44
float cellPitchX(const GridConfig &cfg)
Definition GridConfig.h:43
static const char * layoutName(GridLayout l)
Definition GridConfig.cpp:5
static const char * planeName(GridPlane p)
static GridPlane planeFromName(const std::string &name)
StaggerAxis staggerAxis
Definition GridConfig.h:32
StaggerIndex staggerIndex
Definition GridConfig.h:33
static GridLayout layoutFromName(const std::string &name)