PeriDyno 1.0.0
Loading...
Searching...
No Matches
PTransform3fViewerWidget.cpp
Go to the documentation of this file.
2
3
4
5namespace dyno
6{
7
9 PDataViewerWidget(field, pParent)
10 {
11
12 mfield = field;
13
14 rowsHeight = 80;
15
16
17
19
20 }
21
27
28
30 {
31 //std::string template_name = mfield->getTemplateName();
32
33 CArray<Transform3f>* dataPtr = NULL;
35 // ************************ GPU **************************
36
37 // ************************ GPU **************************
39 if (f_GPU != nullptr)
40 {
41
42 std::shared_ptr<Array<Transform3f, DeviceType::GPU>>& data = f_GPU->getDataPtr();
43
44 cData.assign(*data);
45 dataPtr = &cData;
46
47 }
48
49 // ************************ CPU **************************
51 if (f_CPU != nullptr)
52 {
53 dataPtr = f_CPU->getDataPtr().get();
54 }
55
56
57 if (dataPtr == NULL)
58 return;
59
60
61 //BuildDataTable
62
63 uint rowId = first;
64 uint rowTarget = 0;
65 for (size_t i = first; i <= last; i++)
66 {
67 auto trans = (*dataPtr)[i];
68
69 QString value;
70 for (size_t i = 0; i < 3; i++)
71 {
72 value.append(QString::number(trans.translation()[i]) + ", ");
73 if (i < 2)
74 value.append("\n");
75 }
76 addItemToPosition(value, rowTarget, 0, QString::number(rowId), QString("[") + QString::number(0) + QString("]") + QString(" Translation"), true, rowsHeight);
77
78 value.clear();
79 for (size_t i = 0; i < 3; i++)
80 {
81 value.append(QString::number(trans.rotation()(i, 0)) + ", ");
82 value.append(QString::number(trans.rotation()(i, 1)) + ", ");
83 value.append(QString::number(trans.rotation()(i, 2)) + ", ");
84 if (i < 2)
85 value.append("\n");
86 }
87 addItemToPosition(value, rowTarget, 1, QString::number(rowId), QString("[") + QString::number(1) + QString("]") + QString(" Rotation"), true, rowsHeight);
88
89 value.clear();
90 for (size_t i = 0; i < 3; i++)
91 {
92 value.append(QString::number(trans.scale()[i]) + ",");
93 if (i < 2)
94 value.append("\n");
95 }
96 addItemToPosition(value, rowTarget, 2, QString::number(rowId), QString("[") + QString::number(2) + QString("]") + QString(" Scale"), true, rowsHeight);
97
98 rowId++;
99 rowTarget++;
100
101 }
102
103
104
105 }
106
108 {
109 //std::string template_name = mfield->getTemplateName();
110
111 CArrayList<Transform3f>* dataPtr = NULL;
113
114 // ************************ GPU **************************
115 FArrayList<Transform3f, DeviceType::GPU>* f_GPU = TypeInfo::cast<FArrayList<Transform3f, DeviceType::GPU>>(mfield);
116 if (f_GPU != nullptr)
117 {
118 std::shared_ptr<ArrayList<Transform3f, DeviceType::GPU>>& data = f_GPU->getDataPtr();
119
120 cData.assign(*data);
121 dataPtr = &cData;
122 }
123
124 // ************************ CPU **************************
125 FArrayList<Transform3f, DeviceType::CPU>* f_CPU = TypeInfo::cast<FArrayList<Transform3f, DeviceType::CPU>>(mfield);
126 if (f_CPU != nullptr)
127 {
128 dataPtr = f_CPU->getDataPtr().get();
129 }
130
131
132 if (dataPtr == NULL)
133 return;
134
135 //BuildDataTable
136 uint rowId = first;
137 uint rowTarget = 0;
138 for (size_t i = first; i <= last; i++)
139 {
140 auto it = (*dataPtr)[i];
141
142 for (size_t j = 0; j < it.size(); j++)
143 {
144 auto trans = it[j];
145
146 QString value;
147 for (size_t i = 0; i < 3; i++)
148 {
149 value.append(QString::number(trans.translation()[i]) + ", ");
150 if (i < 2)
151 value.append("\n");
152 }
153 addItemToPosition(value, rowTarget, 3 * j, QString::number(rowId), QString("[") + QString::number(j) + QString("]") + QString(" Translation"), true, rowsHeight);
154
155 value.clear();
156 for (size_t i = 0; i < 3; i++)
157 {
158 value.append(QString::number(trans.rotation()(i, 0)) + ", ");
159 value.append(QString::number(trans.rotation()(i, 1)) + ", ");
160 value.append(QString::number(trans.rotation()(i, 2)) + ", ");
161 if (i < 2)
162 value.append("\n");
163 }
164 addItemToPosition(value, rowTarget, 3 * j + 1, QString::number(rowId), QString("[") + QString::number(j) + QString("]") + QString(" Rotation"), true, rowsHeight);
165
166 value.clear();
167 for (size_t i = 0; i < 3; i++)
168 {
169 value.append(QString::number(trans.scale()[i]) + ",");
170 if (i < 2)
171 value.append("\n");
172 }
173 addItemToPosition(value, rowTarget, 3 * j + 2, QString::number(rowId), QString("[") + QString::number(j) + QString("]") + QString(" Scale"), true, rowsHeight);
174
175 }
176
177
178 rowId ++;
179 rowTarget ++;
180 }
181
182
183
184
185
186 }
187
188
189
191 {
192 //std::string template_name = mfield->getTemplateName();
193
194 // ************************ FVar<Transform3f> **************************
195 {
197 if (f != nullptr)
198 {
199 const auto& trans = f->getValue();
200
201 //BuildDataTable
202 QString value;
203 for (size_t i = 0; i < 3; i++)
204 {
205 value.append(QString::number(trans.translation()[i]) + ", ");
206 if (i < 2)
207 value.append("\n");
208 }
209 addItemToPosition(value, 0, 0, QString("0"), QString(" Translation"), true, rowsHeight);
210
211 value.clear();
212 for (size_t i = 0; i < 3; i++)
213 {
214 value.append(QString::number(trans.rotation()(i, 0)) + ", ");
215 value.append(QString::number(trans.rotation()(i, 1)) + ", ");
216 value.append(QString::number(trans.rotation()(i, 2)) + ", ");
217 if (i < 2)
218 value.append("\n");
219 }
220 addItemToPosition(value, 0, 1, QString("0"), QString(" Rotation"), true, rowsHeight);
221
222 value.clear();
223 for (size_t i = 0; i < 3; i++)
224 {
225 value.append(QString::number(trans.scale()[i]) + ",");
226 if (i < 2)
227 value.append("\n");
228 }
229 addItemToPosition(value, 0, 2, QString("0"), QString(" Scale"), true, rowsHeight);
230
231 }
232 }
233 }
234
235}
T getValue()
Definition Field.h:130
PDataViewerWidget(FBase *field, QWidget *pParent=NULL)
void addItemToPosition(const QString &qstr, int row, int column, const QString &rowName, const QString &columnName, const bool resizeRow=false, const int height=30)
void buildArrayListDataTable(int first, int last) override
PTransform3fViewerWidget(FBase *field, QWidget *pParent=NULL)
void buildArrayDataTable(int first, int last) override
TA * cast(TB *b)
Definition Typedef.inl:286
This is an implementation of AdditiveCCD based on peridyno.
Definition Array.h:25
ArrayList< T, DeviceType::CPU > CArrayList
Definition ArrayList.h:207
Array< T, DeviceType::CPU > CArray
Definition Array.h:151
unsigned int uint
Definition VkProgram.h:14