PeriDyno
1.0.0
Loading...
Searching...
No Matches
D:
Peridyno
peridyno
src
Rendering
GUI
WtGUI
PropertyItem
WVector3FieldWidget.cpp
Go to the documentation of this file.
1
#include "
WVector3FieldWidget.h
"
2
3
WVector3FieldWidget::WVector3FieldWidget
(
dyno::FBase
* field)
4
: Wt::WContainerWidget(),
mData1
(nullptr)
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
mData1
->valueChanged().connect(
this
, &
WVector3FieldWidget::updateField
);
13
mData2
->valueChanged().connect(
this
, &
WVector3FieldWidget::updateField
);
14
mData3
->valueChanged().connect(
this
, &
WVector3FieldWidget::updateField
);
15
}
16
17
WVector3FieldWidget::~WVector3FieldWidget
()
18
{
19
}
20
21
void
WVector3FieldWidget::setValue
(
dyno::FBase
* field)
22
{
23
std::string template_name = field->
getTemplateName
();
24
25
double
v1 = 0;
26
double
v2 = 0;
27
double
v3 = 0;
28
29
if
(template_name == std::string(
typeid
(
dyno::Vec3f
).name()))
30
{
31
dyno::FVar<dyno::Vec3f>
* f =
TypeInfo::cast<dyno::FVar<dyno::Vec3f>
>(field);
32
auto
v = f->
getData
();
33
v1 = v[0];
34
v2 = v[1];
35
v3 = v[2];
36
}
37
else
if
(template_name == std::string(
typeid
(
dyno::Vec3d
).name()))
38
{
39
dyno::FVar<dyno::Vec3d>
* f =
TypeInfo::cast<dyno::FVar<dyno::Vec3d>
>(field);
40
auto
v = f->
getData
();
41
42
v1 = v[0];
43
v2 = v[1];
44
v3 = v[2];
45
}
46
47
mData1
=
layout
->addWidget(std::make_unique<Wt::WDoubleSpinBox>());
48
mData2
=
layout
->addWidget(std::make_unique<Wt::WDoubleSpinBox>());
49
mData3
=
layout
->addWidget(std::make_unique<Wt::WDoubleSpinBox>());
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(0.01);
56
mData2
->setSingleStep(0.01);
57
mData3
->setSingleStep(0.01);
58
59
mData1
->setValue(v1);
60
mData2
->setValue(v2);
61
mData3
->setValue(v3);
62
}
63
64
void
WVector3FieldWidget::updateField
()
65
{
66
double
v1 =
mData1
->value();
67
double
v2 =
mData2
->value();
68
double
v3 =
mData3
->value();
69
70
std::string template_name =
mfield
->getTemplateName();
71
72
if
(template_name == std::string(
typeid
(
dyno::Vec3f
).name()))
73
{
74
dyno::FVar<dyno::Vec3f>
* f =
TypeInfo::cast<dyno::FVar<dyno::Vec3f>
>(
mfield
);
75
f->
setValue
(
dyno::Vec3f
((
float
)v1, (
float
)v2, (
float
)v3));
76
changeValue_
.emit(1);
77
}
78
else
if
(template_name == std::string(
typeid
(
dyno::Vec3d
).name()))
79
{
80
dyno::FVar<dyno::Vec3d>
* f =
TypeInfo::cast<dyno::FVar<dyno::Vec3d>
>(
mfield
);
81
f->
setValue
(
dyno::Vec3d
(v1, v2, v3));
82
changeValue_
.emit(1);
83
}
84
}
WVector3FieldWidget.h
WVector3FieldWidget::changeValue_
Wt::Signal< int > changeValue_
Definition
WVector3FieldWidget.h:37
WVector3FieldWidget::setValue
void setValue(dyno::FBase *)
Definition
WVector3FieldWidget.cpp:21
WVector3FieldWidget::~WVector3FieldWidget
~WVector3FieldWidget()
Definition
WVector3FieldWidget.cpp:17
WVector3FieldWidget::updateField
void updateField()
Definition
WVector3FieldWidget.cpp:64
WVector3FieldWidget::mfield
dyno::FBase * mfield
Definition
WVector3FieldWidget.h:30
WVector3FieldWidget::mData3
Wt::WDoubleSpinBox * mData3
Definition
WVector3FieldWidget.h:34
WVector3FieldWidget::layout
Wt::WHBoxLayout * layout
Definition
WVector3FieldWidget.h:31
WVector3FieldWidget::mData1
Wt::WDoubleSpinBox * mData1
Definition
WVector3FieldWidget.h:32
WVector3FieldWidget::WVector3FieldWidget
WVector3FieldWidget(dyno::FBase *)
Definition
WVector3FieldWidget.cpp:3
WVector3FieldWidget::mData2
Wt::WDoubleSpinBox * mData2
Definition
WVector3FieldWidget.h:33
dyno::FBase
Definition
FBase.h:44
dyno::FBase::getTemplateName
virtual const std::string getTemplateName()
Definition
FBase.h:51
dyno::FBase::getMin
float getMin()
Definition
FBase.h:81
dyno::FBase::getMax
float getMax()
Definition
FBase.h:84
dyno::FVar
Definition
Field.h:34
dyno::FVar::getData
DataType getData()
Definition
Field.h:74
dyno::FVar::setValue
void setValue(T val)
Definition
Field.h:111
TypeInfo::cast
TA * cast(TB *b)
Definition
Typedef.inl:286
dyno::Vec3d
Vector< double, 3 > Vec3d
Definition
Vector3D.h:94
dyno::Vec3f
Vector< float, 3 > Vec3f
Definition
Vector3D.h:93
Generated by
1.13.2