// File: /workspace/github_cpp_makefile_star2_O1/carlos-urena[P]svg-gen/svgobjects.cpp
// Function: ZCylinderPolygon::ZCylinderPolygon(Polygon const&)
ZCylinderPolygon::ZCylinderPolygon( const Polygon & orig )
{
  style.draw_lines    = true ;
  style.draw_filled     = false ;
  style.close_lines = true ;
  style.lines_width  = 0.015 ;
  style.fill_opacity = 0.2 ;
  style.lines_color   = vec3( 1.0, 0.0, 0.0 );
  style.fill_color    = vec3( 1.0, 0.0, 0.0 );

  assert( orig.points3D.size() > 0 );
  for( unsigned i = 0 ; i < orig.points3D.size() ; i++ )
  {
    vec3       pesf = orig.points3D[i].normalized();
    const real f    = real(1.0)/real(sqrt( double( pesf[0]*pesf[0]+pesf[1]*pesf[1] )));
    vec3       pcil = vec3(  f*pesf[0], f*pesf[1], pesf[2]) ;

    points3D.push_back( pcil );
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
movq %rsi, %r14
movq %rdi, %rbx
xorl %r15d, %r15d
movb %r15b, 0x8(%rdi)
leaq 0x60e9(%rip), %rax      # 0x11760
movq %rax, (%rdi)
addq $0x20, %rdi
callq 0x6c48
xorps %xmm0, %xmm0
movups %xmm0, 0x88(%rbx)
movups %xmm0, 0x78(%rbx)
movups %xmm0, 0x68(%rbx)
leaq 0x64f4(%rip), %rax      # 0x11b90
movq %rax, (%rbx)
movw $0x101, 0x38(%rbx)      # imm = 0x101
movb %r15b, 0x3a(%rbx)
movabsq $0x3e4ccccd3c75c28f, %rax # imm = 0x3E4CCCCD3C75C28F
movq %rax, 0x3c(%rbx)
movapd 0x1bb1(%rip), %xmm0     # 0xd270
movupd %xmm0, 0x20(%rbx)
movq $0x0, 0x30(%rbx)
movq 0x70(%r14), %rax
cmpq 0x68(%r14), %rax
je 0xb82b
movq 0x68(%r14), %rax
cmpq %rax, 0x70(%r14)
je 0xb81c
leaq 0x68(%rbx), %rcx
movq %rcx, -0x48(%rbp)
xorl %r13d, %r13d
movabsq $-0x5555555555555555, %r12 # imm = 0xAAAAAAAAAAAAAAAB
movl %r13d, %ecx
shlq $0x2, %rcx
leaq (%rcx,%rcx,2), %r15
addq %rax, %r15
xorpd %xmm0, %xmm0
xorl %eax, %eax
xorps %xmm1, %xmm1
cvtss2sd (%r15,%rax,4), %xmm1
mulsd %xmm1, %xmm1
addsd %xmm1, %xmm0
incq %rax
cmpq $0x3, %rax
jne 0xb711
cvtsd2ss %xmm0, %xmm0
ucomiss 0x1b76(%rip), %xmm0     # 0xd2ac
jb 0xb73e
sqrtss %xmm0, %xmm0
jmp 0xb743
callq 0x32d0
xorl %eax, %eax
movss (%r15,%rax,4), %xmm1
divss %xmm0, %xmm1
movss %xmm1, -0x38(%rbp,%rax,4)
incq %rax
cmpq $0x3, %rax
jne 0xb745
movsd -0x38(%rbp), %xmm3
movss -0x30(%rbp), %xmm2
movaps %xmm3, %xmm4
shufps $0x55, %xmm3, %xmm4     # xmm4 = xmm4[1,1],xmm3[1,1]
movaps %xmm4, %xmm1
mulss %xmm4, %xmm1
movaps %xmm3, %xmm0
mulss %xmm3, %xmm0
addss %xmm1, %xmm0
ucomiss 0x1b24(%rip), %xmm0     # 0xd2ac
jb 0xb790
sqrtss %xmm0, %xmm0
jmp 0xb7af
movss %xmm2, -0x3c(%rbp)
movaps %xmm3, -0x70(%rbp)
movaps %xmm4, -0x60(%rbp)
callq 0x32d0
movaps -0x60(%rbp), %xmm4
movaps -0x70(%rbp), %xmm3
movss -0x3c(%rbp), %xmm2
movss 0x1851(%rip), %xmm1     # 0xd008
divss %xmm0, %xmm1
mulss %xmm1, %xmm3
mulss %xmm1, %xmm4
movss %xmm3, -0x38(%rbp)
movss %xmm4, -0x34(%rbp)
movss %xmm2, -0x30(%rbp)
movq 0x70(%rbx), %rsi
cmpq 0x78(%rbx), %rsi
je 0xb7f0
movl -0x30(%rbp), %eax
movl %eax, 0x8(%rsi)
movq -0x38(%rbp), %rax
movq %rax, (%rsi)
addq $0xc, 0x70(%rbx)
jmp 0xb7fd
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rdx
callq 0xc67c
incl %r13d
movq 0x68(%r14), %rax
movq 0x70(%r14), %rcx
subq %rax, %rcx
sarq $0x2, %rcx
imulq %r12, %rcx
cmpq %r13, %rcx
ja 0xb6fd
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x2226(%rip), %rdi      # 0xda58
leaq 0x1c77(%rip), %rsi      # 0xd4b0
leaq 0x23bf(%rip), %rcx      # 0xdbff
movl $0x473, %edx            # imm = 0x473
callq 0x3120
movq %rax, %r14
movq %rbx, %rdi
callq 0xbe68
movq %r14, %rdi
callq 0x32b0
nop