载入中...
搜索中...
未找到
GtsMeshSplitter.h
浏览该文件的文档.
1#pragma once
2
3#include "common/Result.h"
4#include "procgen/MeshBuild.h"
5#include <memory>
6#include <vector>
7
8namespace eve::procgen {
9
11enum class GtsMeshPivot { None=0, MinimumXZ=1, CenterXZ=2 };
12
16 float offsetX=0.f,offsetZ=0.f;
17};
18
21public:
23 int getColumnCount() const noexcept { return columns_; }
25 int getRowCount() const noexcept { return rows_; }
27 int getTileCount() const noexcept { return static_cast<int>(tiles_.size()); }
33 const GtsMeshSplitTile* tileAt(int index) const noexcept;
35 [[nodiscard]] std::unique_ptr<MeshBuild> copyTileMesh(int index) const;
37 float getTileOffsetX(int index) const noexcept;
39 float getTileOffsetZ(int index) const noexcept;
40private:
43 int columns_=0,rows_=0;
44 std::vector<GtsMeshSplitTile> tiles_;
45};
46
55[[nodiscard]] EVENGINE_API_DOMAINS Result<GtsMeshSplitResult> splitGtsMesh(const MeshBuild& source, int xSplits,
56 int zSplits,
59[[nodiscard]] Result<void> splitGtsMeshInto(GtsMeshSplitResult& output,const MeshBuild& source,
60 int xSplits,int zSplits,GtsMeshPivot pivot=GtsMeshPivot::None);
61}
std::string output
#define EVENGINE_API_DOMAINS
Definition Export.h:110
Move-only, checked operation results for the common layer.
uint32_t index
const UnitySourceAsset & source
Move-only operation result carrying either a value or Status.
Definition Result.h:155
Owned row-major result of a GTS X/Z plane split.
int getColumnCount() const noexcept
Return the number of output columns.
int getRowCount() const noexcept
Return the number of output rows.
int getTileCount() const noexcept
Return the number of retained row-major cells.
CPU triangle mesh from procedural mesh recipes (e.g. marching cubes). Positions/normals are xyz-packe...
Definition MeshBuild.h:19
Result< GtsMeshSplitResult > splitGtsMesh(const MeshBuild &source, int xSplits, int zSplits, GtsMeshPivot pivot)
Split every source triangle against a regular X/Z grid like GTSMeshSplitter.
Result< void > splitGtsMeshInto(GtsMeshSplitResult &output, const MeshBuild &source, int xSplits, int zSplits, GtsMeshPivot pivot)
Atomically replace an owned result with a GTS mesh split.
GtsMeshPivot
Pivot translation applied independently to each GTS split mesh.
One row-major GTS mesh cell and the world offset restoring its source position.