12 {
13#ifdef _WINDOWS
14
15 int jkl=0;
16
17 char TempPath[256];
18 char m_Path[256];
19 sprintf(m_Path, "prova");
20
21 UINT m_Fragments = 1;
22 UINT m_MaxTracks = 4;
23 UINT m_MinTracks = 1;
24 UINT m_Views = 2;
25
26 UINT ExtErrorInfo;
30 int i, j, k, fi;
31
38
39
40
51 Cat.
Area.
XMin = (rand() % 1000) * 500.;
52 Cat.
Area.
YMin = ((rand() ^ 0xffdba324) % 1000) * 500.;
63 {
71 {
77 };
78 };
79
80 sprintf(TempPath,"prova.rwc");
81 if (iIO->Write(0, (BYTE *)&Cat, &ExtErrorInfo, (UCHAR *)TempPath) != S_OK)
82 {
83 printf("Error Writing", "Debug", MB_ICONERROR | MB_OK);
84 };
85
86
87cout << jkl++ ;
88
90
91 if (iIO->Read(0, (BYTE *)(&pReadCat), &ExtErrorInfo, (UCHAR *)TempPath) != S_OK)
92 {
93 printf("Error Reading", "Debug", MB_ICONERROR | MB_OK);
94 };
95
96
97 if (memcmp(&Cat.Area, &pReadCat->
Area,
sizeof(Cat.Area))) printf(
"Area section different!",
"Debug", MB_ICONERROR | MB_OK);
98 if (memcmp(&Cat.Hdr, &pReadCat->
Hdr,
sizeof(Cat.Hdr))) printf(
"Header section different!",
"Debug", MB_ICONERROR | MB_OK);
99 if (memcmp(&Cat.Reserved, &pReadCat->
Reserved,
sizeof(Cat.Reserved))) printf(
"Reserved section different!",
"Debug", MB_ICONERROR | MB_OK);
100 if (memcmp(Cat.pFragmentIndices, pReadCat->
pFragmentIndices,
sizeof(
int) * Cat.Area.XViews * Cat.Area.YViews)) printf(
"Fragment index section different!",
"Debug", MB_ICONERROR | MB_OK);
101 if (memcmp(&Cat.Config.CountOfConfigs, &pReadCat->
Config.
CountOfConfigs,
sizeof(Cat.Config.CountOfConfigs))) printf(
"Config section different!",
"Debug", MB_ICONERROR | MB_OK);
102 for (i = 0; i < Cat.Config.CountOfConfigs; i++)
103 {
104 if (memcmp(&Cat.Config.pConfigs[i].ClassName, &pReadCat->
Config.
pConfigs[i].
ClassName,
sizeof(Cat.Config.pConfigs[i].ClassName))) printf(
"Config section different!",
"Debug", MB_ICONERROR | MB_OK);
105 if (memcmp(&Cat.Config.pConfigs[i].Config.Name, &pReadCat->
Config.
pConfigs[i].
Config.
Name,
sizeof(Cat.Config.pConfigs[i].Config.Name))) printf(
"Config section different!",
"Debug", MB_ICONERROR | MB_OK);
106 if (memcmp(&Cat.Config.pConfigs[i].Config.CountOfItems, &pReadCat->
Config.
pConfigs[i].
Config.
CountOfItems,
sizeof(Cat.Config.pConfigs[i].Config.CountOfItems))) printf(
"Config section different!",
"Debug", MB_ICONERROR | MB_OK);
108 };
109
110 if (pReadCat) CoTaskMemFree(pReadCat);
111
112 if (Cat.pFragmentIndices) delete [] Cat.pFragmentIndices;
113 if (Cat.Config.pConfigs)
114 {
115 for (i = 0; i < Cat.Config.CountOfConfigs; i++)
116 if (Cat.Config.pConfigs[i].Config.pItems)
117 delete [] Cat.Config.pConfigs[i].Config.pItems;
118 delete [] Cat.Config.pConfigs;
119 };
120
121
122
123
124
125
126
127 for (fi = 0; fi < Cat.Area.YViews; )
128 {
129 Frag.
Hdr.
ID = Cat.Hdr.ID;
139 for (i = 0; i < Cat.Area.XViews; i++)
140 {
147 for (k = 0; k < 2; k++)
148 {
163 {
169 T.
Intercept.
X = rand() % (int)Cat.Area.XStep - Cat.Area.XStep * 0.5f;
170 T.
Intercept.
Y = rand() % (int)Cat.Area.YStep - Cat.Area.YStep * 0.5f;
172 T.
Slope.
X = (rand() % 1001 - 500) * .001f;
173 T.
Slope.
Y = (rand() % 1001 - 500) * .001f;
186 {
187 T.
pPoints[
p].
X = (rand() % 101 - 99) * .01;
188 T.
pPoints[
p].
Y = (rand() % 101 - 99) * .01;
190 };
192 {
195 }
197 };
198 };
199 };
200
201 sprintf(TempPath,"%s.rwd.%08X", m_Path, fi + 1);
202 if (iIO->Write(0, (BYTE *)&Frag, &ExtErrorInfo, (UCHAR *)TempPath) != S_OK)
203 {
204 printf("Error Writing", "Debug", MB_ICONERROR | MB_OK);
205 };
206
207
209 if (iIO->Read(0, (BYTE *)&pReadFrag, &ExtErrorInfo, (UCHAR *)TempPath) != S_OK)
210 {
211 printf("Error Reading", "Debug", MB_ICONERROR | MB_OK);
212 };
213
214
215 if (memcmp(&Frag.Hdr, &pReadFrag->Hdr, sizeof(Frag.Hdr))) printf("Header section different!", "Debug", MB_ICONERROR | MB_OK);
216 if (memcmp(&Frag.Reserved, &pReadFrag->Reserved, sizeof(Frag.Reserved))) printf("Reserved section different!", "Debug", MB_ICONERROR | MB_OK);
217 if (memcmp(&Frag.Fragment.CodingMode, &pReadFrag->Fragment.CodingMode, sizeof(Frag.Fragment.CodingMode))) printf("Fragment section different!", "Debug", MB_ICONERROR | MB_OK);
218 if (memcmp(&Frag.Fragment.CountOfViews, &pReadFrag->Fragment.CountOfViews, sizeof(Frag.Fragment.CountOfViews))) printf("Fragment section different!", "Debug", MB_ICONERROR | MB_OK);
219 if (memcmp(&Frag.Fragment.FitCorrectionDataSize, &pReadFrag->Fragment.FitCorrectionDataSize, sizeof(Frag.Fragment.FitCorrectionDataSize))) printf("Fragment section different!", "Debug", MB_ICONERROR | MB_OK);
220 if (memcmp(&Frag.Fragment.Index, &pReadFrag->Fragment.Index, sizeof(Frag.Fragment.Index))) printf("Fragment section different!", "Debug", MB_ICONERROR | MB_OK);
221 if (memcmp(&Frag.Fragment.StartView, &pReadFrag->Fragment.StartView, sizeof(Frag.Fragment.StartView))) printf("Fragment section different!", "Debug", MB_ICONERROR | MB_OK);
222 for (i = 0; i < Frag.Fragment.CountOfViews; i++)
223 {
224 if (memcmp(&Frag.Fragment.pViews[i].RelevantZs, &pReadFrag->Fragment.pViews[i].RelevantZs, sizeof(Frag.Fragment.pViews[i].RelevantZs))) printf("View section different!", "Debug", MB_ICONERROR | MB_OK);
225 if (memcmp(&Frag.Fragment.pViews[i].X, &pReadFrag->Fragment.pViews[i].X, sizeof(Frag.Fragment.pViews[i].X))) printf("View section different!", "Debug", MB_ICONERROR | MB_OK);
226 if (memcmp(&Frag.Fragment.pViews[i].Y, &pReadFrag->Fragment.pViews[i].Y, sizeof(Frag.Fragment.pViews[i].Y))) printf("View section different!", "Debug", MB_ICONERROR | MB_OK);
227 if (memcmp(&Frag.Fragment.pViews[i].TileX, &pReadFrag->Fragment.pViews[i].TileX, sizeof(Frag.Fragment.pViews[i].TileX))) printf("View section different!", "Debug", MB_ICONERROR | MB_OK);
228 if (memcmp(&Frag.Fragment.pViews[i].TileY, &pReadFrag->Fragment.pViews[i].TileY, sizeof(Frag.Fragment.pViews[i].TileY))) printf("View section different!", "Debug", MB_ICONERROR | MB_OK);
229 if (memcmp(&Frag.Fragment.pViews[i].TCount, &pReadFrag->Fragment.pViews[i].TCount, sizeof(Frag.Fragment.pViews[i].TCount))) printf("View section different!", "Debug", MB_ICONERROR | MB_OK);
230 if (memcmp(&Frag.Fragment.pViews[i].Status, &pReadFrag->Fragment.pViews[i].Status, sizeof(Frag.Fragment.pViews[i].Status))) printf("View section different!", "Debug", MB_ICONERROR | MB_OK);
231 for (k = 0; k < 2; k++)
232 {
233 if (memcmp(&Frag.Fragment.pViews[i].Layers[k].Count, &pReadFrag->Fragment.pViews[i].Layers[k].Count, sizeof(Frag.Fragment.pViews[i].Layers[k].Count))) printf("View section different!", "Debug", MB_ICONERROR | MB_OK);
234 if (memcmp(Frag.Fragment.pViews[i].Layers[k].pZs, pReadFrag->Fragment.pViews[i].Layers[k].pZs, sizeof(float) * Frag.Fragment.pViews[i].Layers[k].Count)) printf("View section different!", "Debug", MB_ICONERROR | MB_OK);
235 for (j = 0; j < Frag.Fragment.pViews[i].TCount[k]; j++)
236 {
237 if (memcmp(&Frag.Fragment.pViews[i].pTracks[k][j].Field, &pReadFrag->Fragment.pViews[i].pTracks[k][j].Field, sizeof(Frag.Fragment.pViews[i].pTracks[k][j].Field))) printf("Track section different!", "Debug", MB_ICONERROR | MB_OK);
238 if (memcmp(&Frag.Fragment.pViews[i].pTracks[k][j].PointsN, &pReadFrag->Fragment.pViews[i].pTracks[k][j].PointsN, sizeof(Frag.Fragment.pViews[i].pTracks[k][j].PointsN))) printf("Track section different!", "Debug", MB_ICONERROR | MB_OK);
239 if (memcmp(&Frag.Fragment.pViews[i].pTracks[k][j].Intercept, &pReadFrag->Fragment.pViews[i].pTracks[k][j].Intercept, sizeof(Frag.Fragment.pViews[i].pTracks[k][j].Intercept))) printf("Track section different!", "Debug", MB_ICONERROR | MB_OK);
240 if (memcmp(&Frag.Fragment.pViews[i].pTracks[k][j].InterceptErrors, &pReadFrag->Fragment.pViews[i].pTracks[k][j].InterceptErrors, sizeof(Frag.Fragment.pViews[i].pTracks[k][j].InterceptErrors))) printf("Track section different!", "Debug", MB_ICONERROR | MB_OK);
241 if (memcmp(&Frag.Fragment.pViews[i].pTracks[k][j].Slope, &pReadFrag->Fragment.pViews[i].pTracks[k][j].Slope, sizeof(Frag.Fragment.pViews[i].pTracks[k][j].Slope))) printf("Track section different!", "Debug", MB_ICONERROR | MB_OK);
242 if (memcmp(&Frag.Fragment.pViews[i].pTracks[k][j].SlopeErrors, &pReadFrag->Fragment.pViews[i].pTracks[k][j].SlopeErrors, sizeof(Frag.Fragment.pViews[i].pTracks[k][j].SlopeErrors))) printf("Track section different!", "Debug", MB_ICONERROR | MB_OK);
243 if (memcmp(&Frag.Fragment.pViews[i].pTracks[k][j].FirstZ, &pReadFrag->Fragment.pViews[i].pTracks[k][j].FirstZ, sizeof(Frag.Fragment.pViews[i].pTracks[k][j].FirstZ))) printf("Track section different!", "Debug", MB_ICONERROR | MB_OK);
244 if (memcmp(&Frag.Fragment.pViews[i].pTracks[k][j].LastZ, &pReadFrag->Fragment.pViews[i].pTracks[k][j].LastZ, sizeof(Frag.Fragment.pViews[i].pTracks[k][j].LastZ))) printf("Track section different!", "Debug", MB_ICONERROR | MB_OK);
245 if (memcmp(&Frag.Fragment.pViews[i].pTracks[k][j].Sigma, &pReadFrag->Fragment.pViews[i].pTracks[k][j].Sigma, sizeof(Frag.Fragment.pViews[i].pTracks[k][j].Sigma))) printf("Track section different!", "Debug", MB_ICONERROR | MB_OK);
246 if (!pReadFrag->Fragment.pViews[i].pTracks[k][j].Valid) printf("Inconsistency in track section!", "Debug", MB_ICONERROR | MB_OK);
247 if ((Frag.Fragment.pViews[i].pTracks[k][j].pCorrection == 0) ^ (pReadFrag->Fragment.pViews[i].pTracks[k][j].pCorrection == 0)) printf("Inconsistency in track section!", "Debug", MB_ICONERROR | MB_OK);
248 if (Frag.Fragment.pViews[i].pTracks[k][j].pCorrection)
249 if (memcmp(Frag.Fragment.pViews[i].pTracks[k][j].pCorrection, pReadFrag->Fragment.pViews[i].pTracks[k][j].pCorrection, Frag.Fragment.FitCorrectionDataSize)) printf("Correction section different!", "Debug", MB_ICONERROR | MB_OK);
251 {
252 if (pReadFrag->Fragment.pViews[i].pTracks[k][j].pPoints) printf("Inconsistency in points section!", "Debug", MB_ICONERROR | MB_OK);
253 }
254 else
255 {
256 if ((Frag.Fragment.pViews[i].pTracks[k][j].pPoints == 0) ^ (pReadFrag->Fragment.pViews[i].pTracks[k][j].pPoints == 0)) printf("Inconsistency in points section!", "Debug", MB_ICONERROR | MB_OK);
257 if (Frag.Fragment.pViews[i].pTracks[k][j].pPoints)
258 if (memcmp(Frag.Fragment.pViews[i].pTracks[k][j].pPoints, pReadFrag->Fragment.pViews[i].pTracks[k][j].pPoints,
sizeof(
TVector) * Frag.Fragment.pViews[i].pTracks[k][j].PointsN)) printf(
"Points section different!",
"Debug", MB_ICONERROR | MB_OK);
259 };
260 };
261 };
262 };
263
264 if (pReadFrag) CoTaskMemFree(pReadFrag);
265
266
267
268 for (i = 0; i < Frag.Fragment.CountOfViews; i++)
269 {
270 for (k = 0; k < 2; k++)
271 {
272 if (Frag.Fragment.pViews[i].Layers[k].pZs) delete [] Frag.Fragment.pViews[i].Layers[k].pZs;
273 if (Frag.Fragment.pViews[i].pTracks[k])
274 {
275 for (j = 0; j < Frag.Fragment.pViews[i].TCount[k]; j++)
276 {
277 if (Frag.Fragment.pViews[i].pTracks[k][j].pPoints) delete [] Frag.Fragment.pViews[i].pTracks[k][j].pPoints;
278 if (Frag.Fragment.pViews[i].pTracks[k][j].pCorrection) delete [] Frag.Fragment.pViews[i].pTracks[k][j].pCorrection;
279 };
280 delete [] Frag.Fragment.pViews[i].pTracks[k];
281 };
282 };
283 };
284 delete [] Frag.Fragment.pViews;
285
286 };
287
288
289
290
291
292
293
294 Cat.Hdr.ID.Part[0] = 2457;
295 Cat.Hdr.ID.Part[1] = 1386;
296 Cat.Hdr.ID.Part[2] = 2329894;
297 Cat.Hdr.ID.Part[3] = 4309943;
300 for (i = 0; i < sizeof(Cat.Reserved); i++) Cat.Reserved[i] = i;
301 Cat.Area.Fragments = m_Fragments;
302 Cat.Area.XViews = m_Views;
303 Cat.Area.YViews = m_Fragments;
304 Cat.Area.XMin = (rand() % 1000) * 500.;
305 Cat.Area.YMin = ((rand() ^ 0xffdba324) % 1000) * 500.;
306 Cat.Area.XStep = 330.f;
307 Cat.Area.YStep = 330.f;
308 Cat.Area.XMax = Cat.Area.XMin + Cat.Area.XViews * (Cat.Area.XStep + 1);
309 Cat.Area.YMax = Cat.Area.YMax + Cat.Area.YViews * (Cat.Area.YStep + 1);
310 Cat.pFragmentIndices = new int[Cat.Area.XViews * Cat.Area.YViews];
311 for (i = 0; i < (Cat.Area.XViews * Cat.Area.YViews); i++)
312 Cat.pFragmentIndices[i] = i / Cat.Area.XViews + 1;
313 Cat.Config.CountOfConfigs = rand() % 8;
314 Cat.Config.pConfigs = Cat.Config.CountOfConfigs ?
new VS_Config[Cat.Config.CountOfConfigs] : 0;
315 for (i = 0; i < Cat.Config.CountOfConfigs; i++)
316 {
319 Cat.Config.pConfigs[i].Config.CountOfItems = rand() % 32;
320 Cat.Config.pConfigs[i].Config.pItems = Cat.Config.pConfigs[i].Config.CountOfItems ?
321 new char[Cat.Config.pConfigs[i].Config.CountOfItems *
323 for (j = 0; j < Cat.Config.pConfigs[i].Config.CountOfItems; j++)
324 {
325 strcpy(Cat.Config.pConfigs[i].Config.pItems + j *
327 strcpy(Cat.Config.pConfigs[i].Config.pItems + j *
330 };
331 };
332
333 sprintf(TempPath,"prova2.rwc");
334 if (iIO2->Write2(0, (BYTE *)&Cat, &ExtErrorInfo, (UCHAR *)TempPath) != S_OK)
335 {
336 printf("Error Writing", "Debug", MB_ICONERROR | MB_OK);
337 };
338
339
340 pReadCat = 0;
341 if (iIO2->Read2(0, (BYTE *)(&pReadCat), &ExtErrorInfo, (UCHAR *)TempPath) != S_OK)
342 {
343 printf("Error Reading", "Debug", MB_ICONERROR | MB_OK);
344 };
345
346
347 if (memcmp(&Cat.Area, &pReadCat->
Area,
sizeof(Cat.Area))) printf(
"Area section different!",
"Debug", MB_ICONERROR | MB_OK);
348 if (memcmp(&Cat.Hdr, &pReadCat->
Hdr,
sizeof(Cat.Hdr))) printf(
"Header section different!",
"Debug", MB_ICONERROR | MB_OK);
349 if (memcmp(&Cat.Reserved, &pReadCat->
Reserved,
sizeof(Cat.Reserved))) printf(
"Reserved section different!",
"Debug", MB_ICONERROR | MB_OK);
350 if (memcmp(Cat.pFragmentIndices, pReadCat->
pFragmentIndices,
sizeof(
int) * Cat.Area.XViews * Cat.Area.YViews)) printf(
"Fragment index section different!",
"Debug", MB_ICONERROR | MB_OK);
351 if (memcmp(&Cat.Config.CountOfConfigs, &pReadCat->
Config.
CountOfConfigs,
sizeof(Cat.Config.CountOfConfigs))) printf(
"Config section different!",
"Debug", MB_ICONERROR | MB_OK);
352 for (i = 0; i < Cat.Config.CountOfConfigs; i++)
353 {
354 if (memcmp(&Cat.Config.pConfigs[i].ClassName, &pReadCat->
Config.
pConfigs[i].
ClassName,
sizeof(Cat.Config.pConfigs[i].ClassName))) printf(
"Config section different!",
"Debug", MB_ICONERROR | MB_OK);
355 if (memcmp(&Cat.Config.pConfigs[i].Config.Name, &pReadCat->
Config.
pConfigs[i].
Config.
Name,
sizeof(Cat.Config.pConfigs[i].Config.Name))) printf(
"Config section different!",
"Debug", MB_ICONERROR | MB_OK);
356 if (memcmp(&Cat.Config.pConfigs[i].Config.CountOfItems, &pReadCat->
Config.
pConfigs[i].
Config.
CountOfItems,
sizeof(Cat.Config.pConfigs[i].Config.CountOfItems))) printf(
"Config section different!",
"Debug", MB_ICONERROR | MB_OK);
358 };
359
360 if (pReadCat) CoTaskMemFree(pReadCat);
361
362 if (Cat.pFragmentIndices) delete [] Cat.pFragmentIndices;
363 if (Cat.Config.pConfigs)
364 {
365 for (i = 0; i < Cat.Config.CountOfConfigs; i++)
366 if (Cat.Config.pConfigs[i].Config.pItems)
367 delete [] Cat.Config.pConfigs[i].Config.pItems;
368 delete [] Cat.Config.pConfigs;
369 };
370
371
372
373
374
375
376
377 for (fi = 0; fi < Cat.Area.YViews; )
378 {
379 Frag2.
Hdr.
ID = Cat.Hdr.ID;
389 for (i = 0; i < Cat.Area.XViews; i++)
390 {
397 for (k = 0; k < 2; k++)
398 {
408 {
411 }
416 {
420 T.
Grains = 8 + rand() % 4;
423 T.
Intercept.
X = rand() % (int)Cat.Area.XStep - Cat.Area.XStep * 0.5f;
424 T.
Intercept.
Y = rand() % (int)Cat.Area.YStep - Cat.Area.YStep * 0.5f;
426 T.
Slope.
X = (rand() % 1001 - 500) * .001f;
427 T.
Slope.
Y = (rand() % 1001 - 500) * .001f;
429 T.
Sigma = rand() % 1000 * 0.0001;
434 {
437 T.
pGrains[
p].
X = (rand() % 101 - 99) * .01;
438 T.
pGrains[
p].
Y = (rand() % 101 - 99) * .01;
440 };
441
442
443
444
445
446
448 };
449 };
450 };
451
452 sprintf(TempPath,"%s2.rwd.%08X", m_Path, fi + 1);
453 if (iIO2->Write2(0, (BYTE *)&Frag2, &ExtErrorInfo, (UCHAR *)TempPath) != S_OK)
454 {
455 printf("Error Writing", "Debug", MB_ICONERROR | MB_OK);
456 };
457
458
460 if (iIO2->Read2(0, (BYTE *)&pReadFrag2, &ExtErrorInfo, (UCHAR *)TempPath) != S_OK)
461 {
462 printf("Error Reading", "Debug", MB_ICONERROR | MB_OK);
463 };
464
465
466 if (memcmp(&Frag2.Hdr, &pReadFrag2->Hdr, sizeof(Frag2.Hdr))) printf("Header section different!", "Debug", MB_ICONERROR | MB_OK);
467 if (memcmp(&Frag2.Reserved, &pReadFrag2->Reserved, sizeof(Frag2.Reserved))) printf("Reserved section different!", "Debug", MB_ICONERROR | MB_OK);
468 if (memcmp(&Frag2.Fragment.CodingMode, &pReadFrag2->Fragment.CodingMode, sizeof(Frag2.Fragment.CodingMode))) printf("Fragment section different!", "Debug", MB_ICONERROR | MB_OK);
469 if (memcmp(&Frag2.Fragment.CountOfViews, &pReadFrag2->Fragment.CountOfViews, sizeof(Frag2.Fragment.CountOfViews))) printf("Fragment section different!", "Debug", MB_ICONERROR | MB_OK);
470 if (memcmp(&Frag2.Fragment.FitCorrectionDataSize, &pReadFrag2->Fragment.FitCorrectionDataSize, sizeof(Frag2.Fragment.FitCorrectionDataSize))) printf("Fragment section different!", "Debug", MB_ICONERROR | MB_OK);
471 if (memcmp(&Frag2.Fragment.Index, &pReadFrag2->Fragment.Index, sizeof(Frag2.Fragment.Index))) printf("Fragment section different!", "Debug", MB_ICONERROR | MB_OK);
472 if (memcmp(&Frag2.Fragment.StartView, &pReadFrag2->Fragment.StartView, sizeof(Frag2.Fragment.StartView))) printf("Fragment section different!", "Debug", MB_ICONERROR | MB_OK);
473 for (i = 0; i < Frag2.Fragment.CountOfViews; i++)
474 {
475 if (memcmp(&Frag2.Fragment.pViews[i].RelevantZs, &pReadFrag2->Fragment.pViews[i].RelevantZs, sizeof(Frag2.Fragment.pViews[i].RelevantZs))) printf("View section different!", "Debug", MB_ICONERROR | MB_OK);
476 if (memcmp(&Frag2.Fragment.pViews[i].X, &pReadFrag2->Fragment.pViews[i].X, sizeof(Frag2.Fragment.pViews[i].X))) printf("View section different!", "Debug", MB_ICONERROR | MB_OK);
477 if (memcmp(&Frag2.Fragment.pViews[i].Y, &pReadFrag2->Fragment.pViews[i].Y, sizeof(Frag2.Fragment.pViews[i].Y))) printf("View section different!", "Debug", MB_ICONERROR | MB_OK);
478 if (memcmp(&Frag2.Fragment.pViews[i].TileX, &pReadFrag2->Fragment.pViews[i].TileX, sizeof(Frag2.Fragment.pViews[i].TileX))) printf("View section different!", "Debug", MB_ICONERROR | MB_OK);
479 if (memcmp(&Frag2.Fragment.pViews[i].TileY, &pReadFrag2->Fragment.pViews[i].TileY, sizeof(Frag2.Fragment.pViews[i].TileY))) printf("View section different!", "Debug", MB_ICONERROR | MB_OK);
480 if (memcmp(&Frag2.Fragment.pViews[i].TCount, &pReadFrag2->Fragment.pViews[i].TCount, sizeof(Frag2.Fragment.pViews[i].TCount))) printf("View section different!", "Debug", MB_ICONERROR | MB_OK);
481 if (memcmp(&Frag2.Fragment.pViews[i].Status, &pReadFrag2->Fragment.pViews[i].Status, sizeof(Frag2.Fragment.pViews[i].Status))) printf("View section different!", "Debug", MB_ICONERROR | MB_OK);
482 for (k = 0; k < 2; k++)
483 {
484 if (memcmp(&Frag2.Fragment.pViews[i].Layers[k].Count, &pReadFrag2->Fragment.pViews[i].Layers[k].Count, sizeof(Frag2.Fragment.pViews[i].Layers[k].Count))) printf("View section different!", "Debug", MB_ICONERROR | MB_OK);
485 if (memcmp(Frag2.Fragment.pViews[i].Layers[k].pLayerInfo, pReadFrag2->Fragment.pViews[i].Layers[k].pLayerInfo,
sizeof(
VS_View::t_Layers) * Frag2.Fragment.pViews[i].Layers[k].Count)) printf(
"View section different!",
"Debug", MB_ICONERROR | MB_OK);
486 for (j = 0; j < Frag2.Fragment.pViews[i].TCount[k]; j++)
487 {
488 if (memcmp(&Frag2.Fragment.pViews[i].pTracks[k][j].Field, &pReadFrag2->Fragment.pViews[i].pTracks[k][j].Field, sizeof(Frag2.Fragment.pViews[i].pTracks[k][j].Field))) printf("Track section different!", "Debug", MB_ICONERROR | MB_OK);
489 if (memcmp(&Frag2.Fragment.pViews[i].pTracks[k][j].AreaSum, &pReadFrag2->Fragment.pViews[i].pTracks[k][j].AreaSum, sizeof(Frag2.Fragment.pViews[i].pTracks[k][j].AreaSum))) printf("Track section different!", "Debug", MB_ICONERROR | MB_OK);
490 if (memcmp(&Frag2.Fragment.pViews[i].pTracks[k][j].Grains, &pReadFrag2->Fragment.pViews[i].pTracks[k][j].Grains, sizeof(Frag2.Fragment.pViews[i].pTracks[k][j].Grains))) printf("Track section different!", "Debug", MB_ICONERROR | MB_OK);
491 if (memcmp(&Frag2.Fragment.pViews[i].pTracks[k][j].Intercept, &pReadFrag2->Fragment.pViews[i].pTracks[k][j].Intercept, sizeof(Frag2.Fragment.pViews[i].pTracks[k][j].Intercept))) printf("Track section different!", "Debug", MB_ICONERROR | MB_OK);
492 if (memcmp(&Frag2.Fragment.pViews[i].pTracks[k][j].Slope, &pReadFrag2->Fragment.pViews[i].pTracks[k][j].Slope, sizeof(Frag2.Fragment.pViews[i].pTracks[k][j].Slope))) printf("Track section different!", "Debug", MB_ICONERROR | MB_OK);
493 if (memcmp(&Frag2.Fragment.pViews[i].pTracks[k][j].FirstZ, &pReadFrag2->Fragment.pViews[i].pTracks[k][j].FirstZ, sizeof(Frag2.Fragment.pViews[i].pTracks[k][j].FirstZ))) printf("Track section different!", "Debug", MB_ICONERROR | MB_OK);
494 if (memcmp(&Frag2.Fragment.pViews[i].pTracks[k][j].LastZ, &pReadFrag2->Fragment.pViews[i].pTracks[k][j].LastZ, sizeof(Frag2.Fragment.pViews[i].pTracks[k][j].LastZ))) printf("Track section different!", "Debug", MB_ICONERROR | MB_OK);
495 if (memcmp(&Frag2.Fragment.pViews[i].pTracks[k][j].Sigma, &pReadFrag2->Fragment.pViews[i].pTracks[k][j].Sigma, sizeof(Frag2.Fragment.pViews[i].pTracks[k][j].Sigma))) printf("Track section different!", "Debug", MB_ICONERROR | MB_OK);
496 if (!pReadFrag2->Fragment.pViews[i].pTracks[k][j].Valid) printf("Inconsistency in track section!", "Debug", MB_ICONERROR | MB_OK);
497 if ((Frag2.Fragment.pViews[i].pTracks[k][j].pCorrection == 0) ^ (pReadFrag2->Fragment.pViews[i].pTracks[k][j].pCorrection == 0)) printf("Inconsistency in track section!", "Debug", MB_ICONERROR | MB_OK);
498 if (Frag2.Fragment.pViews[i].pTracks[k][j].pCorrection)
499 if (memcmp(Frag2.Fragment.pViews[i].pTracks[k][j].pCorrection, pReadFrag2->Fragment.pViews[i].pTracks[k][j].pCorrection, Frag2.Fragment.FitCorrectionDataSize)) printf("Correction section different!", "Debug", MB_ICONERROR | MB_OK);
501 {
502 if (pReadFrag2->Fragment.pViews[i].pTracks[k][j].pGrains) printf("Inconsistency in points section!", "Debug", MB_ICONERROR | MB_OK);
503 }
504 else
505 {
506 if ((Frag2.Fragment.pViews[i].pTracks[k][j].pGrains == 0) ^ (pReadFrag2->Fragment.pViews[i].pTracks[k][j].pGrains == 0)) printf("Inconsistency in points section!", "Debug", MB_ICONERROR | MB_OK);
507 if (Frag2.Fragment.pViews[i].pTracks[k][j].pGrains)
508 if (memcmp(Frag2.Fragment.pViews[i].pTracks[k][j].pGrains, pReadFrag2->Fragment.pViews[i].pTracks[k][j].pGrains,
sizeof(
TVector) * Frag2.Fragment.pViews[i].pTracks[k][j].Grains)) printf(
"Points section different!",
"Debug", MB_ICONERROR | MB_OK);
509 };
510 };
511 };
512 };
513
514 if (pReadFrag2) CoTaskMemFree(pReadFrag2);
515
516
517
518 for (i = 0; i < Frag2.Fragment.CountOfViews; i++)
519 {
520 for (k = 0; k < 2; k++)
521 {
522 if (Frag2.Fragment.pViews[i].Layers[k].pLayerInfo) delete [] Frag2.Fragment.pViews[i].Layers[k].pLayerInfo;
523 if (Frag2.Fragment.pViews[i].pTracks[k])
524 {
525 for (j = 0; j < Frag2.Fragment.pViews[i].TCount[k]; j++)
526 {
527 if (Frag2.Fragment.pViews[i].pTracks[k][j].pGrains) delete [] Frag2.Fragment.pViews[i].pTracks[k][j].pGrains;
528 if (Frag2.Fragment.pViews[i].pTracks[k][j].pCorrection) delete [] Frag2.Fragment.pViews[i].pTracks[k][j].pCorrection;
529 };
530 delete [] Frag2.Fragment.pViews[i].pTracks[k];
531 };
532 };
533 };
534 delete [] Frag2.Fragment.pViews;
535
536 };
537
538
539
540
541 iIO2->Release();
542 iIO->Release();
543 return true;
544#else
545 cout <<"Back conversion not implemented for this OS" <<endl;
546 return false;
547#endif
548}
#define SYSAL_MAXCONFIG_ENTRY_VALUE_LEN
Definition: Config.h:6
#define SYSAL_MAXCONFIG_ENTRY_NAME_LEN
Definition: Config.h:5
interface ISySalDataIO ISySalDataIO
Definition: SySalDataIO.h:48
interface ISySalDataIO2 ISySalDataIO2
Definition: SySalDataIO.h:54
EXTERN_C const CLSID CLSID_SySalDataIO
Definition: SySalDataIO.h:887
EXTERN_C const IID IID_ISySalDataIO2
Definition: SySalDataIO.h:726
EXTERN_C const IID IID_ISySalDataIO
Definition: SySalDataIO.h:574
float Sigma
Definition: Track.h:17
TVector Slope
Definition: Track.h:16
TVector SlopeErrors
Definition: Track.h:21
unsigned PointsN
Definition: Track.h:12
TVector * pPoints
Definition: Track.h:13
BYTE * pCorrection
Definition: Track.h:14
float FirstZ
Definition: Track.h:18
boolean Valid
Definition: Track.h:22
float LastZ
Definition: Track.h:19
TVector InterceptErrors
Definition: Track.h:20
int Field
Definition: Track.h:11
TVector Intercept
Definition: Track.h:15
strcpy(cmd,"cp Shower.root Shower2.root")
#define NULL
Definition: nidaqmx.h:84
float Y
Definition: Track2.h:13
unsigned short Area
Definition: Track2.h:11
float Z
Definition: Track2.h:14
float X
Definition: Track2.h:12
Definition: vscan_ds.h:60
float YMax
Definition: vscan_ds.h:74
int CountOfConfigs
Definition: vscan_ds.h:84
float YMin
Definition: vscan_ds.h:74
unsigned char Reserved[256]
Definition: vscan_ds.h:88
float XStep
Definition: vscan_ds.h:75
struct IO_VS_Catalog::@27 Area
float XMin
Definition: vscan_ds.h:74
float YStep
Definition: vscan_ds.h:75
IO_Header Type
Definition: vscan_ds.h:66
VS_Config * pConfigs
Definition: vscan_ds.h:85
struct IO_VS_Catalog::@28 Config
Identifier ID
Definition: vscan_ds.h:67
int XViews
Definition: vscan_ds.h:76
int Fragments
Definition: vscan_ds.h:77
float XMax
Definition: vscan_ds.h:74
int YViews
Definition: vscan_ds.h:76
int * pFragmentIndices
Definition: vscan_ds.h:87
struct IO_VS_Catalog::@26 Hdr
Definition: vscan_ds.h:106
Identifier ID
Definition: vscan_ds.h:113
unsigned char Reserved[256]
Definition: vscan_ds.h:116
struct IO_VS_Fragment2::@30 Hdr
IO_Header Type
Definition: vscan_ds.h:112
VS_Fragment2 Fragment
Definition: vscan_ds.h:115
Definition: vscan_ds.h:92
Identifier ID
Definition: vscan_ds.h:99
struct IO_VS_Fragment::@29 Hdr
VS_Fragment Fragment
Definition: vscan_ds.h:101
IO_Header Type
Definition: vscan_ds.h:98
unsigned char Reserved[256]
Definition: vscan_ds.h:102
int Part[4]
Definition: AcqPlateChanger.h:32
long CountOfItems
Definition: Config.h:11
char * pItems
Definition: Config.h:12
char Name[SYSAL_MAXCONFIG_NAME_LEN]
Definition: Config.h:10
float Z
Definition: TVectors.h:11
float X
Definition: TVectors.h:9
float Y
Definition: TVectors.h:10
int Field
Definition: Track2.h:19
float Sigma
Definition: Track2.h:26
BYTE * pCorrection
Definition: Track2.h:23
TVector Slope
Definition: Track2.h:25
float LastZ
Definition: Track2.h:28
unsigned Grains
Definition: Track2.h:20
float FirstZ
Definition: Track2.h:27
unsigned AreaSum
Definition: Track2.h:21
boolean Valid
Definition: Track2.h:29
Grain * pGrains
Definition: Track2.h:22
TVector Intercept
Definition: Track2.h:24
Definition: vscan_ds.h:34
char ClassName[SYSAL_MAX_CONN_NAME_LEN]
Definition: vscan_ds.h:35
SySalConfig Config
Definition: vscan_ds.h:36
int FitCorrectionDataSize
Definition: vscan_ds.h:54
int StartView
Definition: vscan_ds.h:52
VS_View2 * pViews
Definition: vscan_ds.h:56
int Index
Definition: vscan_ds.h:51
int CountOfViews
Definition: vscan_ds.h:53
int CodingMode
Definition: vscan_ds.h:55
VS_View * pViews
Definition: vscan_ds.h:46
int CodingMode
Definition: vscan_ds.h:45
int Index
Definition: vscan_ds.h:41
int FitCorrectionDataSize
Definition: vscan_ds.h:44
int CountOfViews
Definition: vscan_ds.h:43
int StartView
Definition: vscan_ds.h:42
Definition: VSRawData.h:48
int Clusters
Definition: VSRawData.h:49
float Z
Definition: VSRawData.h:50
int Count
Definition: VSRawData.h:54
struct t_LayerInfo * pLayerInfo
Definition: VSRawData.h:55
float TopInt
Definition: VSRawData.h:43
float TopExt
Definition: VSRawData.h:42
float BottomExt
Definition: VSRawData.h:45
float BottomInt
Definition: VSRawData.h:44
Definition: VSRawData.h:35
float Y[2]
Definition: VSRawData.h:37
float MapX[2]
Definition: VSRawData.h:38
Track2 * pTracks[2]
Definition: VSRawData.h:59
float X[2]
Definition: VSRawData.h:37
float MapY[2]
Definition: VSRawData.h:38
float ImageMat[2][2][2]
Definition: VSRawData.h:39
int TCount[2]
Definition: VSRawData.h:58
int TileY
Definition: VSRawData.h:36
struct VS_View2::t_Layers2 Layers[2]
unsigned char Status[2]
Definition: VSRawData.h:57
struct VS_View2::t_RelevantZs2 RelevantZs
int TileX
Definition: VSRawData.h:36
Definition: VSRawData.h:25
float * pZs
Definition: VSRawData.h:27
int Count
Definition: VSRawData.h:26
float BottomExt
Definition: VSRawData.h:22
float TopExt
Definition: VSRawData.h:19
float TopInt
Definition: VSRawData.h:20
float BottomInt
Definition: VSRawData.h:21
Definition: VSRawData.h:12
int TileX
Definition: VSRawData.h:13
int TileY
Definition: VSRawData.h:13
Track * pTracks[2]
Definition: VSRawData.h:31
struct VS_View::t_Layers Layers[2]
float MapY[2]
Definition: VSRawData.h:15
float MapX[2]
Definition: VSRawData.h:15
float X[2]
Definition: VSRawData.h:14
struct VS_View::t_RelevantZs RelevantZs
float Y[2]
Definition: VSRawData.h:14
float ImageMat[2][2][2]
Definition: VSRawData.h:16
unsigned char Status[2]
Definition: VSRawData.h:29
int TCount[2]
Definition: VSRawData.h:30
p
Definition: testBGReduction_AllMethods.C:8
char * RandomString(int len)
Definition: test.cpp:1
#define VS_COMPRESSION_NULL
Definition: vscan_ds.h:28
#define VS_CATALOG_SECTION
Definition: vscan_ds.h:15
#define VS_FRAGMENT_SECTION
Definition: vscan_ds.h:20
const int VS_COMPRESSION_GRAIN_SUPPRESSION
Definition: vscan_ds.linux.h:35
const int VS_OLD_HEADER_TYPE
Definition: vscan_ds.linux.h:27
const int VS_HEADER_TYPE
Definition: vscan_ds.linux.h:28
const int VS_HEADER_BYTES
Definition: vscan_ds.linux.h:25