207 std::vector<View> viewArr;
208 std::vector<Track> trackArr;
211 std::ifstream infile(
_fragFileName.c_str(),std::ios::binary);
212 for(
int i=0; i<5; i++) {
221 std::cout <<
"Failed to open file: " <<
_fragFileName.c_str() << std::endl;
225 unsigned short headerFormat;
227 unsigned int index, startView, nViews, fitCorrectionDataSize;
251 if (!(codingMode == 0 || codingMode == 258))
253 std::cerr <<
"Unsupported fragment coding mode" << std::endl;
256 infile.seekg(256,std::ios::cur);
258 if (headerFormat == 1795)
263 for (
unsigned int i = 0; i < nViews; i++)
266 Side topSide, bottomSide;
288 double mxx,mxy,myx,myy;
293 topSide.
setM(mxx,mxy,myx,myy);
298 bottomSide.
setM(mxx,mxy,myx,myy);
308 bottomSide.
setTopZ(readDouble);
324 viewArr.push_back(view);
326 for (
unsigned int i = 0; i < nViews; i++)
329 for (
int j = 0; j < viewArr.at(i).getTopSide()->getLayers(); j++)
333 if(headerFormat == 1794 || headerFormat == 1795)
340 viewArr.at(i).getTopSide()->addLayer(
grains,z);
344 for (
int j = 0; j < viewArr.at(i).getBottomSide()->getLayers(); j++)
349 if(headerFormat == 1794 || headerFormat == 1795)
356 viewArr.at(i).getBottomSide()->addLayer(
grains,z);
361 for (
unsigned int i = 0; i < nViews; i++)
364 unsigned int readUInt;
365 for (
int j = 0; j < viewArr.at(i).getTopSide()->getTracks(); j++)
369 tr.setAreaSum(readUInt);
371 tr.setCount(
static_cast<short>(readUInt));
379 tr.setSX(readDouble);
381 tr.setSY(readDouble);
383 tr.setSZ(readDouble);
385 tr.setSigma(readDouble);
387 tr.setTopZ(readDouble);
389 tr.setBottomZ(readDouble);
390 viewArr.at(i).getTopSide()->addTrack(
tr);
393 for (
int j = 0; j < viewArr.at(i).getBottomSide()->getTracks(); j++)
396 tr.setAreaSum(readUInt);
398 tr.setCount(
static_cast<short>(readUInt));
406 tr.setSX(readDouble);
408 tr.setSY(readDouble);
410 tr.setSZ(readDouble);
412 tr.setSigma(readDouble);
414 tr.setTopZ(readDouble);
416 tr.setBottomZ(readDouble);
417 viewArr.at(i).getBottomSide()->addTrack(
tr);
423 for (
unsigned int i = 0; i < nViews; i++)
425 for (
int j = 0; j < viewArr.at(i).getTopSide()->getTracks(); j++)
428 Track *
tr = viewArr.at(i).getTopSide()->getTrackAt(j);
429 for (
int k = 0; k <
tr->getCount(); k++)
431 if (headerFormat == 1795)
433 unsigned int readUInt;
434 infile.read((
char*)&readUInt,4);
439 infile.read((
char*)&readDouble,8);
441 infile.read((
char*)&readDouble,8);
443 infile.read((
char*)&readDouble,8);
448 tr->evaluateEstimators();
450 for (
int j = 0; j < viewArr.at(i).getBottomSide()->getTracks(); j++)
453 Track *
tr = viewArr.at(i).getBottomSide()->getTrackAt(j);
454 for (
int k = 0; k <
tr->getCount(); k++)
456 if (headerFormat == 1795)
458 unsigned int readUInt;
459 infile.read((
char*)&readUInt,4);
464 infile.read((
char*)&readDouble,8);
466 infile.read((
char*)&readDouble,8);
468 infile.read((
char*)&readDouble,8);
473 tr->evaluateEstimators();
487 for (
unsigned int i = 0; i < nViews; i++)
490 Side topSide, bottomSide;
497 infile.read((
char*)&readFloat,4);
499 infile.read((
char*)&readFloat,4);
501 infile.read((
char*)&readFloat,4);
503 infile.read((
char*)&readFloat,4);
505 infile.read((
char*)&readFloat,4);
507 infile.read((
char*)&readFloat,4);
509 infile.read((
char*)&readFloat,4);
511 infile.read((
char*)&readFloat,4);
514 float mxx4bytes,mxy4bytes,myx4bytes,myy4bytes;
515 infile.read((
char*)&mxx4bytes,4);
516 infile.read((
char*)&mxy4bytes,4);
517 infile.read((
char*)&myx4bytes,4);
518 infile.read((
char*)&myy4bytes,4);
519 topSide.
setM(mxx4bytes,mxy4bytes,myx4bytes,myy4bytes);
521 infile.read((
char*)&mxx4bytes,4);
522 infile.read((
char*)&mxy4bytes,4);
523 infile.read((
char*)&myx4bytes,4);
524 infile.read((
char*)&myy4bytes,4);
525 bottomSide.
setM(mxx4bytes,mxy4bytes,myx4bytes,myy4bytes);
533 infile.read((
char*)&readFloat,4);
535 infile.read((
char*)&readFloat,4);
537 infile.read((
char*)&readFloat,4);
539 infile.read((
char*)&readFloat,4);
542 unsigned int readUInt;
555 viewArr.push_back(view);
557 for (
unsigned int i = 0; i < nViews; i++)
560 for (
int j = 0; j < viewArr.at(i).getTopSide()->getLayers(); j++)
564 if(headerFormat == 1794 || headerFormat == 1795)
570 infile.read((
char*)&readFloat,4);
572 viewArr.at(i).getTopSide()->addLayer(
grains,z);
576 for (
int j = 0; j < viewArr.at(i).getBottomSide()->getLayers(); j++)
581 if(headerFormat == 1794 || headerFormat == 1795)
587 infile.read((
char*)&readFloat,4);
589 viewArr.at(i).getBottomSide()->addLayer(
grains,z);
594 for (
unsigned int i = 0; i < nViews; i++)
597 unsigned int readUInt;
598 for (
int j = 0; j < viewArr.at(i).getTopSide()->getTracks(); j++)
602 tr.setAreaSum(readUInt);
604 tr.setCount(
static_cast<short>(readUInt));
606 infile.read((
char*)&readFloat,4);
608 infile.read((
char*)&readFloat,4);
610 infile.read((
char*)&readFloat,4);
612 infile.read((
char*)&readFloat,4);
614 infile.read((
char*)&readFloat,4);
616 infile.read((
char*)&readFloat,4);
618 infile.read((
char*)&readFloat,4);
619 tr.setSigma(readFloat);
620 infile.read((
char*)&readFloat,4);
621 tr.setTopZ(readFloat);
622 infile.read((
char*)&readFloat,4);
623 tr.setBottomZ(readFloat);
624 if(headerFormat == 1793)
626 infile.read((
char*)&readFloat,4);infile.read((
char*)&readFloat,4);
627 infile.read((
char*)&readFloat,4);infile.read((
char*)&readFloat,4);
628 infile.read((
char*)&readFloat,4);infile.read((
char*)&readFloat,4);
632 viewArr.at(i).getTopSide()->addTrack(
tr);
636 for (
int j = 0; j < viewArr.at(i).getBottomSide()->getTracks(); j++)
640 tr.setAreaSum(readUInt);
642 tr.setCount(
static_cast<short>(readUInt));
644 infile.read((
char*)&readFloat,4);
646 infile.read((
char*)&readFloat,4);
648 infile.read((
char*)&readFloat,4);
650 infile.read((
char*)&readFloat,4);
652 infile.read((
char*)&readFloat,4);
654 infile.read((
char*)&readFloat,4);
656 infile.read((
char*)&readFloat,4);
657 tr.setSigma(readFloat);
658 infile.read((
char*)&readFloat,4);
659 tr.setTopZ(readFloat);
660 infile.read((
char*)&readFloat,4);
661 tr.setBottomZ(readFloat);
662 if(headerFormat == 1793)
664 infile.read((
char*)&readFloat,4);infile.read((
char*)&readFloat,4);
665 infile.read((
char*)&readFloat,4);infile.read((
char*)&readFloat,4);
666 infile.read((
char*)&readFloat,4);infile.read((
char*)&readFloat,4);
670 viewArr.at(i).getBottomSide()->addTrack(
tr);
676 for (
unsigned int i = 0; i < nViews; i++)
678 for (
int j = 0; j < viewArr.at(i).getTopSide()->getTracks(); j++)
681 Track *
tr = viewArr.at(i).getTopSide()->getTrackAt(j);
682 for (
int k = 0; k <
tr->getCount(); k++)
684 if (headerFormat == 1794)
686 unsigned int readUInt;
692 infile.read((
char*)&readFloat,4);
694 infile.read((
char*)&readFloat,4);
696 infile.read((
char*)&readFloat,4);
701 tr->evaluateEstimators();
704 for (
int j = 0; j < viewArr.at(i).getBottomSide()->getTracks(); j++)
707 Track *
tr = viewArr.at(i).getBottomSide()->getTrackAt(j);
708 for (
int k = 0; k <
tr->getCount(); k++)
710 if (headerFormat == 1794)
712 unsigned int readUInt;
718 infile.read((
char*)&readFloat,4);
720 infile.read((
char*)&readFloat,4);
722 infile.read((
char*)&readFloat,4);
727 tr->evaluateEstimators();
void setViewsArray(std::vector< View > vArr)
Definition: Fragment.cpp:13
void setFragmentCoding(int fragmentCoding)
Definition: Fragment.h:23
void setId(HeaderInfo id)
Definition: Fragment.cpp:22
void setStartView(unsigned int startView)
Definition: Fragment.h:25
void setViews(int nViews)
Definition: Fragment.h:26
void setIndex(unsigned int index)
Definition: Fragment.h:24
void initFragment()
Definition: ProcessRawData.cpp:26
void setLayers(int nLayers)
Definition: Side.h:46
void setBottomZ(double bottomZ)
Definition: Side.h:37
void setTopZ(double topZ)
Definition: Side.h:36
void setMappedFovPosY(double posy)
Definition: Side.h:42
void setTracks(int nTracks)
Definition: Side.h:44
void setM(double mxx, double mxy, double myx, double myy)
Definition: Side.cpp:45
void setFlag(int flag)
Definition: Side.h:45
void setMappedFovPosX(double posx)
Definition: Side.h:41
void setStageFovPosX(double posx)
Definition: Side.h:39
void setStageFovPosY(double posy)
Definition: Side.h:40
void setTopSide(Side side)
Definition: View.h:39
void setId(int id)
Definition: View.h:41
void setTileY(int y)
Definition: View.h:48
void setBottomSide(Side side)
Definition: View.h:40
void setTileX(int x)
Definition: View.h:47
grains()
Definition: grains.C:3
double y
Definition: Struct.h:36
double x
Definition: Struct.h:35
unsigned short area
Definition: Struct.h:34
double z
Definition: Struct.h:37