// File: tomfunkhouser[P]gaps/pkgs/R3Utils/R3Segmentation.cpp
// Function: gaps::R3Segmentation::PrintParameters(_IO_FILE*) const
int R3Segmentation::
PrintParameters(FILE *fp) const
{
  // Check fp
  if (!fp) fp = stdout;

  // Print all parameters
  fprintf(fp, "Min clusters = %d\n", min_clusters);
  fprintf(fp, "Max clusters = %d\n", max_clusters);
  fprintf(fp, "Min cluster points = %d\n", min_cluster_points);
  fprintf(fp, "Min cluster area = %g\n", min_cluster_area);
  fprintf(fp, "Min cluster coverage = %g\n", min_cluster_coverage);
  fprintf(fp, "Max cluster diameter = %g\n", max_cluster_diameter);
  fprintf(fp, "Max cluster primitive distance = %g\n", max_cluster_primitive_distance);
  fprintf(fp, "Max cluster normal angle = %g\n", max_cluster_normal_angle);
  fprintf(fp, "Max cluster color difference = %g\n", max_cluster_color_difference);
  fprintf(fp, "Max cluster timestamp difference = %g\n", max_cluster_timestamp_difference);
  fprintf(fp, "Max cluster category difference = %g\n", max_cluster_category_difference);
  fprintf(fp, "Max pair centroid distance = %g\n", max_pair_centroid_distance);
  fprintf(fp, "Max pair primitive distance = %g\n", max_pair_primitive_distance);
  fprintf(fp, "Max pair normal angle = %g\n", max_pair_normal_angle);
  fprintf(fp, "Max pair color difference = %g\n", max_pair_color_difference);
  fprintf(fp, "Max pair timestamp difference = %g\n", max_pair_timestamp_difference);
  fprintf(fp, "Max pair category difference = %g\n", max_pair_category_difference);
  fprintf(fp, "Min pair affinity = %g\n", min_pair_affinity);
  fprintf(fp, "Max refinement iterations = %d\n", max_refinement_iterations);  
  fprintf(fp, "Max reassignment iterations = %d\n", max_reassignment_iterations);  
  fprintf(fp, "Equalize cluster sizes = %d\n", equalize_cluster_sizes);
  fprintf(fp, "Balance cluster sizes = %d\n", balance_cluster_sizes);
  fprintf(fp, "Favor convex clusters = %d\n", favor_convex_clusters);
  fprintf(fp, "Scale tolerances with depth = %d\n", scale_tolerances_with_depth);
  fprintf(fp, "Initialize hierarchically = %d\n", initialize_hierarchically);
  fprintf(fp, "Allow outlier points = %d\n", allow_outlier_points);
  fprintf(fp, "Refine boundaries = %d\n", refine_boundaries);

  // Return success
  return 1;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq %rsi, 0x8(%rsp)
movq 0x10(%rsp), %rax
movq %rax, (%rsp)
cmpq $0x0, 0x8(%rsp)
jne 0x4715e
movq 0x217e3a(%rip), %rax    # 0x25ef90
movq (%rax), %rax
movq %rax, 0x8(%rsp)
movq (%rsp), %rax
movq 0x8(%rsp), %rdi
movl 0x30(%rax), %edx
leaq 0x1b7342(%rip), %rsi    # 0x1fe4b3
movb $0x0, %al
callq 0x16ab0
movq (%rsp), %rax
movq 0x8(%rsp), %rdi
movl 0x34(%rax), %edx
leaq 0x1b733b(%rip), %rsi    # 0x1fe4c6
movb $0x0, %al
callq 0x16ab0
movq (%rsp), %rax
movq 0x8(%rsp), %rdi
movl 0x38(%rax), %edx
leaq 0x1b7334(%rip), %rsi    # 0x1fe4d9
movb $0x0, %al
callq 0x16ab0
movq (%rsp), %rax
movq 0x8(%rsp), %rdi
movsd 0x40(%rax), %xmm0
leaq 0x1b7331(%rip), %rsi    # 0x1fe4f2
movb $0x1, %al
callq 0x16ab0
movq (%rsp), %rax
movq 0x8(%rsp), %rdi
movsd 0x48(%rax), %xmm0
leaq 0x1b732c(%rip), %rsi    # 0x1fe509
movb $0x1, %al
callq 0x16ab0
movq (%rsp), %rax
movq 0x8(%rsp), %rdi
movsd 0x50(%rax), %xmm0
leaq 0x1b732b(%rip), %rsi    # 0x1fe524
movb $0x1, %al
callq 0x16ab0
movq (%rsp), %rax
movq 0x8(%rsp), %rdi
movsd 0x58(%rax), %xmm0
leaq 0x1b732a(%rip), %rsi    # 0x1fe53f
movb $0x1, %al
callq 0x16ab0
movq (%rsp), %rax
movq 0x8(%rsp), %rdi
movsd 0x60(%rax), %xmm0
leaq 0x1b7333(%rip), %rsi    # 0x1fe564
movb $0x1, %al
callq 0x16ab0
movq (%rsp), %rax
movq 0x8(%rsp), %rdi
movsd 0x68(%rax), %xmm0
leaq 0x1b7336(%rip), %rsi    # 0x1fe583
movb $0x1, %al
callq 0x16ab0
movq (%rsp), %rax
movq 0x8(%rsp), %rdi
movsd 0x70(%rax), %xmm0
leaq 0x1b733d(%rip), %rsi    # 0x1fe5a6
movb $0x1, %al
callq 0x16ab0
movq (%rsp), %rax
movq 0x8(%rsp), %rdi
movsd 0x78(%rax), %xmm0
leaq 0x1b7348(%rip), %rsi    # 0x1fe5cd
movb $0x1, %al
callq 0x16ab0
movq (%rsp), %rax
movq 0x8(%rsp), %rdi
movsd 0x80(%rax), %xmm0
leaq 0x1b734f(%rip), %rsi    # 0x1fe5f3
movb $0x1, %al
callq 0x16ab0
movq (%rsp), %rax
movq 0x8(%rsp), %rdi
movsd 0x88(%rax), %xmm0
leaq 0x1b7351(%rip), %rsi    # 0x1fe614
movb $0x1, %al
callq 0x16ab0
movq (%rsp), %rax
movq 0x8(%rsp), %rdi
movsd 0x90(%rax), %xmm0
leaq 0x1b7354(%rip), %rsi    # 0x1fe636
movb $0x1, %al
callq 0x16ab0
movq (%rsp), %rax
movq 0x8(%rsp), %rdi
movsd 0x98(%rax), %xmm0
leaq 0x1b7351(%rip), %rsi    # 0x1fe652
movb $0x1, %al
callq 0x16ab0
movq (%rsp), %rax
movq 0x8(%rsp), %rdi
movsd 0xa0(%rax), %xmm0
leaq 0x1b7352(%rip), %rsi    # 0x1fe672
movb $0x1, %al
callq 0x16ab0
movq (%rsp), %rax
movq 0x8(%rsp), %rdi
movsd 0xa8(%rax), %xmm0
leaq 0x1b7357(%rip), %rsi    # 0x1fe696
movb $0x1, %al
callq 0x16ab0
movq (%rsp), %rax
movq 0x8(%rsp), %rdi
movsd 0xb0(%rax), %xmm0
leaq 0x1b735b(%rip), %rsi    # 0x1fe6b9
movb $0x1, %al
callq 0x16ab0
movq (%rsp), %rax
movq 0x8(%rsp), %rdi
movl 0xb8(%rax), %edx
leaq 0x1b7356(%rip), %rsi    # 0x1fe6d1
movb $0x0, %al
callq 0x16ab0
movq (%rsp), %rax
movq 0x8(%rsp), %rdi
movl 0xbc(%rax), %edx
leaq 0x1b7359(%rip), %rsi    # 0x1fe6f1
movb $0x0, %al
callq 0x16ab0
movq (%rsp), %rax
movq 0x8(%rsp), %rdi
movl 0xc0(%rax), %edx
leaq 0x1b735e(%rip), %rsi    # 0x1fe713
movb $0x0, %al
callq 0x16ab0
movq (%rsp), %rax
movq 0x8(%rsp), %rdi
movl 0xc4(%rax), %edx
leaq 0x1b735e(%rip), %rsi    # 0x1fe730
movb $0x0, %al
callq 0x16ab0
movq (%rsp), %rax
movq 0x8(%rsp), %rdi
movl 0xc8(%rax), %edx
leaq 0x1b735d(%rip), %rsi    # 0x1fe74c
movb $0x0, %al
callq 0x16ab0
movq (%rsp), %rax
movq 0x8(%rsp), %rdi
movl 0xcc(%rax), %edx
leaq 0x1b735c(%rip), %rsi    # 0x1fe768
movb $0x0, %al
callq 0x16ab0
movq (%rsp), %rax
movq 0x8(%rsp), %rdi
movl 0xd0(%rax), %edx
leaq 0x1b7361(%rip), %rsi    # 0x1fe78a
movb $0x0, %al
callq 0x16ab0
movq (%rsp), %rax
movq 0x8(%rsp), %rdi
movl 0xd4(%rax), %edx
leaq 0x1b7364(%rip), %rsi    # 0x1fe7aa
movb $0x0, %al
callq 0x16ab0
movq (%rsp), %rax
movq 0x8(%rsp), %rdi
movl 0xd8(%rax), %edx
leaq 0x1b7362(%rip), %rsi    # 0x1fe7c5
movb $0x0, %al
callq 0x16ab0
movl $0x1, %eax
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
nop