// File: tomfunkhouser[P]gaps/pkgs/R3Surfels/R3SurfelScene.cpp
// Function: gaps::R3SurfelScene::R3SurfelScene(char const*)
R3SurfelScene::
R3SurfelScene(const char *name)
  : tree(NULL),
    objects(),
    labels(),
    object_properties(),
    label_properties(),
    object_relationships(),
    label_relationships(),
    assignments(),
    scans(),
    images(),
    features(),
    transformation(R4Matrix(1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1), 0),
    filename(NULL),
    rwaccess(NULL),
    name((name) ? RNStrdup(name) : NULL),
    comments(),
    flags(R3_SURFEL_SCENE_DIRTY_FLAG)
{
  // Create tree
  tree = new R3SurfelTree();
  tree->scene = this;

  // Create root object
  R3SurfelObject *object = new R3SurfelObject("Root");
  InsertObject(object, NULL);

  // Create root label
  R3SurfelLabel *label = new R3SurfelLabel("Root");
  InsertLabel(label, NULL);
}

// Assembly:
subq $0x198, %rsp            # imm = 0x198
movq %rdi, 0x190(%rsp)
movq %rsi, 0x188(%rsp)
movq 0x190(%rsp), %rdi
movq %rdi, 0xd8(%rsp)
leaq 0x1d1932(%rip), %rax    # 0x1eddc0
movq %rax, (%rdi)
movq $0x0, 0x8(%rdi)
addq $0x10, %rdi
movq %rdi, 0xd0(%rsp)
callq 0x1b920
movq 0xd8(%rsp), %rdi
addq $0x20, %rdi
movq %rdi, 0xe0(%rsp)
callq 0x30550
jmp 0x1c4c5
movq 0xd8(%rsp), %rdi
addq $0x30, %rdi
movq %rdi, 0xc8(%rsp)
callq 0x1b930
jmp 0x1c4e0
movq 0xd8(%rsp), %rdi
addq $0x40, %rdi
movq %rdi, 0xc0(%rsp)
callq 0x30560
jmp 0x1c4fb
movq 0xd8(%rsp), %rdi
addq $0x50, %rdi
movq %rdi, 0xb8(%rsp)
callq 0x1b940
jmp 0x1c516
movq 0xd8(%rsp), %rdi
addq $0x60, %rdi
movq %rdi, 0xb0(%rsp)
callq 0x30570
jmp 0x1c531
movq 0xd8(%rsp), %rdi
addq $0x70, %rdi
movq %rdi, 0xa8(%rsp)
callq 0x1b950
jmp 0x1c54c
movq 0xd8(%rsp), %rdi
subq $-0x80, %rdi
movq %rdi, 0xa0(%rsp)
callq 0x30580
jmp 0x1c567
movq 0xd8(%rsp), %rdi
addq $0x90, %rdi
movq %rdi, 0x98(%rsp)
callq 0x30590
jmp 0x1c585
movq 0xd8(%rsp), %rdi
addq $0xa0, %rdi
movq %rdi, 0x90(%rsp)
callq 0x305a0
jmp 0x1c5a3
movq 0xd8(%rsp), %rax
addq $0xb0, %rax
movq %rax, 0x80(%rsp)
movq %rsp, %rax
movq %rax, 0x88(%rsp)
movabsq $0x3ff0000000000000, %rcx # imm = 0x3FF0000000000000
movq %rcx, 0x38(%rax)
movq %rcx, 0x10(%rax)
movq $0x0, 0x30(%rax)
movq $0x0, 0x28(%rax)
movq $0x0, 0x20(%rax)
movq $0x0, 0x18(%rax)
movq $0x0, 0x8(%rax)
movq $0x0, (%rax)
leaq 0xf8(%rsp), %rdi
movsd 0x187b53(%rip), %xmm5   # 0x1a4168
xorps %xmm7, %xmm7
movaps %xmm5, %xmm0
movaps %xmm7, %xmm1
movaps %xmm7, %xmm2
movaps %xmm7, %xmm3
movaps %xmm7, %xmm4
movaps %xmm7, %xmm6
callq 0xd8c40
jmp 0x1c631
movq 0x80(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
xorl %edx, %edx
callq 0xd4480
jmp 0x1c64a
movq 0xd8(%rsp), %rax
movq $0x0, 0x1c0(%rax)
movq $0x0, 0x1c8(%rax)
addq $0x1d0, %rax            # imm = 0x1D0
movq %rax, 0x78(%rsp)
cmpq $0x0, 0x188(%rsp)
je 0x1c69e
movq 0x188(%rsp), %rdi
callq 0x1461b0
movq %rax, 0x70(%rsp)
jmp 0x1c692
movq 0x70(%rsp), %rax
movq %rax, 0x68(%rsp)
jmp 0x1c6a7
xorl %eax, %eax
movq %rax, 0x68(%rsp)
jmp 0x1c6a7
movq 0xd8(%rsp), %rdi
movq 0x78(%rsp), %rax
movq 0x68(%rsp), %rcx
movq %rcx, (%rax)
addq $0x1d8, %rdi            # imm = 0x1D8
movq %rdi, 0x60(%rsp)
callq 0x305b0
jmp 0x1c6cf
movq 0xd8(%rsp), %rdi
addq $0x1e8, %rdi            # imm = 0x1E8
movl $0x1, %esi
callq 0x1b970
jmp 0x1c6ea
movl $0x28, %edi
callq 0x13570
movq %rax, 0x58(%rsp)
jmp 0x1c6fb
movq 0x58(%rsp), %rdi
callq 0x61fa0
jmp 0x1c707
movq 0xd8(%rsp), %rcx
movq 0x58(%rsp), %rax
movq %rax, 0x8(%rcx)
movq 0x8(%rcx), %rax
movq %rcx, 0x8(%rax)
movl $0xf8, %edi
callq 0x13570
movq %rax, 0x50(%rsp)
jmp 0x1c731
movq 0x50(%rsp), %rdi
leaq 0x187c9b(%rip), %rsi    # 0x1a43d8
callq 0x189f0
jmp 0x1c744
movq 0xd8(%rsp), %rdi
movq 0x50(%rsp), %rax
movq %rax, 0xf0(%rsp)
movq 0xf0(%rsp), %rsi
movq (%rdi), %rax
movq 0x18(%rax), %rax
xorl %ecx, %ecx
movl %ecx, %edx
callq *%rax
jmp 0x1c770
movl $0x98, %edi
callq 0x13570
movq %rax, 0x48(%rsp)
jmp 0x1c781
movq 0x48(%rsp), %rdi
leaq 0x187c4b(%rip), %rsi    # 0x1a43d8
callq 0x700b0
jmp 0x1c794
movq 0xd8(%rsp), %rdi
movq 0x48(%rsp), %rax
movq %rax, 0xe8(%rsp)
movq 0xe8(%rsp), %rsi
movq (%rdi), %rax
movq 0x30(%rax), %rax
xorl %ecx, %ecx
movl %ecx, %edx
callq *%rax
jmp 0x1c7c0
addq $0x198, %rsp            # imm = 0x198
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x180(%rsp)
movl %eax, 0x17c(%rsp)
jmp 0x1c9ea
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x180(%rsp)
movl %eax, 0x17c(%rsp)
jmp 0x1c9dd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x180(%rsp)
movl %eax, 0x17c(%rsp)
jmp 0x1c9d0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x180(%rsp)
movl %eax, 0x17c(%rsp)
jmp 0x1c9c3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x180(%rsp)
movl %eax, 0x17c(%rsp)
jmp 0x1c9b6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x180(%rsp)
movl %eax, 0x17c(%rsp)
jmp 0x1c9a9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x180(%rsp)
movl %eax, 0x17c(%rsp)
jmp 0x1c99c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x180(%rsp)
movl %eax, 0x17c(%rsp)
jmp 0x1c98f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x180(%rsp)
movl %eax, 0x17c(%rsp)
jmp 0x1c982
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x180(%rsp)
movl %eax, 0x17c(%rsp)
jmp 0x1c975
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x180(%rsp)
movl %eax, 0x17c(%rsp)
jmp 0x1c968
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x180(%rsp)
movl %eax, 0x17c(%rsp)
jmp 0x1c95e
movq 0x58(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x180(%rsp)
movl %eax, 0x17c(%rsp)
movl $0x28, %esi
callq 0x13580
jmp 0x1c95e
movq 0x50(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x180(%rsp)
movl %eax, 0x17c(%rsp)
movl $0xf8, %esi
callq 0x13580
jmp 0x1c95e
movq 0x48(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x180(%rsp)
movl %eax, 0x17c(%rsp)
movl $0x98, %esi
callq 0x13580
movq 0x60(%rsp), %rdi
callq 0x305c0
movq 0x80(%rsp), %rdi
callq 0xd4520
movq 0x90(%rsp), %rdi
callq 0x305d0
movq 0x98(%rsp), %rdi
callq 0x305e0
movq 0xa0(%rsp), %rdi
callq 0x305f0
movq 0xa8(%rsp), %rdi
callq 0x1b9b0
movq 0xb0(%rsp), %rdi
callq 0x30600
movq 0xb8(%rsp), %rdi
callq 0x1b9c0
movq 0xc0(%rsp), %rdi
callq 0x30610
movq 0xc8(%rsp), %rdi
callq 0x1b9d0
movq 0xe0(%rsp), %rdi
callq 0x30620
movq 0xd0(%rsp), %rdi
callq 0x1b9e0
movq 0x180(%rsp), %rdi
callq 0x13970
nopw %cs:(%rax,%rax)