// File: /workspace/github_cpp_makefile_star2_O2/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:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x108, %rsp            # imm = 0x108
movq %rsi, %rbx
movq %rdi, %r13
leaq 0x10754e(%rip), %rax    # 0x11edc0
movq %rax, (%rdi)
andq $0x0, 0x8(%rdi)
leaq 0x10(%rdi), %r14
movq %r14, %rdi
callq 0x9a7ae
leaq 0x20(%r13), %r15
movq %r15, %rdi
movq %r14, 0x80(%rsp)
callq 0x9a7ae
leaq 0x30(%r13), %r12
movq %r12, %rdi
movq %r15, 0x78(%rsp)
callq 0x9a7ae
leaq 0x40(%r13), %rdi
movq %rdi, 0x68(%rsp)
movq %r12, 0x70(%rsp)
callq 0x9a7ae
leaq 0x50(%r13), %rdi
movq %rdi, 0x60(%rsp)
callq 0x9a7ae
leaq 0x60(%r13), %rdi
movq %rdi, 0x58(%rsp)
callq 0x9a7ae
leaq 0x70(%r13), %rdi
movq %rdi, 0x50(%rsp)
callq 0x9a7ae
leaq 0x80(%r13), %rdi
movq %rdi, 0x48(%rsp)
callq 0x9a7ae
leaq 0x90(%r13), %r15
movq %r15, %rdi
callq 0x9a7ae
leaq 0xa0(%r13), %r12
movq %r12, %rdi
callq 0x9a7ae
movabsq $0x3ff0000000000000, %rax # imm = 0x3FF0000000000000
movq %rax, 0x38(%rsp)
xorps %xmm0, %xmm0
movups %xmm0, 0x28(%rsp)
movups %xmm0, 0x18(%rsp)
movq %rax, 0x10(%rsp)
movups %xmm0, (%rsp)
leaq 0x88(%rsp), %rdi
movsd 0xb07fc(%rip), %xmm0    # 0xc8148
xorps %xmm1, %xmm1
xorps %xmm2, %xmm2
xorps %xmm3, %xmm3
xorps %xmm4, %xmm4
xorps %xmm6, %xmm6
xorps %xmm7, %xmm7
movaps %xmm0, %xmm5
callq 0x6882c
leaq 0xb0(%r13), %rbp
leaq 0x88(%rsp), %rsi
movq %rbp, %rdi
xorl %edx, %edx
callq 0x6681c
xorps %xmm0, %xmm0
movups %xmm0, 0x1c0(%r13)
testq %rbx, %rbx
je 0x17999
movq %rbx, %rdi
callq 0x9cc91
jmp 0x1799b
xorl %eax, %eax
movq %rax, 0x1d0(%r13)
leaq 0x1d8(%r13), %rbx
movq %rbx, %rdi
callq 0x9a7ae
movq $0x1, 0x1e8(%r13)
pushq $0x28
popq %rdi
callq 0x134f0
movq %rax, %r14
movq %rax, %rdi
callq 0x34dcc
movq %r14, 0x8(%r13)
movq %r13, 0x8(%r14)
movl $0xf8, %edi
callq 0x134f0
movq %rax, %r14
leaq 0xb0a19(%rip), %rsi     # 0xc8404
movq %rax, %rdi
callq 0x16360
movq (%r13), %rax
movq %r13, %rdi
movq %r14, %rsi
xorl %edx, %edx
callq *0x18(%rax)
movl $0x98, %edi
callq 0x134f0
movq %rax, %r14
leaq 0xb09ee(%rip), %rsi     # 0xc8404
movq %rax, %rdi
callq 0x3b2a4
movq (%r13), %rax
movq %r13, %rdi
movq %r14, %rsi
xorl %edx, %edx
callq *0x30(%rax)
addq $0x108, %rsp            # imm = 0x108
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r13
movl $0x98, %esi
jmp 0x17a59
movq %rax, %r13
movl $0xf8, %esi
jmp 0x17a59
movq %rax, %r13
pushq $0x28
popq %rsi
movq %r14, %rdi
callq 0x13500
jmp 0x17a9c
jmp 0x17a99
movq %rax, %r13
jmp 0x17ab4
movq %rax, %r13
jmp 0x17abc
movq %rax, %r13
jmp 0x17ac6
movq %rax, %r13
jmp 0x17ad0
movq %rax, %r13
jmp 0x17ada
movq %rax, %r13
jmp 0x17ae4
movq %rax, %r13
jmp 0x17aee
movq %rax, %r13
jmp 0x17af8
movq %rax, %r13
jmp 0x17b02
movq %rax, %r13
jmp 0x17aa4
jmp 0x17a99
movq %rax, %r13
movq %rbx, %rdi
callq 0x9a81c
movq %rbp, %rdi
callq 0x6686a
movq %r12, %rdi
callq 0x9a81c
movq %r15, %rdi
callq 0x9a81c
movq 0x48(%rsp), %rdi
callq 0x9a81c
movq 0x50(%rsp), %rdi
callq 0x9a81c
movq 0x58(%rsp), %rdi
callq 0x9a81c
movq 0x60(%rsp), %rdi
callq 0x9a81c
movq 0x68(%rsp), %rdi
callq 0x9a81c
movq 0x70(%rsp), %rdi
callq 0x9a81c
movq 0x78(%rsp), %rdi
callq 0x9a81c
movq 0x80(%rsp), %rdi
callq 0x9a81c
movq %r13, %rdi
callq 0x138f0
movq %rax, %r13
jmp 0x17aac