载入中...
搜索中...
未找到
EditorInspector.h
浏览该文件的文档.
1#pragma once
2
3#include <string>
4#include <vector>
5
6namespace eve::editor {
7
10public:
11 void clear();
12
13 void addFloat(const std::string &id, const std::string &label, float value, float minV,
14 float maxV, float step);
15 void addFloat3(const std::string &id, const std::string &label, float x, float y, float z);
16 void addBool(const std::string &id, const std::string &label, bool value);
17 void addString(const std::string &id, const std::string &label, const std::string &value);
18 void addChoice(const std::string &id, const std::string &label, const std::string &choicesCsv,
19 const std::string &selected);
20
21 int getFieldCount() const { return static_cast<int>(fields_.size()); }
22 std::string getFieldKind(int index) const;
23 std::string getFieldId(int index) const;
24 std::string getFieldLabel(int index) const;
25
26 float getFloat(const std::string &id) const;
27 void setFloat(const std::string &id, float value);
28 float getFloatMin(const std::string &id) const;
29 float getFloatMax(const std::string &id) const;
30 float getFloatStep(const std::string &id) const;
31
32 float getFloat3X(const std::string &id) const;
33 float getFloat3Y(const std::string &id) const;
34 float getFloat3Z(const std::string &id) const;
35 void setFloat3(const std::string &id, float x, float y, float z);
36
37 bool getBool(const std::string &id) const;
38 void setBool(const std::string &id, bool value);
39
40 std::string getString(const std::string &id) const;
41 void setString(const std::string &id, const std::string &value);
42
43 std::string getChoice(const std::string &id) const;
44 void setChoice(const std::string &id, const std::string &value);
45 std::string getChoicesCsv(const std::string &id) const;
46
47 bool isDirty(const std::string &id) const;
48 void clearDirty(const std::string &id);
49 void clearAllDirty();
51 std::string pollChangedId();
52
53private:
54 struct Field {
55 std::string kind; // float | float3 | bool | string | choice
56 std::string id;
57 std::string label;
58 float f0 = 0.f, f1 = 0.f, f2 = 0.f;
59 float minV = 0.f, maxV = 0.f, step = 0.f;
60 bool b = false;
61 std::string s;
62 std::string choices;
63 bool dirty = false;
64 };
65
66 int findIndex(const std::string &id) const;
67 Field *find(const std::string &id);
68 const Field *find(const std::string &id) const;
69
70 std::vector<Field> fields_;
71 int pollCursor_ = 0;
72};
73
74} // namespace eve::editor
Tok kind
std::string value
std::string id
int y
Definition Grass.cpp:135
int z
Definition Grass.cpp:135
int x
Definition Grass.cpp:135
uint32_t b
bool dirty
float step
Definition TreeMesh.cpp:196
uint32_t s
Definition Weather.cpp:28
Property sheet descriptors + values (host renders via ui).
void addFloat(const std::string &id, const std::string &label, float value, float minV, float maxV, float step)
std::string getFieldKind(int index) const
bool isDirty(const std::string &id) const
void setFloat3(const std::string &id, float x, float y, float z)
float getFloatStep(const std::string &id) const
std::string getFieldLabel(int index) const
float getFloat3X(const std::string &id) const
void setChoice(const std::string &id, const std::string &value)
std::string getString(const std::string &id) const
void clearDirty(const std::string &id)
std::string pollChangedId()
Returns next dirty field id, or "" if none.
void setFloat(const std::string &id, float value)
std::string getChoice(const std::string &id) const
std::string getChoicesCsv(const std::string &id) const
void addString(const std::string &id, const std::string &label, const std::string &value)
float getFloat(const std::string &id) const
float getFloat3Z(const std::string &id) const
std::string getFieldId(int index) const
void setString(const std::string &id, const std::string &value)
void setBool(const std::string &id, bool value)
void addBool(const std::string &id, const std::string &label, bool value)
float getFloatMax(const std::string &id) const
float getFloatMin(const std::string &id) const
void addFloat3(const std::string &id, const std::string &label, float x, float y, float z)
bool getBool(const std::string &id) const
void addChoice(const std::string &id, const std::string &label, const std::string &choicesCsv, const std::string &selected)
float getFloat3Y(const std::string &id) const