PeriDyno 1.0.0
Loading...
Searching...
No Matches
PRealViewerWidget.cpp
Go to the documentation of this file.
1#include "PRealViewerWidget.h"
2#include <QHeaderView>
3
4
5namespace dyno
6{
7
8 PRealViewerWidget::PRealViewerWidget(FBase* field, QWidget* pParent) :
9 PDataViewerWidget(field, pParent)
10 {
11 mfield = field;
12
13 rowsHeight = 30;
14
16 }
17
18
23
25 {
26
27 // *************************** float ************************
28 {
29 CArray<float>* dataPtr = NULL;
30 CArray<float> cData;
31
32 // ************************ GPU **************************
34 if (float_GPU != nullptr)
35 {
36 std::shared_ptr<Array<float, DeviceType::GPU>>& data = float_GPU->getDataPtr();
37
38 cData.assign(*data);
39 dataPtr = &cData;
40 }
41
42 // ************************ CPU **************************
44 if (float_CPU != nullptr)
45 {
46 dataPtr = float_CPU->getDataPtr().get();
47 }
48
49 if (dataPtr != NULL)
50 {
51 uint rowId = first;
52 uint rowTarget = 0;
53 for (size_t i = first; i <= last; i++)
54 {
55 QString value = "";
56 value = (QString::number((*dataPtr)[i], 'f', 6));
57
58 addItemToPosition(value, rowTarget,0, QString::number(rowId), QString("float"));
59
60 QTableWidgetItem* header = new QTableWidgetItem;
61 header->setText(QString::number(i));
62 this->setVerticalHeaderItem(i, header);
63 rowId++;
64 rowTarget++;
65 }
66 }
67 }
68
69 // *************************** double ************************
70 {
71 CArray<double>* dataPtr = NULL;
72 CArray<double> cData;
73
74 // ************************ GPU **************************
76 if (double_GPU != nullptr)
77 {
78 std::shared_ptr<Array<double, DeviceType::GPU>>& data = double_GPU->getDataPtr();
79
80 cData.assign(*data);
81 dataPtr = &cData;
82 }
83
84 // ************************ CPU **************************
86 if (double_CPU != nullptr)
87 {
88 dataPtr = double_CPU->getDataPtr().get();
89 }
90
91 if (dataPtr != NULL)
92 {
93 uint rowId = first;
94 uint rowTarget = 0;
95 for (size_t i = first; i <= last; i++)
96 {
97
98 QString value = "";
99 value = (QString::number((*dataPtr)[i], 'f', 10));
100
101 addItemToPosition(value, rowTarget, 0, QString::number(rowId), QString("double"));
102
103 QTableWidgetItem* header = new QTableWidgetItem;
104 header->setText(QString::number(i));
105 this->setVerticalHeaderItem(i, header);
106
107 rowId++;
108 rowTarget++;
109 }
110 }
111 }
112 }
113
114
116 {
117
118 // ************************ FVar<float> **************************
119 {
121 if (f != nullptr)
122 {
123 const auto& data = f->getValue();
124
125 QString value = "";
126 value = (QString::number(data, 'f', 6));
127
128 addItemToPosition(value, 0, 0, QString::number(0), QString("float"));
129
130 QTableWidgetItem* header = new QTableWidgetItem;
131 header->setText(QString::number(0));
132 this->setVerticalHeaderItem(0, header);
133
134 }
135 }
136
137 // ************************ FVar<double> **************************
138 {
140 if (f != nullptr)
141 {
142 const auto& data = f->getValue();
143
144
145 QString value = "";
146 value = (QString::number(data, 'f', 10));
147
148 addItemToPosition(value, 0, 0, QString::number(0), QString("double"));
149
150
151 QTableWidgetItem* header = new QTableWidgetItem;
152 header->setText(QString::number(0));
153 this->setVerticalHeaderItem(0, header);
154
155 }
156 }
157
158
159
160 }
161
163 {
164 {
165 // *************************** float ************************
166 CArrayList<float>* dataPtr = NULL;
167 CArrayList<float> cData;
168
169 // ************************ GPU **************************
170 FArrayList<float, DeviceType::GPU>* f_GPU = TypeInfo::cast<FArrayList<float, DeviceType::GPU>>(mfield);
171 if (f_GPU != nullptr)
172 {
173 std::shared_ptr<ArrayList<float, DeviceType::GPU>>& data = f_GPU->getDataPtr();
174
175 cData.assign(*data);
176 dataPtr = &cData;
177 }
178
179 // ************************ CPU **************************
180 FArrayList<float, DeviceType::CPU>* f_CPU = TypeInfo::cast<FArrayList<float, DeviceType::CPU>>(mfield);
181 if (f_CPU != nullptr)
182 {
183 dataPtr = f_CPU->getDataPtr().get();
184 }
185
186
187 if (dataPtr == NULL)
188 return;
189
190 //BuildDataTable
191 uint rowId = first;
192 uint rowTarget = 0;
193 for (size_t i = first; i <= last; i++)
194 {
195 auto it = (*dataPtr)[i];
196
197 for (size_t j = 0; j < it.size(); j++)
198 {
199 auto trans = it[j];
200
201 QString value;
202
203 value.append(QString::number(trans, 'f', 6));
204
205 addItemToPosition(value, rowTarget, j, QString::number(rowId), QString("[") + QString::number(j) + QString("]") , true, rowsHeight);
206
207 value.clear();
208 }
209 rowId++;
210 rowTarget++;
211 }
212
213 }
214
215
216
217 {
218
219 // *************************** double ************************
220 CArrayList<double>* dataPtr = NULL;
221 CArrayList<double> cData;
222
223 // ************************ GPU **************************
224 FArrayList<double, DeviceType::GPU>* f_GPU = TypeInfo::cast<FArrayList<double, DeviceType::GPU>>(mfield);
225 if (f_GPU != nullptr)
226 {
227 std::shared_ptr<ArrayList<double, DeviceType::GPU>>& data = f_GPU->getDataPtr();
228
229 cData.assign(*data);
230 dataPtr = &cData;
231 }
232
233 // ************************ CPU **************************
234 FArrayList<double, DeviceType::CPU>* f_CPU = TypeInfo::cast<FArrayList<double, DeviceType::CPU>>(mfield);
235 if (f_CPU != nullptr)
236 {
237 dataPtr = f_CPU->getDataPtr().get();
238 }
239
240
241 if (dataPtr == NULL)
242 return;
243
244 //BuildDataTable
245 uint rowId = first;
246 uint rowTarget = 0;
247 for (size_t i = first; i <= last; i++)
248 {
249 auto it = (*dataPtr)[i];
250
251 for (size_t j = 0; j < it.size(); j++)
252 {
253 auto trans = it[j];
254
255 QString value;
256
257 value.append(QString::number(trans, 'f', 10));
258
259 addItemToPosition(value, rowTarget, j, QString::number(rowId), QString("[") + QString::number(j) + QString("]"), true, rowsHeight);
260
261 value.clear();
262 }
263 rowId++;
264 rowTarget++;
265 }
266
267 }
268
269 }
270
271
272}
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
void buildArrayDataTable(int first, int last) override
PRealViewerWidget(FBase *field, QWidget *pParent=NULL)
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