PeriDyno 1.0.0
Loading...
Searching...
No Matches
PVec2FieldViewerWidget.cpp
Go to the documentation of this file.
2#include <QHeaderView>
3#include "Vector/Vector3D.h"
4#include "Vector/Vector2D.h"
6
7namespace dyno
8{
9
11 PDataViewerWidget(field, pParent)
12 {
13 mfield = field;
14
15
17
18
19 }
20
21
26
27
29 {
30
31
32 // ************************ Vec2f **************************
33 {
34 CArray<Vec2f>* cVec2f = NULL;
35 CArray<Vec2f> cData;
36
37 // ************************ GPU **************************
39 if (f_GPU != nullptr)
40 {
41 std::shared_ptr<Array<Vec2f, DeviceType::GPU>>& data = f_GPU->getDataPtr();
42
43 cData.assign(*data);
44 cVec2f = &cData;
45 }
46
47 // ************************ CPU **************************
49 if (f_CPU != nullptr)
50 {
51 cVec2f = f_CPU->getDataPtr().get();
52 }
53
54
55 //BuildDataTable
56 if (cVec2f != NULL)
57 {
58 uint rowId = first;
59 uint rowTarget = 0;
60 for (size_t i = first; i <= last; i++)
61 {
62 for (size_t j = 0; j < 2; j++)
63 {
64 QString value = "";
65 value = (QString::number((*cVec2f)[i][j], 'f', 6));
66
67 addItemToPosition(value, rowTarget, j, QString::number(rowId), QString("float") + QString("[") + QString::number(j) + QString("]"));
68 }
69
70 rowId++;
71 rowTarget++;
72 }
73 }
74
75 }
76
77
78 // ************************ Vec2d **************************
79 {
80 CArray<Vec2d>* cVec2d = NULL;
81 CArray<Vec2d> cData;
82
83 // ************************ GPU **************************
85 if (f_GPU != nullptr)
86 {
87 std::shared_ptr<Array<Vec2d, DeviceType::GPU>>& data = f_GPU->getDataPtr();
88
89 cData.assign(*data);
90 cVec2d = &cData;
91 }
92
93 // ************************ CPU **************************
95 if (f_CPU != nullptr)
96 {
97 cVec2d = f_CPU->getDataPtr().get();
98 }
99
100
101 //BuildDataTable
102 if (cVec2d != NULL)
103 {
104 uint rowId = first;
105 uint rowTarget = 0;
106 for (size_t i = first; i <= last; i++)
107 {
108 for (size_t j = 0; j < 2; j++)
109 {
110 QString value = "";
111 value = (QString::number((*cVec2d)[i][j], 'f', 10));
112
113 addItemToPosition(value, rowTarget, j, QString::number(rowId), QString("float") + QString("[") + QString::number(j) + QString("]"));
114 }
115
116 //QTableWidgetItem* header = new QTableWidgetItem;
117 //header->setText(QString::number(i));
118 //this->setVerticalHeaderItem(i, header);
119
120 rowId++;
121 rowTarget++;
122 }
123
124 }
125
126 }
127
128 // ************************ VectorND<int,2> **************************
129 {
130 CArray<VectorND<int, 2>>* cVec2f = NULL;
132
133 // ************************ GPU **************************
134 FArray<VectorND<int, 2>, DeviceType::GPU>* f_GPU = TypeInfo::cast<FArray<VectorND<int, 2>, DeviceType::GPU>>(mfield);
135 if (f_GPU != nullptr)
136 {
137 std::shared_ptr<Array<VectorND<int, 2>, DeviceType::GPU>>& data = f_GPU->getDataPtr();
138
139 cData.assign(*data);
140 cVec2f = &cData;
141 }
142
143 // ************************ CPU **************************
144 FArray<VectorND<int, 2>, DeviceType::CPU>* f_CPU = TypeInfo::cast<FArray<VectorND<int, 2>, DeviceType::CPU>>(mfield);
145 if (f_CPU != nullptr)
146 {
147 cVec2f = f_CPU->getDataPtr().get();
148 }
149
150
151 //BuildDataTable
152 if (cVec2f != NULL)
153 {
154 uint rowId = first;
155 uint rowTarget = 0;
156 for (size_t i = first; i <= last; i++)
157 {
158 for (size_t j = 0; j < 2; j++)
159 {
160 QString value = "";
161 value = (QString::number((*cVec2f)[i][j]));
162
163 addItemToPosition(value, rowTarget, j, QString::number(rowId), QString("int") + QString("[") + QString::number(j) + QString("]"));
164 }
165
166 rowId++;
167 rowTarget++;
168 }
169 }
170
171 }
172
173 }
174
176 {
177
178 //std::string template_name = mfield->getTemplateName();
179
180 // ************************ FVar<Vec2f> **************************
181 {
183 if (f != nullptr)
184 {
185 const auto& Vec2f = f->getValue();
186
187
188 for (size_t j = 0; j < 2; j++)
189 {
190 QString value = "";
191 value = (QString::number((Vec2f)[j], 'f', 6));
192
193 addItemToPosition(value, 0, j, QString::number(0), QString("float") + QString("[") + QString::number(j) + QString("]"));
194 }
195
196 QTableWidgetItem* header = new QTableWidgetItem;
197 header->setText(QString::number(0));
198 this->setVerticalHeaderItem(0, header);
199
200 }
201 }
202
203 // ************************ FVar<Vec2d> **************************
204 {
206 if (f != nullptr)
207 {
208 const auto& Vec2d = f->getValue();
209
210
211 for (size_t j = 0; j < 2; j++)
212 {
213 QString value = "";
214 value = (QString::number((Vec2d)[j], 'f', 10));
215
216 addItemToPosition(value, 0, j, QString::number(0), QString("double") + QString("[") + QString::number(j) + QString("]"));
217 }
218
219 QTableWidgetItem* header = new QTableWidgetItem;
220 header->setText(QString::number(0));
221 this->setVerticalHeaderItem(0, header);
222
223 }
224 }
225
226
227 }
228
229
231 {
232
233 {
234
235 //std::string template_name = mfield->getTemplateName();
236
237
238 // *********************** Vec2f ***************************
239 CArrayList<Vec2f>* dataPtr = NULL;
240 CArrayList<Vec2f> cData;
241
242 // ************************ GPU **************************
243 FArrayList<Vec2f, DeviceType::GPU>* f_GPU = TypeInfo::cast<FArrayList<Vec2f, DeviceType::GPU>>(mfield);
244 if (f_GPU != nullptr)
245 {
246 std::shared_ptr<ArrayList<Vec2f, DeviceType::GPU>>& data = f_GPU->getDataPtr();
247
248 cData.assign(*data);
249 dataPtr = &cData;
250 }
251
252 // ************************ CPU **************************
253 FArrayList<Vec2f, DeviceType::CPU>* f_CPU = TypeInfo::cast<FArrayList<Vec2f, DeviceType::CPU>>(mfield);
254 if (f_CPU != nullptr)
255 {
256 dataPtr = f_CPU->getDataPtr().get();
257 }
258
259
260 if (dataPtr == NULL)
261 return;
262
263 //BuildDataTable
264 uint rowId = first;
265 uint rowTarget = 0;
266 for (size_t i = first; i <= last; i++)
267 {
268 auto it = (*dataPtr)[i];
269
270 for (size_t j = 0; j < it.size(); j++)
271 {
272 auto trans = it[j];
273
274 QString value;
275 for (size_t i = 0; i < 2; i++)
276 {
277 value.append(QString::number(trans[i]) + ", ");
278
279 }
280 addItemToPosition(value, rowTarget, j, QString::number(rowId), QString("[") + QString::number(j) + QString("]"), true, rowsHeight);
281
282 value.clear();
283
284 }
285
286
287 rowId++;
288 rowTarget++;
289 }
290
291 }
292
293
294
295 {
296 // *********************** Vec2d ***************************
297 CArrayList<Vec2d>* dataPtr = NULL;
298 CArrayList<Vec2d> cData;
299
300 // ************************ GPU **************************
301 FArrayList<Vec2d, DeviceType::GPU>* f_GPU = TypeInfo::cast<FArrayList<Vec2d, DeviceType::GPU>>(mfield);
302 if (f_GPU != nullptr)
303 {
304 std::shared_ptr<ArrayList<Vec2d, DeviceType::GPU>>& data = f_GPU->getDataPtr();
305
306 cData.assign(*data);
307 dataPtr = &cData;
308 }
309
310 // ************************ CPU **************************
311 FArrayList<Vec2d, DeviceType::CPU>* f_CPU = TypeInfo::cast<FArrayList<Vec2d, DeviceType::CPU>>(mfield);
312 if (f_CPU != nullptr)
313 {
314 dataPtr = f_CPU->getDataPtr().get();
315 }
316
317
318 if (dataPtr == NULL)
319 return;
320
321 //BuildDataTable
322 uint rowId = first;
323 uint rowTarget = 0;
324 for (size_t i = first; i <= last; i++)
325 {
326 auto it = (*dataPtr)[i];
327
328 for (size_t j = 0; j < it.size(); j++)
329 {
330 auto trans = it[j];
331
332 QString value;
333 for (size_t i = 0; i < 3; i++)
334 {
335 value.append(QString::number(trans[i]) + ", ");
336
337 }
338 addItemToPosition(value, rowTarget, j, QString::number(rowId), QString("[") + QString::number(j) + QString("]"), true, rowsHeight);
339
340 value.clear();
341
342 }
343
344
345 rowId++;
346 rowTarget++;
347 }
348 }
349
350
351
352 }
353
354}
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)
PVec2FieldViewerWidget(FBase *field, QWidget *pParent=NULL)
void buildArrayListDataTable(int first, int last) override
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
Vector< float, 2 > Vec2f
Definition Vector2D.h:81
Vector< double, 2 > Vec2d
Definition Vector2D.h:82
Array< T, DeviceType::CPU > CArray
Definition Array.h:151
unsigned int uint
Definition VkProgram.h:14