载入中...
搜索中...
未找到
HouseLayout.h
浏览该文件的文档.
1#pragma once
2#include "common/Export.h"
3
4
5#include "common/ECS.h"
6#include "common/Result.h"
7#include "procgen/Grid2D.h"
8#include "procgen/PointSet.h"
10
11#include <string>
12#include <string_view>
13#include <vector>
14
15namespace eve {
16namespace graphics { class Graphics; class Renderable3D; }
17namespace model3d { class Model3D; }
18namespace housegen {
19
20class HouseComponentLibrary;
21
24public:
25 uint32_t seed = 1;
27 float moduleSize = 1.f;
28 float floorHeight = 3.f;
30 std::string footprintStyle = "rectangle";
31 std::string roofStyle = "gable";
32 std::string entranceSide = "north";
34 int footprintWidth = 0;
35 int footprintDepth = 0;
36 std::vector<uint8_t> footprintMask;
38 std::vector<HouseInstance> instances;
39 std::vector<HouseRoom> rooms;
40 std::vector<std::string> diagnostics;
41
43 void clear();
51 std::string toJson() const;
53 [[nodiscard]] eve::Result<void> fromJson(std::string_view json);
55 [[nodiscard]] eve::Result<void> validate(const HouseComponentLibrary &library) const;
61 [[nodiscard]] eve::Result<void> writeFootprintGrid(procgen::Grid2D &out) const;
67 [[nodiscard]] eve::Result<void> writeComponentPoints(procgen::PointSet &out) const;
75 model3d::Model3D &models,
76 const HouseComponentLibrary &library) const;
77};
78
79} // namespace housegen
80} // namespace eve
#define EVENGINE_API_DOMAINS
Definition Export.h:110
std::uint32_t seed
Definition PointSet.cpp:807
Move-only, checked operation results for the common layer.
Move-only operation result carrying either a value or Status.
Definition Result.h:155
房屋组件注册表(按 id 索引,支持分类/风格查询)。
一次生成的房屋布局:实例 + 房间 + 元信息,可 JSON 序列化 / 实例化。
Definition HouseLayout.h:23
std::vector< HouseRoom > rooms
Definition HouseLayout.h:39
std::vector< uint8_t > footprintMask
Definition HouseLayout.h:36
std::vector< std::string > diagnostics
Definition HouseLayout.h:40
std::vector< HouseInstance > instances
组件实例 / 房间 / 诊断信息。
Definition HouseLayout.h:38
Resource module for decoding 3D models via medialoader (Assimp). Produces ModelData; GPU upload is gr...
Definition Model3D.h:43
Intermediate 2D generation result. cells store semantic ids (see Semantic.h), not tile GIDs — convert...
Definition Grid2D.h:36
Script-friendly collection of attributed 3D samples.
Definition PointSet.h:59
Build metadata (engine git commit, build time, third-party version).
Definition Build.cpp:16