// File: /workspace/github_cpp_makefile_star2_O3/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 0x1159c2(%rip), %rax    # 0x12ddb0
movq %rax, (%rdi)
movq $0x0, 0x8(%rdi)
leaq 0x10(%rdi), %r14
movq %r14, %rdi
callq 0xa9ca8
leaq 0x20(%r13), %r15
movq %r15, %rdi
movq %r14, 0x80(%rsp)
callq 0xa9ca8
leaq 0x30(%r13), %r12
movq %r12, %rdi
movq %r15, 0x78(%rsp)
callq 0xa9ca8
leaq 0x40(%r13), %rdi
movq %rdi, 0x68(%rsp)
movq %r12, 0x70(%rsp)
callq 0xa9ca8
leaq 0x50(%r13), %rdi
movq %rdi, 0x60(%rsp)
callq 0xa9ca8
leaq 0x60(%r13), %rdi
movq %rdi, 0x58(%rsp)
callq 0xa9ca8
leaq 0x70(%r13), %rdi
movq %rdi, 0x50(%rsp)
callq 0xa9ca8
leaq 0x80(%r13), %rdi
movq %rdi, 0x48(%rsp)
callq 0xa9ca8
leaq 0x90(%r13), %r15
movq %r15, %rdi
callq 0xa9ca8
leaq 0xa0(%r13), %r12
movq %r12, %rdi
callq 0xa9ca8
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 0xc4c7d(%rip), %xmm0    # 0xdd148
xorps %xmm1, %xmm1
xorps %xmm2, %xmm2
xorps %xmm3, %xmm3
xorps %xmm4, %xmm4
xorps %xmm6, %xmm6
xorps %xmm7, %xmm7
movaps %xmm0, %xmm5
callq 0x723de
leaq 0xb0(%r13), %rbp
leaq 0x88(%rsp), %rsi
movq %rbp, %rdi
xorl %edx, %edx
callq 0x7005a
xorps %xmm0, %xmm0
movups %xmm0, 0x1c0(%r13)
testq %rbx, %rbx
je 0x18518
movq %rbx, %rdi
callq 0xac67b
jmp 0x1851a
xorl %eax, %eax
movq %rax, 0x1d0(%r13)
leaq 0x1d8(%r13), %rbx
movq %rbx, %rdi
callq 0xa9ca8
movq $0x1, 0x1e8(%r13)
movl $0x28, %edi
callq 0x134e0
movq %rax, %r14
movq %rax, %rdi
callq 0x38e5c
movq %r14, 0x8(%r13)
movq %r13, 0x8(%r14)
movl $0xf8, %edi
callq 0x134e0
movq %rax, %r14
leaq 0xc4e98(%rip), %rsi     # 0xdd404
movq %rax, %rdi
callq 0x16b68
movq (%r13), %rax
movq %r13, %rdi
movq %r14, %rsi
xorl %edx, %edx
callq *0x18(%rax)
movl $0x98, %edi
callq 0x134e0
movq %rax, %r14
leaq 0xc4e6d(%rip), %rsi     # 0xdd404
movq %rax, %rdi
callq 0x4018c
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 0x185dc
movq %rax, %r13
movl $0xf8, %esi
jmp 0x185dc
movq %rax, %r13
movl $0x28, %esi
movq %r14, %rdi
callq 0x134f0
jmp 0x1861f
jmp 0x1861c
movq %rax, %r13
jmp 0x18637
movq %rax, %r13
jmp 0x1863f
movq %rax, %r13
jmp 0x18649
movq %rax, %r13
jmp 0x18653
movq %rax, %r13
jmp 0x1865d
movq %rax, %r13
jmp 0x18667
movq %rax, %r13
jmp 0x18671
movq %rax, %r13
jmp 0x1867b
movq %rax, %r13
jmp 0x18685
movq %rax, %r13
jmp 0x18627
jmp 0x1861c
movq %rax, %r13
movq %rbx, %rdi
callq 0xa9d12
movq %rbp, %rdi
callq 0x700a8
movq %r12, %rdi
callq 0xa9d12
movq %r15, %rdi
callq 0xa9d12
movq 0x48(%rsp), %rdi
callq 0xa9d12
movq 0x50(%rsp), %rdi
callq 0xa9d12
movq 0x58(%rsp), %rdi
callq 0xa9d12
movq 0x60(%rsp), %rdi
callq 0xa9d12
movq 0x68(%rsp), %rdi
callq 0xa9d12
movq 0x70(%rsp), %rdi
callq 0xa9d12
movq 0x78(%rsp), %rdi
callq 0xa9d12
movq 0x80(%rsp), %rdi
callq 0xa9d12
movq %r13, %rdi
callq 0x138b0
movq %rax, %r13
jmp 0x1862f
nop