PeriDyno 1.0.0
Loading...
Searching...
No Matches
WVector3iFieldWidget.cpp
Go to the documentation of this file.
2
4 : Wt::WContainerWidget()
5{
6 layout = this->setLayout(std::make_unique<Wt::WHBoxLayout>());
7 layout->setContentsMargins(0, 0, 0, 0);
8 layout->setSpacing(0);
9
10 setValue(field);
11 mfield = field;
12
13 mData1->valueChanged().connect(this, &WVector3iFieldWidget::updateField);
14 mData2->valueChanged().connect(this, &WVector3iFieldWidget::updateField);
15 mData3->valueChanged().connect(this, &WVector3iFieldWidget::updateField);
16}
17
21
23{
24 std::string template_name = field->getTemplateName();
25
26 int v1 = 0;
27 int v2 = 0;
28 int v3 = 0;
29
30 if (template_name == std::string(typeid(dyno::Vec3i).name()))
31 {
33 auto v = f->getData();
34 v1 = v[0];
35 v2 = v[1];
36 v3 = v[2];
37 }
38 else if (template_name == std::string(typeid(dyno::Vec3u).name()))
39 {
41 auto v = f->getData();
42
43 v1 = v[0];
44 v2 = v[1];
45 v3 = v[2];
46 }
47 mData1 = layout->addWidget(std::make_unique<Wt::WSpinBox>());
48 mData2 = layout->addWidget(std::make_unique<Wt::WSpinBox>());
49 mData3 = layout->addWidget(std::make_unique<Wt::WSpinBox>());
50
51 mData1->setRange(field->getMin(), field->getMax());
52 mData2->setRange(field->getMin(), field->getMax());
53 mData3->setRange(field->getMin(), field->getMax());
54
55 mData1->setSingleStep(1);
56 mData2->setSingleStep(1);
57 mData3->setSingleStep(1);
58
59 mData1->setValue(v1);
60 mData2->setValue(v2);
61 mData3->setValue(v3);
62}
63
65{
66 int v1 = mData1->value();
67 int v2 = mData2->value();
68 int v3 = mData3->value();
69
70 std::string template_name = mfield->getTemplateName();
71
72 if (template_name == std::string(typeid(dyno::Vec3i).name()))
73 {
75 f->setValue(dyno::Vec3i(v1, v2, v3));
76 changeValue_.emit(1);
77 }
78 else if (template_name == std::string(typeid(dyno::Vec3u).name()))
79 {
81 f->setValue(dyno::Vec3u(v1, v2, v3));
82 changeValue_.emit(1);
83 }
84}
void setValue(dyno::FBase *)
WVector3iFieldWidget(dyno::FBase *)
Wt::Signal< int > changeValue_
virtual const std::string getTemplateName()
Definition FBase.h:51
float getMin()
Definition FBase.h:81
float getMax()
Definition FBase.h:84
DataType getData()
Definition Field.h:74
void setValue(T val)
Definition Field.h:111
TA * cast(TB *b)
Definition Typedef.inl:286
Vector< uint, 3 > Vec3u
Definition Vector3D.h:96
Vector< int, 3 > Vec3i
Definition Vector3D.h:95