
    (ho                     T    d dl Z d Zd Zd Zd Zd dlZd dlZd Zd dl Z d Z	d Z
d	 Zy)
    Nc                 b    t        j                  | d   |d   z
  dz  | d   |d   z
  dz  z         S )Nr         )mathsqrt)p1p2s     D/home/developers/rajanand/mypropertyqr-fmb-refixing-v2/pydep/func.pyeucr      s8    99bebem)RURU]q,@@AA    c                    | d   |d   z
  | d   |d   z
  f}|d   |d   z
  |d   |d   z
  f}|d   |d   z  |d   |d   z  z   }t        j                  |d   dz  |d   dz  z         }t        j                  |d   dz  |d   dz  z         }|dk(  s|dk(  ryt        j                  |||z  z        }t        j                  |      }	|	S )Nr   r   r   g        )r   r   acosdegrees)
r   r	   p3v1v2dot_productmagnitude_v1magnitude_v2angle_radiansangle_degreess
             r
   
cord_angler      s    $ Q%"Q%-AA	'B
Q%"Q%-AA	'BQ%"Q%-"Q%"Q%-/K99RUAX1q01L99RUAX1q01LqLA-IIk\L-HIJMLL/Mr   c                    g }g }g }g }t        d|        t        | d   | d         t        | d   | d         kD  r| d   | d   g}n
| d   | d   g}t        d|       |d   d   |d   d   kD  r|d   }|d   }|d   d   dz   |d   d   g}n]|d   d   |d   d   k  r|d   }|d   }|d   d   dz   |d   d   g}n.|d   d   |d   d   kD  r|d   }|d   }|d   d   dz   |d   d   g}	 t        |||      }|S #  t        |||      }Y |S xY w)NzcomputeAngle pts: r   r   r   zcomputeAngle arm: 
   )printr   r   )ptsarmpoint_tp	point_elbpoint_bsangles         r
   compute_angler"   $   s   	C HIH	
s#
3q6#a&CAs1v..1vc!fo1vc!fo	
s#
1vay3q6!9q6F	F1IbLQ+	QSVAY	q6F	F1IbLQ+q6!9s1vay 1vHAIAq	"SVAY/H88Ih7 L88Ih7Ls   (C7 7D	c                    | d   g}| dd  }t        t        |       dz
        D ]  }|d   d   }d}t        |      D ]i  \  }}|d   |k(  r&|j                  |       |j	                  |       d} n8|d   |k(  s=|j                  |d   |d   g       |j	                  |       d} n |r n |D cg c]  }|d   	 }}|S c c}w )Nr   r   FT)rangelen	enumerateappendpop)	arrchain	remaining_endfoundiechn_cars	            r
   arrange_chainr3   N   s    VHEABI3s8a<  Bili( 
	DAqts{Qa 1adAaD\*a 
	 " ##qt#G#N $s   1Cc                    g }| d   D ]  }|d   dk(  s|j                  |d          ! t        |      }g }|D ]  }|j                  | d   |   d           t        j                  |t        j                        }t        j
                  |d d df         }t        j
                  |d d df         }t        t        |            D ]"  }||   dxx   |z  cc<   ||   dxx   |z  cc<   $ t        t        j                  |d d df         dz         }||d d df   z
  |d d df<   |j                  d      }t        j                  |      }	t        j                  |	      }
t        j                  |
      }
|
||fS )Nlinesstrokewidth3coordinatesr   r   )r$   r   r   )r(   r3   nparrayint32minr%   r&   intmaxreshapecv2minAreaRect	boxPoints)objline_ordr0   	point_indtemppointsmin_xmin_ycanvas_heightmin_rectrect_pointss              r
   get_pdf_boxrM   h   sp   H\ .]s"OOAm,-. h'ID .C&q)!,-.XXdBHH%FFF6!Q$< EFF6!Q$< E3v; q	!q	! vad|,q01M 6!Q$</F1a4L^^J'Fv&H--)K((;'Kvi''r   c                 H   	
 t         d         t         d         ct        d         t        d         ct        |d         t        |d         ct        |d         t        |d         ci 	i 
 	
fd} |       S )Nxyc                     j                         D ]  \  } }| k7  rP| k7  rK|d   \  }}t        ||
      }t        |d   d      }t        |d   d      }||g|d   |d   g
| <   [| k(  r=t        t        d         d      t        t        d         d      g|d   |d   g
<   t        t        	d         d      t        t        	d         d      g|d   |d   g
<    j                         D ]O  \  } }|d   \  }}t        ||
      }t        |d   d      }t        |d   d      }||g|d   |d   g| <   Q 
dS )Nr   rO      rP   r   r   )
new_coordssubdivision_list)itemscalculate_new_positionroundfloat)keyvaluex2y2end_point_positivenew_x2new_y2r8   
new_coord1
new_coord2rS   new_subdivisionselected_point1selected_point2rT   x1x3x4x5y1y3y4y5s          r
   calculate_new_coordzCupdate_lines_with_new_slope_and_length.<locals>.calculate_new_coord   s   %++- 
	GJCo%#*@qB%;BBBPRTVXZ\^`b%c"1#6:1#6:$*F#3U1XuQx"H
3'05eJsO6LQ0OQVW\]ghk]lWmnoQp/qsxyzs{  ~C  DE  ~F  /G
?+05eJsO6LQ0OQVW\]ghk]lWmnoQp/qsxyzs{  ~C  DE  ~F  /G
?+
	G +002 	JJC1XFB!7BBBPRTVXZ\^!_-c2A6F-c2A6F%+V$4eAha#IOC 	J (?KKr   )rX   )r`   ra   
old_coord1
old_coord2r8   rc   rd   rT   rm   rS   rb   re   rf   rg   rh   ri   rj   rk   rl   s   ``  ```` @@@@@@@@@@r
   &update_lines_with_new_slope_and_lengthrp      s    :c?#U:c?%;FB:c?#U:c?%;FB:c?#U:c?%;FB:c?#U:c?%;FBJOL L L*   r   c
                     t        j                  ||z
  || z
        }
t        j                  |	|z
  ||z
        }||
z
  }|| z
  ||z
  d}t        ||| ||      }|d   |d   z   |d   |d   z   d}|S )NrO   rP   rO   rP   )r   atan2rotate_point)axaybxbycxcyax_neway_newcx_newcy_newinitial_angle	new_anglerotation_angletranslation_vector	rotated_bnew_bs                   r
   rV   rV      s    JJrBwR0M

6F?FVO<I.N%{"=RR^<Is^055s^055E Lr   c                     | |z
  }||z
  }|t        j                  |      z  |t        j                  |      z  z
  }|t        j                  |      z  |t        j                  |      z  z   }||z   }	||z   }
|	|
dS )Nrr   )r   cossin)pxpyoxoyr!   translated_pxtranslated_py
rotated_px
rotated_pynew_pxnew_pys              r
   rt   rt      sy    GMGM%0=488E?3RRJ%0=488E?3RRJ"_F"_Ff%%r   )r   r   r   r"   r3   r@   numpyr9   rM   rp   rV   rt    r   r
   <module>r      s@    B>(T0  (B !>
&r   