载入中...
搜索中...
未找到
HeightmapTarget.h
浏览该文件的文档.
1#pragma once
2#include "common/Export.h"
3
4
7
8#include <memory>
9#include <string>
10
11namespace eve::procgen { class Heightmap; }
12
13namespace eve::procgen_editing {
14
18public:
20 HeightmapTarget(std::string id, procgen::Heightmap* heightmap);
22 editing::TargetId targetId() const override { return editing::TargetId(id_); }
24 std::uint64_t revision() const override { return revision_; }
26 editing::EditRegion dirtyRegion() const override { return dirty_; }
28 void clearDirtyRegion() override { dirty_.clear(); }
30 int width() const override;
32 int height() const override;
34 bool containsCell(int x, int y) const override;
36 float readScalar(int x, int y) const override;
38 editing::FieldWriteStatus writeScalar(int x, int y, float value) override;
40 float sampleScalar(float x, float y) const override;
45 procgen::Heightmap* heightmap() const { return heightmap_; }
46
47private:
48 std::string id_;
49 procgen::Heightmap* heightmap_ = nullptr;
50 unsigned long long revision_ = 0;
52};
53
60[[nodiscard]] EVENGINE_API_ORCHESTRATION std::unique_ptr<HeightmapTarget> createHeightmapTarget(
61 std::string id, procgen::Heightmap* heightmap);
62} // namespace eve::procgen_editing
double value
float y
Definition AnimClip.cpp:738
float x
Definition AnimClip.cpp:738
#define EVENGINE_API_ORCHESTRATION
Definition Export.h:111
std::uint32_t height
std::uint32_t width
UUID-backed identifier adapter for legacy textual boundaries.
Definition Identity.h:314
IEditableTarget public API.
IScalarFieldTarget public API.
In-memory terrain heightmap: a dense float grid (row-major, index = y * width + x) materialized from ...
Definition Heightmap.h:21
Non-owning scalar-field adapter for a live procedural heightmap.
void clearDirtyRegion() override
Clears dirty region.
editing::TargetId targetId() const override
Target id.
procgen::Heightmap * heightmap() const
Return the borrowed live heightmap.
editing::EditRegion dirtyRegion() const override
Dirty region.
std::uint64_t revision() const override
Revision.
FieldWriteStatus
FieldWriteStatus public API.
std::unique_ptr< HeightmapTarget > createHeightmapTarget(std::string id, procgen::Heightmap *heightmap)
Create a heightmap adapter.
EditRegion public API.