// File: /workspace/github_cpp_makefile_star2_O1/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 0x1168f6(%rip), %rax    # 0x12edb0
movq %rax, (%rdi)
movq $0x0, 0x8(%rdi)
leaq 0x10(%rdi), %r14
movq %r14, %rdi
callq 0xaaf34
leaq 0x20(%r13), %r15
movq %r15, %rdi
movq %r14, 0x80(%rsp)
callq 0xaaf34
leaq 0x30(%r13), %r12
movq %r12, %rdi
movq %r15, 0x78(%rsp)
callq 0xaaf34
leaq 0x40(%r13), %rdi
movq %rdi, 0x68(%rsp)
movq %r12, 0x70(%rsp)
callq 0xaaf34
leaq 0x50(%r13), %rdi
movq %rdi, 0x60(%rsp)
callq 0xaaf34
leaq 0x60(%r13), %rdi
movq %rdi, 0x58(%rsp)
callq 0xaaf34
leaq 0x70(%r13), %rdi
movq %rdi, 0x50(%rsp)
callq 0xaaf34
leaq 0x80(%r13), %rdi
movq %rdi, 0x48(%rsp)
callq 0xaaf34
leaq 0x90(%r13), %r15
movq %r15, %rdi
callq 0xaaf34
leaq 0xa0(%r13), %r12
movq %r12, %rdi
callq 0xaaf34
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 0xc5bb9(%rip), %xmm0    # 0xde150
xorps %xmm1, %xmm1
xorps %xmm2, %xmm2
xorps %xmm3, %xmm3
xorps %xmm4, %xmm4
xorps %xmm6, %xmm6
xorps %xmm7, %xmm7
movaps %xmm0, %xmm5
callq 0x730f2
leaq 0xb0(%r13), %rbp
leaq 0x88(%rsp), %rsi
movq %rbp, %rdi
xorl %edx, %edx
callq 0x70cc6
xorps %xmm0, %xmm0
movups %xmm0, 0x1c0(%r13)
testq %rbx, %rbx
je 0x185e4
movq %rbx, %rdi
callq 0xadc0f
jmp 0x185e6
xorl %eax, %eax
movq %rax, 0x1d0(%r13)
leaq 0x1d8(%r13), %rbx
movq %rbx, %rdi
callq 0xaaf34
movq $0x1, 0x1e8(%r13)
movl $0x28, %edi
callq 0x134e0
movq %rax, %r14
movq %rax, %rdi
callq 0x391cc
movq %r14, 0x8(%r13)
movq %r13, 0x8(%r14)
movl $0xf8, %edi
callq 0x134e0
movq %rax, %r14
leaq 0xc5dcc(%rip), %rsi     # 0xde404
movq %rax, %rdi
callq 0x16bb8
movq (%r13), %rax
movq %r13, %rdi
movq %r14, %rsi
xorl %edx, %edx
callq *0x18(%rax)
movl $0x98, %edi
callq 0x134e0
movq %rax, %r14
leaq 0xc5da1(%rip), %rsi     # 0xde404
movq %rax, %rdi
callq 0x40528
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 0x186a8
movq %rax, %r13
movl $0xf8, %esi
jmp 0x186a8
movq %rax, %r13
movl $0x28, %esi
movq %r14, %rdi
callq 0x134f0
jmp 0x186eb
jmp 0x186e8
movq %rax, %r13
jmp 0x18703
movq %rax, %r13
jmp 0x1870b
movq %rax, %r13
jmp 0x18715
movq %rax, %r13
jmp 0x1871f
movq %rax, %r13
jmp 0x18729
movq %rax, %r13
jmp 0x18733
movq %rax, %r13
jmp 0x1873d
movq %rax, %r13
jmp 0x18747
movq %rax, %r13
jmp 0x18751
movq %rax, %r13
jmp 0x186f3
jmp 0x186e8
movq %rax, %r13
movq %rbx, %rdi
callq 0xaaf9e
movq %rbp, %rdi
callq 0x70d14
movq %r12, %rdi
callq 0xaaf9e
movq %r15, %rdi
callq 0xaaf9e
movq 0x48(%rsp), %rdi
callq 0xaaf9e
movq 0x50(%rsp), %rdi
callq 0xaaf9e
movq 0x58(%rsp), %rdi
callq 0xaaf9e
movq 0x60(%rsp), %rdi
callq 0xaaf9e
movq 0x68(%rsp), %rdi
callq 0xaaf9e
movq 0x70(%rsp), %rdi
callq 0xaaf9e
movq 0x78(%rsp), %rdi
callq 0xaaf9e
movq 0x80(%rsp), %rdi
callq 0xaaf9e
movq %r13, %rdi
callq 0x138b0
movq %rax, %r13
jmp 0x186fb
nop