// File: Luthaf[P]zeopp/voronoicell.cc
// Function: VOR_CELL::writeVMDOutlined(std::basic_fstream<char, std::char_traits<char>>&, int)
void VOR_CELL::writeVMDOutlined(fstream &output, int n){
  output << "set vorcells(" << n <<") {" << "\n";
  
  // Iterate over all nodes in VOR_CELL
  for(int i = 0; i < numVertices; i++){
    Point curPoint = vertexCoords.find(i)->second;
    int nodeID = idMappings.find(i)->second;
    output << "{color $nodeColors(" << nodeID << ") }" << "\n"; 
    output << "{sphere {" << curPoint[0] << " " << curPoint[1] << " " << curPoint[2] << "} radius $nodeRadii(" << nodeID << ") resolution $sphere_resolution}" << "\n";
  }
  
  // Iterate over all edges in VOR_CELL
  output << "{color $vorcellColors(" << n << ") }" << "\n";
  for(int i = 0; i < numVertices; i++){
    Point p1 = vertexCoords[i];
    set<int>::iterator vertexIter = edgeConnections[i].begin();
    while(vertexIter != edgeConnections[i].end()){
      Point p2 = vertexCoords[*vertexIter];
	output << "{line {" 
	       << p1[0] << " " << p1[1] << " " << p1[2] << "} {" 
	       << p2[0] << " " << p2[1] << " " << p2[2] << "} width 1}" << "\n";
	vertexIter++;
    }
  }
  output << "}" << "\n";
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xf0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0xa0(%rbp)
movq -0x10(%rbp), %rdi
addq $0x10, %rdi
leaq 0x13e30d(%rip), %rsi    # 0x1faffd
callq 0x5540
movq %rax, %rdi
movl -0x14(%rbp), %esi
callq 0x58d0
movq %rax, %rdi
leaq 0x13e38b(%rip), %rsi    # 0x1fb095
callq 0x5540
movq %rax, %rdi
leaq 0x13c90c(%rip), %rsi    # 0x1f9625
callq 0x5540
movl $0x0, -0x18(%rbp)
movq -0xa0(%rbp), %rcx
movl -0x18(%rbp), %eax
cmpl 0x18(%rcx), %eax
jge 0xbcebc
movq -0xa0(%rbp), %rdi
addq $0xb0, %rdi
leaq -0x18(%rbp), %rsi
callq 0xbfd60
movq %rax, -0x38(%rbp)
leaq -0x38(%rbp), %rdi
callq 0xbfd90
movq -0xa0(%rbp), %rdi
movq 0x8(%rax), %rcx
movq %rcx, -0x30(%rbp)
movq 0x10(%rax), %rcx
movq %rcx, -0x28(%rbp)
movq 0x18(%rax), %rax
movq %rax, -0x20(%rbp)
addq $0x50, %rdi
leaq -0x18(%rbp), %rsi
callq 0x102e0
movq %rax, -0x48(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x10350
movl 0x4(%rax), %eax
movl %eax, -0x3c(%rbp)
movq -0x10(%rbp), %rdi
addq $0x10, %rdi
leaq 0x13e261(%rip), %rsi    # 0x1fb00b
callq 0x5540
movq %rax, %rdi
movl -0x3c(%rbp), %esi
callq 0x58d0
movq %rax, %rdi
leaq 0x13e235(%rip), %rsi    # 0x1faff9
callq 0x5540
movq %rax, %rdi
leaq 0x13c852(%rip), %rsi    # 0x1f9625
callq 0x5540
movq -0x10(%rbp), %rdi
addq $0x10, %rdi
leaq 0x1396f4(%rip), %rsi    # 0x1f64db
callq 0x5540
movq %rax, -0xb8(%rbp)
leaq -0x30(%rbp), %rdi
xorl %esi, %esi
callq 0xe9d70
movq -0xb8(%rbp), %rdi
movsd (%rax), %xmm0
callq 0x5980
movq %rax, %rdi
leaq 0x13f496(%rip), %rsi    # 0x1fc2ae
callq 0x5540
movq %rax, -0xb0(%rbp)
leaq -0x30(%rbp), %rdi
movl $0x1, %esi
callq 0xe9d70
movq -0xb0(%rbp), %rdi
movsd (%rax), %xmm0
callq 0x5980
movq %rax, %rdi
leaq 0x13f462(%rip), %rsi    # 0x1fc2ae
callq 0x5540
movq %rax, -0xa8(%rbp)
leaq -0x30(%rbp), %rdi
movl $0x2, %esi
callq 0xe9d70
movq -0xa8(%rbp), %rdi
movsd (%rax), %xmm0
callq 0x5980
movq %rax, %rdi
leaq 0x13e19f(%rip), %rsi    # 0x1fb01f
callq 0x5540
movq %rax, %rdi
movl -0x3c(%rbp), %esi
callq 0x58d0
movq %rax, %rdi
leaq 0x13e19a(%rip), %rsi    # 0x1fb034
callq 0x5540
movq %rax, %rdi
leaq 0x13c77c(%rip), %rsi    # 0x1f9625
callq 0x5540
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0xbcd25
movq -0x10(%rbp), %rdi
addq $0x10, %rdi
leaq 0x13e18a(%rip), %rsi    # 0x1fb055
callq 0x5540
movq %rax, %rdi
movl -0x14(%rbp), %esi
callq 0x58d0
movq %rax, %rdi
leaq 0x13e114(%rip), %rsi    # 0x1faff9
callq 0x5540
movq %rax, %rdi
leaq 0x13c731(%rip), %rsi    # 0x1f9625
callq 0x5540
movl $0x0, -0x4c(%rbp)
movq -0xa0(%rbp), %rcx
movl -0x4c(%rbp), %eax
cmpl 0x18(%rcx), %eax
jge 0xbd16b
movq -0xa0(%rbp), %rdi
addq $0xb0, %rdi
leaq -0x4c(%rbp), %rsi
callq 0xbfdd0
movq -0xa0(%rbp), %rdi
movq (%rax), %rcx
movq %rcx, -0x68(%rbp)
movq 0x8(%rax), %rcx
movq %rcx, -0x60(%rbp)
movq 0x10(%rax), %rax
movq %rax, -0x58(%rbp)
addq $0xe0, %rdi
movslq -0x4c(%rbp), %rsi
callq 0x65640
movq %rax, %rdi
callq 0x655f0
movq %rax, -0x70(%rbp)
movq -0xa0(%rbp), %rdi
addq $0xe0, %rdi
movslq -0x4c(%rbp), %rsi
callq 0x65640
movq %rax, %rdi
callq 0xf520
movq %rax, -0x78(%rbp)
leaq -0x70(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0xf4b0
testb $0x1, %al
jne 0xbcf9d
jmp 0xbd15b
movq -0xa0(%rbp), %rax
addq $0xb0, %rax
movq %rax, -0xf0(%rbp)
leaq -0x70(%rbp), %rdi
callq 0x65620
movq -0xf0(%rbp), %rdi
movq %rax, %rsi
callq 0xbfdd0
movq (%rax), %rcx
movq %rcx, -0x90(%rbp)
movq 0x8(%rax), %rcx
movq %rcx, -0x88(%rbp)
movq 0x10(%rax), %rax
movq %rax, -0x80(%rbp)
movq -0x10(%rbp), %rdi
addq $0x10, %rdi
leaq 0x1395c3(%rip), %rsi    # 0x1f65b8
callq 0x5540
movq %rax, -0xe8(%rbp)
leaq -0x68(%rbp), %rdi
xorl %esi, %esi
callq 0xe9d70
movq -0xe8(%rbp), %rdi
movsd (%rax), %xmm0
callq 0x5980
movq %rax, %rdi
leaq 0x13f288(%rip), %rsi    # 0x1fc2ae
callq 0x5540
movq %rax, -0xe0(%rbp)
leaq -0x68(%rbp), %rdi
movl $0x1, %esi
callq 0xe9d70
movq -0xe0(%rbp), %rdi
movsd (%rax), %xmm0
callq 0x5980
movq %rax, %rdi
leaq 0x13f254(%rip), %rsi    # 0x1fc2ae
callq 0x5540
movq %rax, -0xd8(%rbp)
leaq -0x68(%rbp), %rdi
movl $0x2, %esi
callq 0xe9d70
movq -0xd8(%rbp), %rdi
movsd (%rax), %xmm0
callq 0x5980
movq %rax, %rdi
leaq 0x13a4ad(%rip), %rsi    # 0x1f753b
callq 0x5540
movq %rax, -0xd0(%rbp)
leaq -0x90(%rbp), %rdi
xorl %esi, %esi
callq 0xe9d70
movq -0xd0(%rbp), %rdi
movsd (%rax), %xmm0
callq 0x5980
movq %rax, %rdi
leaq 0x13f1ec(%rip), %rsi    # 0x1fc2ae
callq 0x5540
movq %rax, -0xc8(%rbp)
leaq -0x90(%rbp), %rdi
movl $0x1, %esi
callq 0xe9d70
movq -0xc8(%rbp), %rdi
movsd (%rax), %xmm0
callq 0x5980
movq %rax, %rdi
leaq 0x13f1b5(%rip), %rsi    # 0x1fc2ae
callq 0x5540
movq %rax, -0xc0(%rbp)
leaq -0x90(%rbp), %rdi
movl $0x2, %esi
callq 0xe9d70
movq -0xc0(%rbp), %rdi
movsd (%rax), %xmm0
callq 0x5980
movq %rax, %rdi
leaq 0x13df3c(%rip), %rsi    # 0x1fb06c
callq 0x5540
movq %rax, %rdi
leaq 0x13c4e6(%rip), %rsi    # 0x1f9625
callq 0x5540
leaq -0x70(%rbp), %rdi
xorl %esi, %esi
callq 0x65660
movq %rax, -0x98(%rbp)
jmp 0xbcf64
jmp 0xbd15d
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
jmp 0xbcf00
movq -0x10(%rbp), %rdi
addq $0x10, %rdi
leaq 0x13de81(%rip), %rsi    # 0x1faffb
callq 0x5540
movq %rax, %rdi
leaq 0x13c49c(%rip), %rsi    # 0x1f9625
callq 0x5540
addq $0xf0, %rsp
popq %rbp
retq
nopw (%rax,%rax)