Physics Simulation & Visualization Tool 0.1
A C++ physics simulation engine with real-time 3D visualization
Loading...
Searching...
No Matches
TransformInspectorWidget.cpp
Go to the documentation of this file.
2
3#include <QFormLayout>
5
7 layout = new QFormLayout(this);
8 layout->setContentsMargins(6, 6, 6, 6);
9 layout->setSpacing(4);
10 setLayout(layout);
11 createUiComponents();
12}
13
15 selectedObject = object;
16
17 this->setVisible(true);
18 this->setEnabled(true);
19
20 refresh();
21}
22
24 selectedObject = nullptr;
25 this->setVisible(false);
26}
27
29 for (auto& row : rows)
30 row.refresh();
31}
32
33void TransformInspectorWidget::createUiComponents() {
34 {
35 InspectorRow row("Position", this);
36 row.addVec3(
37 [this]() {
38 return selectedObject ? selectedObject->getPosition() : glm::vec3(0.0f);
39 },
40 [this](glm::vec3 v) {
41 if (selectedObject) selectedObject->setPosition(v);
42 },
43 "m"
44 );
45 layout->addRow(row.getLabel(), row.getEditor());
46 rows.push_back(std::move(row));
47 }
48
49 {
50 InspectorRow row("Rotation", this);
51 row.addVec3(
52 [this]() {
53 return selectedObject ? selectedObject->getRotation() : glm::vec3(0.0f);
54 },
55 [this](glm::vec3 v) {
56 if (selectedObject) selectedObject->setRotation(v);
57 },
58 "rad"
59 );
60 layout->addRow(row.getLabel(), row.getEditor());
61 rows.push_back(std::move(row));
62 }
63
64 {
65 InspectorRow row("Scale", this);
66 row.addVec3(
67 [this]() {
68 return selectedObject ? selectedObject->getScale() : glm::vec3(1.0f);
69 },
70 [this](glm::vec3 v) {
71 if (selectedObject) selectedObject->setScale(v);
72 }
73 );
74 layout->addRow(row.getLabel(), row.getEditor());
75 rows.push_back(std::move(row));
76 }
77}
Abstract base class for inspector panel sections.
glm::vec3 getRotation() const
void setScale(const glm::vec3 &scl)
glm::vec3 getPosition() const
glm::vec3 getScale() const
void setRotation(const glm::vec3 &rot)
void setPosition(const glm::vec3 &pos)
void refresh() override
Updates UI widgets from the current object's state.
void unload() override
Unloads the current object and clears section state.
void load(SceneObject *object) override
Loads and binds this section to a scene object.
TransformInspectorWidget(QWidget *parent=nullptr)