载入中...
搜索中...
未找到
EditorInspector.h
浏览该文件的文档.
1#pragma once
2#include "common/Export.h"
3
4
5#include <string>
6#include <vector>
7
8namespace eve::editor {
9
12public:
14 void clear();
15
17 void addFloat(const std::string &id, const std::string &label, float value, float minV,
18 float maxV, float step);
20 void addFloat3(const std::string &id, const std::string &label, float x, float y, float z);
22 void addBool(const std::string &id, const std::string &label, bool value);
24 void addString(const std::string &id, const std::string &label, const std::string &value);
26 void addChoice(const std::string &id, const std::string &label, const std::string &choicesCsv,
27 const std::string &selected);
28
30 int getFieldCount() const { return static_cast<int>(fields_.size()); }
32 std::string getFieldKind(int index) const;
34 std::string getFieldId(int index) const;
36 std::string getFieldLabel(int index) const;
37
39 float getFloat(const std::string &id) const;
41 void setFloat(const std::string &id, float value);
43 float getFloatMin(const std::string &id) const;
45 float getFloatMax(const std::string &id) const;
47 float getFloatStep(const std::string &id) const;
48
50 float getFloat3X(const std::string &id) const;
52 float getFloat3Y(const std::string &id) const;
54 float getFloat3Z(const std::string &id) const;
56 void setFloat3(const std::string &id, float x, float y, float z);
57
59 bool getBool(const std::string &id) const;
61 void setBool(const std::string &id, bool value);
62
64 std::string getString(const std::string &id) const;
66 void setString(const std::string &id, const std::string &value);
67
69 std::string getChoice(const std::string &id) const;
71 void setChoice(const std::string &id, const std::string &value);
73 std::string getChoicesCsv(const std::string &id) const;
74
76 bool isDirty(const std::string &id) const;
78 void clearDirty(const std::string &id);
80 void clearAllDirty();
82 std::string pollChangedId();
83
84private:
85 struct Field {
86 std::string kind; // float | float3 | bool | string | choice
87 std::string id;
88 std::string label;
89 float f0 = 0.f, f1 = 0.f, f2 = 0.f;
90 float minV = 0.f, maxV = 0.f, step = 0.f;
91 bool b = false;
92 std::string s;
93 std::string choices;
94 bool dirty = false;
95 };
96
97 int findIndex(const std::string &id) const;
98 Field *find(const std::string &id);
99 const Field *find(const std::string &id) const;
100
101 std::vector<Field> fields_;
102 int pollCursor_ = 0;
103};
104
105} // namespace eve::editor
double value
float y
Definition AnimClip.cpp:738
float x
Definition AnimClip.cpp:738
float z
Definition AnimClip.cpp:738
const std::string & s
std::string label
#define EVENGINE_API_ORCHESTRATION
Definition Export.h:111
TokenKind kind
std::set< std::string > choices
MeleePoint3 b
Definition MeleeHit.cpp:41
bool dirty
std::string id
Definition PlayHost.cpp:108
float step
Definition TreeMesh.cpp:314
uint32_t index
Property sheet descriptors + values (host renders via ui).
int getFieldCount() const
Returns the field count.