FEDRA emulsion software from the OPERA Collaboration
test.cpp File Reference

Functions

char * RandomString (int len)
 
int Test ()
 

Function Documentation

◆ RandomString()

char* RandomString ( int  len)
2 {
3  char* Temp = new char[len];
4  Temp = "";
5  while (len-- > 0) Temp += (rand() % 26 + 'A');
6  return Temp;
7 }

◆ Test()

int Test ( )
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;
27  IO_VS_Catalog Cat;
28  IO_VS_Fragment Frag;
29  IO_VS_Fragment2 Frag2;
30  int i, j, k, fi;
31 
32  ISySalDataIO* iIO;
33  ISySalDataIO2* iIO2;
34  CoInitialize(NULL);
35  CoCreateInstance(CLSID_SySalDataIO, NULL, CLSCTX_INPROC_SERVER,
36  IID_ISySalDataIO, (void **)&iIO);
37  iIO->QueryInterface(IID_ISySalDataIO2, (void**)&iIO2);
38 
39 /* BEGIN CATALOG TEST */
40 
41  Cat.Hdr.ID.Part[0] = 1234;
42  Cat.Hdr.ID.Part[1] = 5678;
43  Cat.Hdr.ID.Part[2] = 9101112;
44  Cat.Hdr.ID.Part[3] = 13141516;
47  for (i = 0; i < sizeof(Cat.Reserved); i++) Cat.Reserved[i] = i;
48  Cat.Area.Fragments = m_Fragments;
49  Cat.Area.XViews = m_Views;
50  Cat.Area.YViews = m_Fragments;
51  Cat.Area.XMin = (rand() % 1000) * 500.;
52  Cat.Area.YMin = ((rand() ^ 0xffdba324) % 1000) * 500.;
53  Cat.Area.XStep = 330.f;
54  Cat.Area.YStep = 330.f;
55  Cat.Area.XMax = Cat.Area.XMin + Cat.Area.XViews * (Cat.Area.XStep + 1);
56  Cat.Area.YMax = Cat.Area.YMax + Cat.Area.YViews * (Cat.Area.YStep + 1);
57  Cat.pFragmentIndices = new int[Cat.Area.XViews * Cat.Area.YViews];
58  for (i = 0; i < (Cat.Area.XViews * Cat.Area.YViews); i++)
59  Cat.pFragmentIndices[i] = i / Cat.Area.XViews + 1;
60  Cat.Config.CountOfConfigs = rand() % 8;
62  for (i = 0; i < Cat.Config.CountOfConfigs; i++)
63  {
66  Cat.Config.pConfigs[i].Config.CountOfItems = rand() % 32;
68  new char[Cat.Config.pConfigs[i].Config.CountOfItems *
70  for (j = 0; j < Cat.Config.pConfigs[i].Config.CountOfItems; j++)
71  {
72  strcpy(Cat.Config.pConfigs[i].Config.pItems + j *
74  strcpy(Cat.Config.pConfigs[i].Config.pItems + j *
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  //TempPath.ReleaseBuffer();
86 
87 cout << jkl++ ;
88 
89 IO_VS_Catalog *pReadCat = 0;
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  //TempPath.ReleaseBuffer();
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);
107  if (memcmp(Cat.Config.pConfigs[i].Config.pItems, pReadCat->Config.pConfigs[i].Config.pItems, Cat.Config.pConfigs[i].Config.CountOfItems * (SYSAL_MAXCONFIG_ENTRY_NAME_LEN + SYSAL_MAXCONFIG_ENTRY_VALUE_LEN))) 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 // DeleteFile(m_Path);
122 
123 /* END CATALOG TEST */
124 
125 /* BEGIN FRAGMENT TEST */
126 
127  for (fi = 0; fi < Cat.Area.YViews; )
128  {
129  Frag.Hdr.ID = Cat.Hdr.ID;
132  for (i = 0; i < sizeof(Frag.Reserved); i++) Frag.Reserved[i] = i;
133  Frag.Fragment.CountOfViews = Cat.Area.XViews;
135  Frag.Fragment.FitCorrectionDataSize = ((rand() % 4) >> 1) ? 16 : 0;
136  Frag.Fragment.StartView = fi * Cat.Area.XViews;
137  Frag.Fragment.Index = fi + 1;
138  Frag.Fragment.pViews = new VS_View[Cat.Area.XViews];
139  for (i = 0; i < Cat.Area.XViews; i++)
140  {
141  Frag.Fragment.pViews[i].TileX = i;
142  Frag.Fragment.pViews[i].TileY = fi;
143  Frag.Fragment.pViews[i].RelevantZs.TopExt = 125.f + (rand() % 16) * .5f;
144  Frag.Fragment.pViews[i].RelevantZs.TopInt = Frag.Fragment.pViews[i].RelevantZs.TopExt - 25.f;
147  for (k = 0; k < 2; k++)
148  {
149  Frag.Fragment.pViews[i].X[k] = Cat.Area.XStep * Frag.Fragment.pViews[i].TileX + (rand() % 101 - 50) * .02;
150  Frag.Fragment.pViews[i].Y[k] = Cat.Area.YStep * Frag.Fragment.pViews[i].TileY + (rand() % 101 - 50) * .02;
151  Frag.Fragment.pViews[i].MapX[k] = Frag.Fragment.pViews[i].X[k];
152  Frag.Fragment.pViews[i].MapY[k] = Frag.Fragment.pViews[i].Y[k];
153  Frag.Fragment.pViews[i].ImageMat[k][0][0] = Frag.Fragment.pViews[i].ImageMat[k][1][1] = 1.;
154  Frag.Fragment.pViews[i].ImageMat[k][0][1] = Frag.Fragment.pViews[i].ImageMat[k][1][0] = 0.;
155  Frag.Fragment.pViews[i].Layers[k].Count = 12;
156  Frag.Fragment.pViews[i].Layers[k].pZs = new float[Frag.Fragment.pViews[i].Layers[k].Count];
157  for (j = 0; j < Frag.Fragment.pViews[i].Layers[k].Count; j++)
158  Frag.Fragment.pViews[i].Layers[k].pZs[j] = (k ? Frag.Fragment.pViews[i].RelevantZs.BottomInt : Frag.Fragment.pViews[i].RelevantZs.TopExt) - j * 25.f / 11.f ;
159  Frag.Fragment.pViews[i].Status[k] = rand() % 3;
160  Frag.Fragment.pViews[i].TCount[k] = rand() % (m_MaxTracks - m_MinTracks) + m_MinTracks;
161  Frag.Fragment.pViews[i].pTracks[k] = Frag.Fragment.pViews[i].TCount[k] ? new Track[Frag.Fragment.pViews[i].TCount[k]] : 0;
162  for (j = 0; j < Frag.Fragment.pViews[i].TCount[k]; j++)
163  {
164  Track &T = Frag.Fragment.pViews[i].pTracks[k][j];
165  T.Field = i;
166  T.PointsN = 8 + rand() % 4;
168  T.FirstZ = T.LastZ + T.PointsN * 25.f / 11.f;
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;
174  T.Slope.Z = 1.f;
175  T.InterceptErrors.X = (rand() % 10) * .1f;
176  T.InterceptErrors.Y = (rand() % 10) * .1f;
177  T.InterceptErrors.X = (rand() % 10) * .01f;
178  T.SlopeErrors.X = (rand() % 10) * .0001f;
179  T.SlopeErrors.Y = (rand() % 10) * .0001f;
180  T.SlopeErrors.Z = 0.;
181  T.Sigma = hypot(T.InterceptErrors.X, T.InterceptErrors.Y);
182  T.Valid = true;
183  T.pPoints = new TVector[T.PointsN];
184  int p;
185  for (p = 0; p < T.PointsN; p++)
186  {
187  T.pPoints[p].X = (rand() % 101 - 99) * .01;
188  T.pPoints[p].Y = (rand() % 101 - 99) * .01;
189  T.pPoints[p].Z = Frag.Fragment.pViews[i].Layers[k].pZs[p];
190  };
192  {
193  T.pCorrection = new BYTE[Frag.Fragment.FitCorrectionDataSize];
194  for (p = 0; p < Frag.Fragment.FitCorrectionDataSize; T.pCorrection[p++] = rand() % 256);
195  }
196  else T.pCorrection = 0;
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  //TempPath.ReleaseBuffer();
207 
208  IO_VS_Fragment *pReadFrag = 0;
209  if (iIO->Read(0, (BYTE *)&pReadFrag, &ExtErrorInfo, (UCHAR *)TempPath) != S_OK)
210  {
211  printf("Error Reading", "Debug", MB_ICONERROR | MB_OK);
212  };
213  //TempPath.ReleaseBuffer();
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);
250  if (Frag.Fragment.CodingMode == VS_COMPRESSION_GRAIN_SUPPRESSION)
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 // DeleteFile(m_Path);
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 /* END FRAGMENT TEST */
289 
290 /* ----- NEW ------------------------------------------------------- */
291 
292 /* BEGIN CATALOG TEST */
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;
298  Cat.Hdr.Type.InfoType = VS_HEADER_BYTES | VS_CATALOG_SECTION;
299  Cat.Hdr.Type.HeaderFormat = VS_HEADER_TYPE;
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  {
317  strcpy(Cat.Config.pConfigs[i].ClassName, RandomString(16));
318  strcpy(Cat.Config.pConfigs[i].Config.Name, RandomString(16));
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  //TempPath.ReleaseBuffer();
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  //TempPath.ReleaseBuffer();
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);
357  if (memcmp(Cat.Config.pConfigs[i].Config.pItems, pReadCat->Config.pConfigs[i].Config.pItems, Cat.Config.pConfigs[i].Config.CountOfItems * (SYSAL_MAXCONFIG_ENTRY_NAME_LEN + SYSAL_MAXCONFIG_ENTRY_VALUE_LEN))) 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 // DeleteFile(m_Path);
372 
373 /* END CATALOG TEST */
374 
375 /* BEGIN FRAGMENT TEST */
376 
377  for (fi = 0; fi < Cat.Area.YViews; )
378  {
379  Frag2.Hdr.ID = Cat.Hdr.ID;
382  for (i = 0; i < sizeof(Frag2.Reserved); i++) Frag2.Reserved[i] = i;
383  Frag2.Fragment.CountOfViews = Cat.Area.XViews;
385  Frag2.Fragment.FitCorrectionDataSize = 0;//((rand() % 4) >> 1) ? 16 : 0;
386  Frag2.Fragment.StartView = fi * Cat.Area.XViews;
387  Frag2.Fragment.Index = fi + 1;
388  Frag2.Fragment.pViews = new VS_View2[Cat.Area.XViews];
389  for (i = 0; i < Cat.Area.XViews; i++)
390  {
391  Frag2.Fragment.pViews[i].TileX = i;
392  Frag2.Fragment.pViews[i].TileY = fi;
393  Frag2.Fragment.pViews[i].RelevantZs.TopExt = 125.f + (rand() % 16) * .5f;
394  Frag2.Fragment.pViews[i].RelevantZs.TopInt = Frag2.Fragment.pViews[i].RelevantZs.TopExt - 25.f;
395  Frag2.Fragment.pViews[i].RelevantZs.BottomInt = Frag2.Fragment.pViews[i].RelevantZs.TopInt - 200.f;
397  for (k = 0; k < 2; k++)
398  {
399  Frag2.Fragment.pViews[i].X[k] = Cat.Area.XStep * Frag2.Fragment.pViews[i].TileX + (rand() % 101 - 50) * .02;
400  Frag2.Fragment.pViews[i].Y[k] = Cat.Area.YStep * Frag2.Fragment.pViews[i].TileY + (rand() % 101 - 50) * .02;
401  Frag2.Fragment.pViews[i].MapX[k] = Frag2.Fragment.pViews[i].X[k];
402  Frag2.Fragment.pViews[i].MapY[k] = Frag2.Fragment.pViews[i].Y[k];
403  Frag2.Fragment.pViews[i].ImageMat[k][0][0] = Frag2.Fragment.pViews[i].ImageMat[k][1][1] = 1.;
404  Frag2.Fragment.pViews[i].ImageMat[k][0][1] = Frag2.Fragment.pViews[i].ImageMat[k][1][0] = 0.;
405  Frag2.Fragment.pViews[i].Layers[k].Count = 12;
407  for (j = 0; j < Frag2.Fragment.pViews[i].Layers[k].Count; j++)
408  {
409  Frag2.Fragment.pViews[i].Layers[k].pLayerInfo[j].Clusters = 500 + rand() % 1000;
410  Frag2.Fragment.pViews[i].Layers[k].pLayerInfo[j].Z = (k ? Frag2.Fragment.pViews[i].RelevantZs.BottomInt : Frag2.Fragment.pViews[i].RelevantZs.TopExt) - j * 25.f / 11.f ;
411  }
412  Frag2.Fragment.pViews[i].Status[k] = rand() % 3;
413  Frag2.Fragment.pViews[i].TCount[k] = rand() % (m_MaxTracks - m_MinTracks) + m_MinTracks;
414  Frag2.Fragment.pViews[i].pTracks[k] = Frag2.Fragment.pViews[i].TCount[k] ? new Track2[Frag2.Fragment.pViews[i].TCount[k]] : 0;
415  for (j = 0; j < Frag2.Fragment.pViews[i].TCount[k]; j++)
416  {
417  Track2 &T = Frag2.Fragment.pViews[i].pTracks[k][j];
418  T.Field = i;
419  T.AreaSum = 0;
420  T.Grains = 8 + rand() % 4;
421  T.LastZ = (k ? Frag2.Fragment.pViews[i].RelevantZs.BottomExt : Frag2.Fragment.pViews[i].RelevantZs.TopInt);
422  T.FirstZ = T.LastZ + T.Grains * 25.f / 11.f;
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;
428  T.Slope.Z = 1.f;
429  T.Sigma = rand() % 1000 * 0.0001;
430  T.Valid = true;
431  T.pGrains = new Grain[T.Grains];
432  int p;
433  for (p = 0; p < T.Grains; p++)
434  {
435  T.pGrains[p].Area = 4 + rand() % 30;
436  T.AreaSum += T.pGrains[p].Area;
437  T.pGrains[p].X = (rand() % 101 - 99) * .01;
438  T.pGrains[p].Y = (rand() % 101 - 99) * .01;
439  T.pGrains[p].Z = Frag2.Fragment.pViews[i].Layers[k].pLayerInfo[p].Z;
440  };
441 // if (Frag2.Fragment.FitCorrectionDataSize)
442 // {
443 // T.pCorrection = new BYTE[Frag2.Fragment.FitCorrectionDataSize];
444 // for (p = 0; p < Frag2.Fragment.FitCorrectionDataSize; T.pCorrection[p++] = rand() % 256);
445 // }
446 // else
447  T.pCorrection = 0;
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  //TempPath.ReleaseBuffer();
458 
459  IO_VS_Fragment2 *pReadFrag2 = 0;
460  if (iIO2->Read2(0, (BYTE *)&pReadFrag2, &ExtErrorInfo, (UCHAR *)TempPath) != S_OK)
461  {
462  printf("Error Reading", "Debug", MB_ICONERROR | MB_OK);
463  };
464  //TempPath.ReleaseBuffer();
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);
500  if (Frag2.Fragment.CodingMode == VS_COMPRESSION_GRAIN_SUPPRESSION)
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 // DeleteFile(m_Path);
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 /* END FRAGMENT TEST */
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
Definition: Track.h:10
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
Definition: Struct.h:33
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
WORD HeaderFormat
Definition: id.h:15
BYTE InfoType
Definition: id.h:14
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::@28 Hdr
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
Identifier ID
Definition: vscan_ds.h:67
struct IO_VS_Catalog::@30 Config
int XViews
Definition: vscan_ds.h:76
int Fragments
Definition: vscan_ds.h:77
float XMax
Definition: vscan_ds.h:74
struct IO_VS_Catalog::@29 Area
int YViews
Definition: vscan_ds.h:76
int * pFragmentIndices
Definition: vscan_ds.h:87
Definition: vscan_ds.h:106
Identifier ID
Definition: vscan_ds.h:113
unsigned char Reserved[256]
Definition: vscan_ds.h:116
IO_Header Type
Definition: vscan_ds.h:112
struct IO_VS_Fragment2::@32 Hdr
VS_Fragment2 Fragment
Definition: vscan_ds.h:115
Definition: vscan_ds.h:92
Identifier ID
Definition: vscan_ds.h:99
struct IO_VS_Fragment::@31 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
Definition: TVectors.h:8
float Z
Definition: TVectors.h:11
float X
Definition: TVectors.h:9
float Y
Definition: TVectors.h:10
Definition: Track2.h:18
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