// File: GUI-Graphics[P]cpuraytracing/film.cpp
// Function: gui::Film::writePPM() const
void Film::writePPM() const {
		std::ofstream file;
		file.open("image.ppm");
		file << "P3\n" << width << ' ' << height << '\n' << "255\n";
		for(int i = 0; i < height; ++i) {
			for(int j = 0; j < width; ++j) {
				file << (int) (pixels[i][j].x * 255) << ' '
					 << (int) (pixels[i][j].y * 255) << ' '
					 << (int) (pixels[i][j].z * 255) << ' ';
			}
			file << '\n';
		}
		file.close();
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x280, %rsp            # imm = 0x280
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x230(%rbp)
leaq -0x208(%rbp), %rdi
movq %rdi, -0x228(%rbp)
callq 0x22a0
movq -0x228(%rbp), %rdi
leaq 0x2fc9(%rip), %rsi      # 0x80d4
movl $0x10, %edx
callq 0x2050
jmp 0x5117
leaq 0x2fc0(%rip), %rsi      # 0x80de
leaq -0x208(%rbp), %rdi
callq 0x2170
movq %rax, -0x238(%rbp)
jmp 0x5133
movq -0x238(%rbp), %rdi
movq -0x230(%rbp), %rax
movl (%rax), %esi
callq 0x22b0
movq %rax, -0x240(%rbp)
jmp 0x5151
movq -0x240(%rbp), %rdi
movl $0x20, %esi
callq 0x21e0
movq %rax, -0x248(%rbp)
jmp 0x516b
movq -0x248(%rbp), %rdi
movq -0x230(%rbp), %rax
movl 0x4(%rax), %esi
callq 0x22b0
movq %rax, -0x250(%rbp)
jmp 0x518a
movq -0x250(%rbp), %rdi
movl $0xa, %esi
callq 0x21e0
movq %rax, -0x258(%rbp)
jmp 0x51a4
movq -0x258(%rbp), %rdi
leaq 0x2f30(%rip), %rsi      # 0x80e2
callq 0x2170
jmp 0x51b9
movl $0x0, -0x218(%rbp)
movq -0x230(%rbp), %rcx
movl -0x218(%rbp), %eax
cmpl 0x4(%rcx), %eax
jge 0x5381
movl $0x0, -0x21c(%rbp)
movq -0x230(%rbp), %rcx
movl -0x21c(%rbp), %eax
cmpl (%rcx), %eax
jge 0x5358
movq -0x230(%rbp), %rax
movq 0x8(%rax), %rax
movslq -0x218(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x21c(%rbp), %rcx
leaq (%rcx,%rcx,2), %rcx
movss (%rax,%rcx,4), %xmm0
movss 0x2eaa(%rip), %xmm1     # 0x80d0
mulss %xmm1, %xmm0
cvttss2si %xmm0, %esi
leaq -0x208(%rbp), %rdi
callq 0x22b0
movq %rax, -0x260(%rbp)
jmp 0x5243
movq -0x260(%rbp), %rdi
movl $0x20, %esi
callq 0x21e0
movq %rax, -0x268(%rbp)
jmp 0x525d
movq -0x268(%rbp), %rdi
movq -0x230(%rbp), %rax
movq 0x8(%rax), %rax
movslq -0x218(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x21c(%rbp), %rcx
leaq (%rcx,%rcx,2), %rcx
movss 0x4(%rax,%rcx,4), %xmm0
movss 0x2e3d(%rip), %xmm1     # 0x80d0
mulss %xmm1, %xmm0
cvttss2si %xmm0, %esi
callq 0x22b0
movq %rax, -0x270(%rbp)
jmp 0x52a9
movq -0x270(%rbp), %rdi
movl $0x20, %esi
callq 0x21e0
movq %rax, -0x278(%rbp)
jmp 0x52c3
movq -0x278(%rbp), %rdi
movq -0x230(%rbp), %rax
movq 0x8(%rax), %rax
movslq -0x218(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x21c(%rbp), %rcx
leaq (%rcx,%rcx,2), %rcx
movss 0x8(%rax,%rcx,4), %xmm0
movss 0x2dd7(%rip), %xmm1     # 0x80d0
mulss %xmm1, %xmm0
cvttss2si %xmm0, %esi
callq 0x22b0
movq %rax, -0x280(%rbp)
jmp 0x530f
movq -0x280(%rbp), %rdi
movl $0x20, %esi
callq 0x21e0
jmp 0x5322
jmp 0x5324
movl -0x21c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x21c(%rbp)
jmp 0x51e3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x210(%rbp)
movl %eax, -0x214(%rbp)
leaq -0x208(%rbp), %rdi
callq 0x2260
jmp 0x53a4
leaq -0x208(%rbp), %rdi
movl $0xa, %esi
callq 0x21e0
jmp 0x536b
jmp 0x536d
movl -0x218(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x218(%rbp)
jmp 0x51c3
leaq -0x208(%rbp), %rdi
callq 0x2230
jmp 0x538f
leaq -0x208(%rbp), %rdi
callq 0x2260
addq $0x280, %rsp            # imm = 0x280
popq %rbp
retq
movq -0x210(%rbp), %rdi
callq 0x22d0