// File: Luthaf[P]zeopp/material.cc
// Function: MATERIAL::PLDvisualize(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
void MATERIAL::PLDvisualize(string basefilename, string visformat){

  fstream output;

  // Three data structures storing information about 
  vector<Point> NodesFracCoord;
  vector<int> NodesSegmentIDs;
  vector<double> NodesSize;

  string filename_vis;
  if(visformat == "ZEOVIS") filename_vis = basefilename + ".zpld_segments";
  if(visformat == "VISIT") filename_vis = basefilename + ".vpld_segments";
  if(visformat == "LIVERPOOL") filename_vis = basefilename + ".lpld_segments";
  output.open(filename_vis.data(), fstream::out);

  accessAnalysis.getPLDvisData(&NodesFracCoord, &NodesSegmentIDs, &NodesSize, "INITSEGMAP");
  NEWreportPointsValue(output, &atmnet, &NodesFracCoord, &NodesSegmentIDs, &NodesSize, visformat);

  output.close();

  if(visformat == "ZEOVIS") filename_vis = basefilename + ".zpld_segmentdi";
  if(visformat == "VISIT") filename_vis = basefilename + ".vpld_segmentdi";
  if(visformat == "LIVERPOOL") filename_vis = basefilename + ".lpld_segmentdi";
  output.open(filename_vis.data(), fstream::out);

  accessAnalysis.getPLDvisData(&NodesFracCoord, &NodesSegmentIDs, &NodesSize, "INITSEGDINODE");
  NEWreportPointsValue(output, &atmnet, &NodesFracCoord, &NodesSegmentIDs, &NodesSize, visformat);

  output.close();

  if(visformat == "ZEOVIS") filename_vis = basefilename + ".zpld_segmentpld";
  if(visformat == "VISIT") filename_vis = basefilename + ".vpld_segmentpld";
  if(visformat == "LIVERPOOL") filename_vis = basefilename + ".lpld_segmentpld";
  output.open(filename_vis.data(), fstream::out);

  accessAnalysis.getPLDvisData(&NodesFracCoord, &NodesSegmentIDs, &NodesSize, "PLDNODES");
  NEWreportPointsValue(output, &atmnet, &NodesFracCoord, &NodesSegmentIDs, &NodesSize, visformat);

  output.close();

  if(visformat == "ZEOVIS") filename_vis = basefilename + ".zpld_segmentdf";
  if(visformat == "VISIT") filename_vis = basefilename + ".vpld_segmentdf";
  if(visformat == "LIVERPOOL") filename_vis = basefilename + ".lpld_segmentdf";
  output.open(filename_vis.data(), fstream::out);

  accessAnalysis.getPLDvisData(&NodesFracCoord, &NodesSegmentIDs, &NodesSize, "DFSPHERES");
  NEWreportPointsValue(output, &atmnet, &NodesFracCoord, &NodesSegmentIDs, &NodesSize, visformat);

  output.close();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x600, %rsp            # imm = 0x600
movq %rsi, -0x560(%rbp)
movq %rdx, -0x550(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x558(%rbp)
leaq -0x228(%rbp), %rdi
callq 0x5660
leaq -0x240(%rbp), %rdi
callq 0xed40
leaq -0x258(%rbp), %rdi
callq 0xd0d0
leaq -0x270(%rbp), %rdi
callq 0xf650
leaq -0x290(%rbp), %rdi
callq 0x5720
movq -0x550(%rbp), %rdi
leaq 0x83586(%rip), %rsi     # 0x1f6640
callq 0x845d0
movb %al, -0x541(%rbp)
jmp 0x1730c7
movb -0x541(%rbp), %al
testb $0x1, %al
jne 0x1730d3
jmp 0x173127
movq -0x560(%rbp), %rsi
leaq 0x8c56a(%rip), %rdx     # 0x1ff64b
leaq -0x2c0(%rbp), %rdi
callq 0xaf950
jmp 0x1730ef
leaq -0x290(%rbp), %rdi
leaq -0x2c0(%rbp), %rsi
callq 0x5680
leaq -0x2c0(%rbp), %rdi
callq 0x5300
jmp 0x173127
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x298(%rbp)
movl %eax, -0x29c(%rbp)
jmp 0x173bcd
movq -0x550(%rbp), %rdi
leaq 0x83542(%rip), %rsi     # 0x1f6677
callq 0x845d0
movb %al, -0x561(%rbp)
jmp 0x173142
movb -0x561(%rbp), %al
testb $0x1, %al
jne 0x17314e
jmp 0x173189
movq -0x560(%rbp), %rsi
leaq 0x8c4fe(%rip), %rdx     # 0x1ff65a
leaq -0x2e0(%rbp), %rdi
callq 0xaf950
jmp 0x17316a
leaq -0x290(%rbp), %rdi
leaq -0x2e0(%rbp), %rsi
callq 0x5680
leaq -0x2e0(%rbp), %rdi
callq 0x5300
movq -0x550(%rbp), %rdi
leaq 0x834f2(%rip), %rsi     # 0x1f6689
callq 0x845d0
movb %al, -0x562(%rbp)
jmp 0x1731a4
movb -0x562(%rbp), %al
testb $0x1, %al
jne 0x1731b0
jmp 0x1731eb
movq -0x560(%rbp), %rsi
leaq 0x8c4ab(%rip), %rdx     # 0x1ff669
leaq -0x300(%rbp), %rdi
callq 0xaf950
jmp 0x1731cc
leaq -0x290(%rbp), %rdi
leaq -0x300(%rbp), %rsi
callq 0x5680
leaq -0x300(%rbp), %rdi
callq 0x5300
leaq -0x290(%rbp), %rdi
callq 0x52c0
movq %rax, %rsi
leaq -0x228(%rbp), %rdi
movl $0x10, %edx
callq 0x54b0
jmp 0x17320d
movq -0x558(%rbp), %rax
addq $0x990, %rax            # imm = 0x990
movq %rax, -0x578(%rbp)
leaq -0x321(%rbp), %rdi
movq %rdi, -0x570(%rbp)
callq 0x5900
movq -0x570(%rbp), %rdx
leaq 0x89c7f(%rip), %rsi     # 0x1fcec1
leaq -0x320(%rbp), %rdi
callq 0x47530
jmp 0x173250
movq -0x578(%rbp), %rdi
leaq -0x240(%rbp), %rsi
leaq -0x258(%rbp), %rdx
leaq -0x270(%rbp), %rcx
leaq -0x320(%rbp), %r8
callq 0x100f70
jmp 0x17327a
leaq -0x320(%rbp), %rdi
callq 0x5300
leaq -0x321(%rbp), %rdi
callq 0x55d0
movq -0x558(%rbp), %rax
movq -0x550(%rbp), %rsi
leaq -0x218(%rbp), %rcx
movq %rcx, -0x588(%rbp)
movq %rax, -0x580(%rbp)
leaq -0x348(%rbp), %rdi
callq 0x5220
jmp 0x1732c3
movq -0x580(%rbp), %rsi
movq -0x588(%rbp), %rdi
leaq -0x240(%rbp), %rdx
leaq -0x258(%rbp), %rcx
leaq -0x270(%rbp), %r8
leaq -0x348(%rbp), %r9
callq 0x75990
jmp 0x1732f4
leaq -0x348(%rbp), %rdi
callq 0x5300
leaq -0x228(%rbp), %rdi
callq 0x50a0
jmp 0x17330e
movq -0x550(%rbp), %rdi
leaq 0x83324(%rip), %rsi     # 0x1f6640
callq 0x845d0
movb %al, -0x589(%rbp)
jmp 0x173329
movb -0x589(%rbp), %al
testb $0x1, %al
jne 0x173338
jmp 0x1733db
movq -0x560(%rbp), %rsi
leaq 0x8c332(%rip), %rdx     # 0x1ff678
leaq -0x368(%rbp), %rdi
callq 0xaf950
jmp 0x173354
leaq -0x290(%rbp), %rdi
leaq -0x368(%rbp), %rsi
callq 0x5680
leaq -0x368(%rbp), %rdi
callq 0x5300
jmp 0x1733db
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x298(%rbp)
movl %eax, -0x29c(%rbp)
jmp 0x1733a7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x298(%rbp)
movl %eax, -0x29c(%rbp)
leaq -0x320(%rbp), %rdi
callq 0x5300
leaq -0x321(%rbp), %rdi
callq 0x55d0
jmp 0x173bcd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x298(%rbp)
movl %eax, -0x29c(%rbp)
leaq -0x348(%rbp), %rdi
callq 0x5300
jmp 0x173bcd
movq -0x550(%rbp), %rdi
leaq 0x8328e(%rip), %rsi     # 0x1f6677
callq 0x845d0
movb %al, -0x58a(%rbp)
jmp 0x1733f6
movb -0x58a(%rbp), %al
testb $0x1, %al
jne 0x173402
jmp 0x17343d
movq -0x560(%rbp), %rsi
leaq 0x8c278(%rip), %rdx     # 0x1ff688
leaq -0x388(%rbp), %rdi
callq 0xaf950
jmp 0x17341e
leaq -0x290(%rbp), %rdi
leaq -0x388(%rbp), %rsi
callq 0x5680
leaq -0x388(%rbp), %rdi
callq 0x5300
movq -0x550(%rbp), %rdi
leaq 0x8323e(%rip), %rsi     # 0x1f6689
callq 0x845d0
movb %al, -0x58b(%rbp)
jmp 0x173458
movb -0x58b(%rbp), %al
testb $0x1, %al
jne 0x173464
jmp 0x17349f
movq -0x560(%rbp), %rsi
leaq 0x8c226(%rip), %rdx     # 0x1ff698
leaq -0x3a8(%rbp), %rdi
callq 0xaf950
jmp 0x173480
leaq -0x290(%rbp), %rdi
leaq -0x3a8(%rbp), %rsi
callq 0x5680
leaq -0x3a8(%rbp), %rdi
callq 0x5300
leaq -0x290(%rbp), %rdi
callq 0x52c0
movq %rax, %rsi
leaq -0x228(%rbp), %rdi
movl $0x10, %edx
callq 0x54b0
jmp 0x1734c1
movq -0x558(%rbp), %rax
addq $0x990, %rax            # imm = 0x990
movq %rax, -0x5a0(%rbp)
leaq -0x3c9(%rbp), %rdi
movq %rdi, -0x598(%rbp)
callq 0x5900
movq -0x598(%rbp), %rdx
leaq 0x899e2(%rip), %rsi     # 0x1fced8
leaq -0x3c8(%rbp), %rdi
callq 0x47530
jmp 0x173504
movq -0x5a0(%rbp), %rdi
leaq -0x240(%rbp), %rsi
leaq -0x258(%rbp), %rdx
leaq -0x270(%rbp), %rcx
leaq -0x3c8(%rbp), %r8
callq 0x100f70
jmp 0x17352e
leaq -0x3c8(%rbp), %rdi
callq 0x5300
leaq -0x3c9(%rbp), %rdi
callq 0x55d0
movq -0x558(%rbp), %rax
movq -0x550(%rbp), %rsi
leaq -0x218(%rbp), %rcx
movq %rcx, -0x5b0(%rbp)
movq %rax, -0x5a8(%rbp)
leaq -0x3f0(%rbp), %rdi
callq 0x5220
jmp 0x173577
movq -0x5a8(%rbp), %rsi
movq -0x5b0(%rbp), %rdi
leaq -0x240(%rbp), %rdx
leaq -0x258(%rbp), %rcx
leaq -0x270(%rbp), %r8
leaq -0x3f0(%rbp), %r9
callq 0x75990
jmp 0x1735a8
leaq -0x3f0(%rbp), %rdi
callq 0x5300
leaq -0x228(%rbp), %rdi
callq 0x50a0
jmp 0x1735c2
movq -0x550(%rbp), %rdi
leaq 0x83070(%rip), %rsi     # 0x1f6640
callq 0x845d0
movb %al, -0x5b1(%rbp)
jmp 0x1735dd
movb -0x5b1(%rbp), %al
testb $0x1, %al
jne 0x1735ec
jmp 0x17368f
movq -0x560(%rbp), %rsi
leaq 0x8c0ae(%rip), %rdx     # 0x1ff6a8
leaq -0x410(%rbp), %rdi
callq 0xaf950
jmp 0x173608
leaq -0x290(%rbp), %rdi
leaq -0x410(%rbp), %rsi
callq 0x5680
leaq -0x410(%rbp), %rdi
callq 0x5300
jmp 0x17368f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x298(%rbp)
movl %eax, -0x29c(%rbp)
jmp 0x17365b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x298(%rbp)
movl %eax, -0x29c(%rbp)
leaq -0x3c8(%rbp), %rdi
callq 0x5300
leaq -0x3c9(%rbp), %rdi
callq 0x55d0
jmp 0x173bcd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x298(%rbp)
movl %eax, -0x29c(%rbp)
leaq -0x3f0(%rbp), %rdi
callq 0x5300
jmp 0x173bcd
movq -0x550(%rbp), %rdi
leaq 0x82fda(%rip), %rsi     # 0x1f6677
callq 0x845d0
movb %al, -0x5b2(%rbp)
jmp 0x1736aa
movb -0x5b2(%rbp), %al
testb $0x1, %al
jne 0x1736b6
jmp 0x1736f1
movq -0x560(%rbp), %rsi
leaq 0x8bff5(%rip), %rdx     # 0x1ff6b9
leaq -0x430(%rbp), %rdi
callq 0xaf950
jmp 0x1736d2
leaq -0x290(%rbp), %rdi
leaq -0x430(%rbp), %rsi
callq 0x5680
leaq -0x430(%rbp), %rdi
callq 0x5300
movq -0x550(%rbp), %rdi
leaq 0x82f8a(%rip), %rsi     # 0x1f6689
callq 0x845d0
movb %al, -0x5b3(%rbp)
jmp 0x17370c
movb -0x5b3(%rbp), %al
testb $0x1, %al
jne 0x173718
jmp 0x173753
movq -0x560(%rbp), %rsi
leaq 0x8bfa4(%rip), %rdx     # 0x1ff6ca
leaq -0x450(%rbp), %rdi
callq 0xaf950
jmp 0x173734
leaq -0x290(%rbp), %rdi
leaq -0x450(%rbp), %rsi
callq 0x5680
leaq -0x450(%rbp), %rdi
callq 0x5300
leaq -0x290(%rbp), %rdi
callq 0x52c0
movq %rax, %rsi
leaq -0x228(%rbp), %rdi
movl $0x10, %edx
callq 0x54b0
jmp 0x173775
movq -0x558(%rbp), %rax
addq $0x990, %rax            # imm = 0x990
movq %rax, -0x5c8(%rbp)
leaq -0x471(%rbp), %rdi
movq %rdi, -0x5c0(%rbp)
callq 0x5900
movq -0x5c0(%rbp), %rdx
leaq 0x8973c(%rip), %rsi     # 0x1fcee6
leaq -0x470(%rbp), %rdi
callq 0x47530
jmp 0x1737b8
movq -0x5c8(%rbp), %rdi
leaq -0x240(%rbp), %rsi
leaq -0x258(%rbp), %rdx
leaq -0x270(%rbp), %rcx
leaq -0x470(%rbp), %r8
callq 0x100f70
jmp 0x1737e2
leaq -0x470(%rbp), %rdi
callq 0x5300
leaq -0x471(%rbp), %rdi
callq 0x55d0
movq -0x558(%rbp), %rax
movq -0x550(%rbp), %rsi
leaq -0x218(%rbp), %rcx
movq %rcx, -0x5d8(%rbp)
movq %rax, -0x5d0(%rbp)
leaq -0x498(%rbp), %rdi
callq 0x5220
jmp 0x17382b
movq -0x5d0(%rbp), %rsi
movq -0x5d8(%rbp), %rdi
leaq -0x240(%rbp), %rdx
leaq -0x258(%rbp), %rcx
leaq -0x270(%rbp), %r8
leaq -0x498(%rbp), %r9
callq 0x75990
jmp 0x17385c
leaq -0x498(%rbp), %rdi
callq 0x5300
leaq -0x228(%rbp), %rdi
callq 0x50a0
jmp 0x173876
movq -0x550(%rbp), %rdi
leaq 0x82dbc(%rip), %rsi     # 0x1f6640
callq 0x845d0
movb %al, -0x5d9(%rbp)
jmp 0x173891
movb -0x5d9(%rbp), %al
testb $0x1, %al
jne 0x1738a0
jmp 0x173943
movq -0x560(%rbp), %rsi
leaq 0x8be2d(%rip), %rdx     # 0x1ff6db
leaq -0x4b8(%rbp), %rdi
callq 0xaf950
jmp 0x1738bc
leaq -0x290(%rbp), %rdi
leaq -0x4b8(%rbp), %rsi
callq 0x5680
leaq -0x4b8(%rbp), %rdi
callq 0x5300
jmp 0x173943
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x298(%rbp)
movl %eax, -0x29c(%rbp)
jmp 0x17390f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x298(%rbp)
movl %eax, -0x29c(%rbp)
leaq -0x470(%rbp), %rdi
callq 0x5300
leaq -0x471(%rbp), %rdi
callq 0x55d0
jmp 0x173bcd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x298(%rbp)
movl %eax, -0x29c(%rbp)
leaq -0x498(%rbp), %rdi
callq 0x5300
jmp 0x173bcd
movq -0x550(%rbp), %rdi
leaq 0x82d26(%rip), %rsi     # 0x1f6677
callq 0x845d0
movb %al, -0x5da(%rbp)
jmp 0x17395e
movb -0x5da(%rbp), %al
testb $0x1, %al
jne 0x17396a
jmp 0x1739a5
movq -0x560(%rbp), %rsi
leaq 0x8bd73(%rip), %rdx     # 0x1ff6eb
leaq -0x4d8(%rbp), %rdi
callq 0xaf950
jmp 0x173986
leaq -0x290(%rbp), %rdi
leaq -0x4d8(%rbp), %rsi
callq 0x5680
leaq -0x4d8(%rbp), %rdi
callq 0x5300
movq -0x550(%rbp), %rdi
leaq 0x82cd6(%rip), %rsi     # 0x1f6689
callq 0x845d0
movb %al, -0x5db(%rbp)
jmp 0x1739c0
movb -0x5db(%rbp), %al
testb $0x1, %al
jne 0x1739cc
jmp 0x173a07
movq -0x560(%rbp), %rsi
leaq 0x8bd21(%rip), %rdx     # 0x1ff6fb
leaq -0x4f8(%rbp), %rdi
callq 0xaf950
jmp 0x1739e8
leaq -0x290(%rbp), %rdi
leaq -0x4f8(%rbp), %rsi
callq 0x5680
leaq -0x4f8(%rbp), %rdi
callq 0x5300
leaq -0x290(%rbp), %rdi
callq 0x52c0
movq %rax, %rsi
leaq -0x228(%rbp), %rdi
movl $0x10, %edx
callq 0x54b0
jmp 0x173a29
movq -0x558(%rbp), %rax
addq $0x990, %rax            # imm = 0x990
movq %rax, -0x5f0(%rbp)
leaq -0x519(%rbp), %rdi
movq %rdi, -0x5e8(%rbp)
callq 0x5900
movq -0x5e8(%rbp), %rdx
leaq 0x894e2(%rip), %rsi     # 0x1fcf40
leaq -0x518(%rbp), %rdi
callq 0x47530
jmp 0x173a6c
movq -0x5f0(%rbp), %rdi
leaq -0x240(%rbp), %rsi
leaq -0x258(%rbp), %rdx
leaq -0x270(%rbp), %rcx
leaq -0x518(%rbp), %r8
callq 0x100f70
jmp 0x173a96
leaq -0x518(%rbp), %rdi
callq 0x5300
leaq -0x519(%rbp), %rdi
callq 0x55d0
movq -0x558(%rbp), %rax
movq -0x550(%rbp), %rsi
leaq -0x218(%rbp), %rcx
movq %rcx, -0x600(%rbp)
movq %rax, -0x5f8(%rbp)
leaq -0x540(%rbp), %rdi
callq 0x5220
jmp 0x173adf
movq -0x5f8(%rbp), %rsi
movq -0x600(%rbp), %rdi
leaq -0x240(%rbp), %rdx
leaq -0x258(%rbp), %rcx
leaq -0x270(%rbp), %r8
leaq -0x540(%rbp), %r9
callq 0x75990
jmp 0x173b10
leaq -0x540(%rbp), %rdi
callq 0x5300
leaq -0x228(%rbp), %rdi
callq 0x50a0
jmp 0x173b2a
leaq -0x290(%rbp), %rdi
callq 0x5300
leaq -0x270(%rbp), %rdi
callq 0xf9d0
leaq -0x258(%rbp), %rdi
callq 0xec80
leaq -0x240(%rbp), %rdi
callq 0xefe0
leaq -0x228(%rbp), %rdi
callq 0x5150
addq $0x600, %rsp            # imm = 0x600
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x298(%rbp)
movl %eax, -0x29c(%rbp)
jmp 0x173ba1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x298(%rbp)
movl %eax, -0x29c(%rbp)
leaq -0x518(%rbp), %rdi
callq 0x5300
leaq -0x519(%rbp), %rdi
callq 0x55d0
jmp 0x173bcd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x298(%rbp)
movl %eax, -0x29c(%rbp)
leaq -0x540(%rbp), %rdi
callq 0x5300
leaq -0x290(%rbp), %rdi
callq 0x5300
leaq -0x270(%rbp), %rdi
callq 0xf9d0
leaq -0x258(%rbp), %rdi
callq 0xec80
leaq -0x240(%rbp), %rdi
callq 0xefe0
leaq -0x228(%rbp), %rdi
callq 0x5150
movq -0x298(%rbp), %rdi
callq 0x58f0
nopw %cs:(%rax,%rax)
nop