
    tjX                         d dl  ddZd Zd Zd Zd Zd Zd Zd	 Z G d
 de	      Z
 G d de	      Z G d de	      Z G d de	      Z G d de	      Zd Zd Zd Zy)    )*c                     t        d | D              }t        |dz
        |kD  rt        |      t        fd| D              } | S )Nc              3   &   K   | ]	  }||z    y wN ).0ns     B/DATA/.local/lib/python3.12/site-packages/vtkmodules/web/camera.py	<genexpr>znormalize.<locals>.<genexpr>	   s     #dq1uds   g      ?c              3   (   K   | ]	  }|z    y wr   r   )r   r	   mags     r
   r   znormalize.<locals>.<genexpr>   s     +dQWds   )sumabssqrttuple)vect	tolerancemag2r   s      @r
   	normalizer      sA    #d##D
4#:"4j+d++K    c                     | \  }}}}|\  }}}}	||z  ||z  z
  ||z  z
  ||	z  z
  }
||z  ||z  z   ||	z  z   ||z  z
  }||z  ||z  z   ||z  z   ||	z  z
  }||	z  ||z  z   ||z  z   ||z  z
  }|
|||fS r   r   )q1q2w1x1y1z1w2x2y2z2wxyzs                 r
   q_multr&      s    NBBNBB
R"r'BG#b2g-A
R"r'BG#b2g-A
R"r'BG#b2g-A
R"r'BG#b2g-AaA:r   c                 "    | \  }}}}|| | | fS r   r   )qr"   r#   r$   r%   s        r
   q_conjugater)      s#    JAq!QrA2r?r   c                 P    d|z   }t        t        | |      t        |             dd  S )N)g           )r&   r)   )r   v1r   s      r
   qv_multr-      s)    	"B&R.+b/21266r   c                     t        |       } | \  }}}|dz  }t        |      }|t        |      z  }|t        |      z  }|t        |      z  }||||fS )N   )r   cossin)vthetar#   r$   r%   r"   s         r
   axisangle_to_qr4   $   s]    !AGAq!	QJEE
A	CJA	CJA	CJAaA:r   c                 t    | \  }}}|\  }}}||z  ||z  z
  ||z  ||z  z
  ||z  ||z  z
  f}t        |      }|S r   )r   )	axisAaxisBxayazaxbybzb
normalVects	            r
   vectProductr?   /   s[    JBBJBBr'BG#R"WrBw%6R"r'8IJJ:&Jr   c                 H    | d   |d   z  | d   |d   z  z   | d   |d   z  z   S )Nr   r+   r/   r   )vecAvecBs     r
   
dotProductrC   7   s9    Gd1g$q'DG"34Q$q'8IJJr   c                     d|z  dz  }t        | |      }t        fdt        d      D              }t        ||      t        fdt        d      D              }|S )NgPERT!	@g     f@c              3   4   K   | ]  }|   |   z
    y wr   r   )r   icenterpoints     r
   r   zrotate.<locals>.<genexpr>>   s     <8aE!Hvay(8      c              3   4   K   | ]  }|   |   z     y wr   r   )r   rF   rG   rtPoints     r
   r   zrotate.<locals>.<genexpr>@   s     >XGAJ*XrI   )r4   r   ranger-   )	axisanglerG   rH   
angleInRadrotationtPointrPointrL   s	     ``    @r
   rotaterT   ;   sW    u$u,JdJ/H<58<<Fh'G>U1X>>FMr   c                       e Zd Zd Zd Zd Zy)SphericalCamerac                    || _         g | _        dddddddii| _        dddddddii| _        t	        d |D              t        |      dkD  r:|d   |d   z   d	k(  r,| j                   j                  dd
|dd| j                         n*| j                   j                  dd
|d| j                         |d   dk  rY|d   dk\  rQd}|D ]  }|dk  s	|dz  } | j                   j                  dd|D 	cg c]  }	|	dz   	 c}	d|| j                         n*| j                   j                  dd|d| j                         |D ]  }|D ]  }
t        ||
 |      t        |t	        fdt        d      D                    }t        ||      }t        ||d|      }| j                  j                  ||j                  |      |
|j                  |
      ||d         | j                   j                          y c c}	w )Nmousedragr   r+      )modifier
coordinatesteporientationc              3       K   | ]  }|  y wr   r   )r   rF   s     r
   r   z+SphericalCamera.__init__.<locals>.<genexpr>[   s     )j1js   ih  phislidermodulo)prioritynamevaluesuiloopbind)rd   re   rf   rg   ri   ir3   Z   )rd   re   rf   rg   defaultri   c              3   4   K   | ]  }|   |   z
    y wr   r   )r   rF   fpphiPoss     r
   r   z+SphericalCamera.__init__.<locals>.<genexpr>   s     "Gh2a56!9#4hrI   rJ   )r   r   r   )r3   thetaIdxra   phiIdx
focalPointpositionviewUp)dataHandlercameraSettings	thetaBindphiBindr   lenregisterArgumentrT   r?   rM   appendindexupdateBasePattern)selfrt   rq   rr   phiAxis	phiAnglesthetaAnglesidxr3   r#   ra   	thetaAxisthetaPhiPosrs   rm   rn   s                 @@r
   __init__zSphericalCamera.__init__J   sR    ' QaTUV
 QaTUV
 )j)) y>A)B-)A,">#"E-- \\ .  --yXDLL .  q>A+a.C"7C$191HC % --*56+QR+6^^ .  --"^^ .  !E #r8<'U"GeAh"GG	 %Yr6B	5)WE##**!&$/$5$5e$<""+//#"6&($/"(
 ! !* 	**,I 7s   4G=c                     ddg}t        t        t        |      t        |                  D ]$  }| j                  j	                  ||   ||          & y )Nr3   ra   rM   minrx   rt   updatePriorityr}   priorityListkeyListr   s       r
   r   zSphericalCamera.updatePriority   J    E"S.G=>C++GCL,s:KL ?r   c              #   |   K   | j                   D ])  }| j                  j                  |d   |d          | + y w)Nrp   ro   )ra   r3   ru   rt   setArgumentsr}   
cameraDatas     r
   __iter__zSphericalCamera.__iter__   F     --J))x(
:0F *  	 .   :<N__name__
__module____qualname__r   r   r   r   r   r
   rV   rV   I   s    N-`M
r   rV   c                       e Zd Zd Zd Zd Zy)CylindricalCamerac                   
 || _         g | _        | j                   j                  dd|dd       | j                   j                  dd|d       |D ]  |D ]  }t        ||      
t	        fdt        d	      D              }t	        
fd
t        d	      D              }	| j                  j                  |j                        ||j                  |      ||	d         | j                   j                          y )Nr   ra   rb   rc   )rd   re   rf   rg   rh   n_pos)rd   re   rf   rg   c              3   :   K   | ]  }|   |   z  z     y wr   r   )r   rF   rq   rotationAxistranslations     r
   r   z-CylindricalCamera.__init__.<locals>.<genexpr>   s'      &MUJqM[<?%BCX   rJ   c              3   :   K   | ]  }|   |   z  z     y wr   r   )r   rF   rn   r   r   s     r
   r   z-CylindricalCamera.__init__.<locals>.<genexpr>   s'      &IQAF1I|A!>?r   )r   n_posIdxra   rp   rq   rr   rs   )	rt   ru   ry   rT   r   rM   rz   r{   r|   )r}   rt   rq   rr   r   r   translationValuesra   newfocalPointtransPhiPointrn   r   s     ` `     @@r
   r   zCylindricalCamera.__init__   s    '  	))U9 	* 	
 	))W->8 	* 	

 -K c:xH % &MRSTX& ! !& &INq& ! ##**!,$5$;$;K$H""+//#"6&3$1".
 ! -, 	**,r   c                     ddg}t        t        t        |      t        |                  D ]$  }| j                  j	                  ||   ||          & y )Nr   ra   r   r   s       r
   r   z CylindricalCamera.updatePriority   r   r   c              #   |   K   | j                   D ])  }| j                  j                  |d   |d          | + y w)Nrp   r   )ra   r   r   r   s     r
   r   zCylindricalCamera.__iter__   r   r   Nr   r   r   r
   r   r      s    +-ZM
r   r   c                       e Zd Zd Zd Zd Zy)
CubeCamerac                    || _         g | _        || _        || _        t	        ||      | _        || _        | j                   j                  ddg d       i | _        |D ]A  }|d   D ]7  }|| j                  vri | j                  |<   d| j                  |   |d   |   <   9 C | j                  D ]*  }t        | j                  |   d       | j                  |<   , | j                  j                         | _        | j                  D ]-  }| j                   j                  d	|| j                  |          / | j                   j                          y )
Nr   r^   fbrludrd   re   rf   argsTc                     t        |       S r   intks    r
   <lambda>z%CubeCamera.__init__.<locals>.<lambda>      #a&r   keyr+   )rt   ru   viewForwardrs   r?   rightDirection	positionsry   r   sortedkeysr   r|   )r}   rt   r   rs   r   posr   s          r
   r   zCubeCamera.__init__   s:   & &)+v>" 	))]3Q 	* 	

 	C6{dii'%'DIIcN37		#s6{3/0 #  99C#DIIcN8HIDIIcN  yy~~'99C--TYYs^ .  
 	**,r   c                     dg}t        t        t        |      t        |                  D ]$  }| j                  j	                  ||   ||          & y Nr^   r   r   s       r
   r   zCubeCamera.updatePriority  G     /S.G=>C++GCL,s:KL ?r   c              #     K   | j                   D ]}  }d|d   i}t        d       |d   D ]P  }| j                  |   j                  |d   |         } | j                  j
                  di ||i t        ||       R t        d|d          t        d      D cg c]  }|d   |   | j                  |   z    c}|d<   t        d      D cg c]  }| j                  |    c}|d<   d|d<   | j                  j                  d	
       | t        d      D cg c]  }|d   |   | j                  |   z
   c}|d<   t        d      D cg c]  }| j                  |    c}|d<   d|d<   | j                  j                  d
       | | j                  j                  d
       t        d      D cg c]  }|d   |   | j                  |   z    c}|d<   t        d      D cg c]  }| j                  |    c}|d<   d|d<   | | j                  j                  d
       t        d      D cg c]  }|d   |   | j                  |   z
   c}|d<   t        d      D cg c]  }| j                  |    c}|d<   d|d<   | | j                  j                  d
       t        d      D cg c]  }|d   |   | j                  |   z    c}|d<   t        d      D cg c]  }| j                  |     c}|d<   d|d<   | | j                  j                  d
       t        d      D cg c]  }|d   |   | j                  |   z
   c}|d<   t        d      D cg c]  }| j                  |    c}|d<   d|d<   |  y c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w w)Nrr   zP================================================================================r   rJ   rq   rs   frontr^   r   r^   backr+   r/   rightleft   up   downr   )
r   printr   r{   rt   r   rM   r   rs   r   )r}   r   r   r   r   rF   s         r
   r   zCubeCamera.__iter__  s1    >>CC
OJ (O6{iin**3v;s+;<-  --;c
;c3 #
 *j45 LQQR8(KSaJ'*T-=-=a-@@8(J|$ =B!H#EHqDKKNH#EJx (/J}%))a)8 LQQR8(KSaJ'*T-=-=a-@@8(J|$ =B!H#EHqDKKNH#EJx (.J}%))a)8 ))a)8NSTUh(NVJ'*T-@-@-CCh(J|$ =B!H#EHqDKKNH#EJx (/J}% ))a)8NSTUh(NVJ'*T-@-@-CCh(J|$ =B!H#EHqDKKNH#EJx (.J}% ))a)8FKAh(FNJ'*T[[^;h(J|$ EJ!H#MHqd&6&6q&9%9H#MJx (,J}% ))a)8FKAh(FNJ'*T[[^;h(J|$ BGq#JAD$4$4Q$7#JJx (.J}%C "( $F( $F( $F( $F( $N( $Ks   BON8ON!8ON8ON !AO5N%O'N*=8O5N/O'N4=8O5N9O'N>>8O6OO(O>AONr   r   r   r
   r   r      s    -@M
Br   r   c                       e Zd Zd Zd Zd Zy)StereoCubeCamerac                    || _         g | _        || _        || _        t	        ||      | _        || _        || _        | j                   j                  ddg d       | j                   j                  ddddg       i | _	        |D ]A  }|d   D ]7  }|| j                  vri | j                  |<   d	| j                  |   |d   |   <   9 C | j                  D ]*  }t        | j                  |   d
       | j                  |<   , | j                  j                         | _        | j                  D ]-  }| j                   j                  d|| j                  |          / | j                   j                          y )Nr   r^   r   r   eyer   r   r   Tc                     t        |       S r   r   r   s    r
   r   z+StereoCubeCamera.__init__.<locals>.<lambda>{  r   r   r   r+   )rt   ru   r   rs   r?   r   r   
eyeSpacingry   r   r   r   r   r|   )r}   rt   r   rs   r   r   r   r   s           r
   r   zStereoCubeCamera.__init__a  sh   & &)+v>"$ 	))]3Q 	* 	
 	))UFG+< 	* 	

 	C6{dii'%'DIIcN37		#s6{3/0 #  99C#DIIcN8HIDIIcN  yy~~'99C--TYYs^ .  
 	**,r   c                     dg}t        t        t        |      t        |                  D ]$  }| j                  j	                  ||   ||          & y r   r   r   s       r
   r   zStereoCubeCamera.updatePriority  r   r   c              #   6  K   | j                   D 
]3  }i }|d   D ]D  }| j                  |   j                  |d   |         } | j                  j                  di ||i F d|d<   | j                  j	                  d       | j
                  D cg c]  }|t        | j                        z  dz   }}| j                  j	                  d       t        d      D cg c]  }| j                  |    c}|d	<   t        d      D cg c]  }|d
   |   ||   z
   c}|d
<   t        d      D cg c]   }|d
   |   | j                  |   z   ||   z
  " c}|d<   | | j                  j	                  d       t        d      D cg c]  }| j                  |    c}|d	<   t        d      D cg c]  }|d
   |   ||   z    c}|d
<   t        d      D cg c]   }|d
   |   | j                  |   z   ||   z   " c}|d<   | d|d<   | j                  j	                  d       | j
                  D cg c]  }|t        | j                        z  dz     }}| j                  j	                  d       t        d      D cg c]  }| j                  |    c}|d	<   t        d      D cg c]  }|d
   |   ||   z
   c}|d
<   t        d      D cg c]   }|d
   |   | j                  |   z
  ||   z
  " c}|d<   | | j                  j	                  d       t        d      D cg c]  }| j                  |    c}|d	<   t        d      D cg c]  }|d
   |   ||   z    c}|d
<   t        d      D cg c]   }|d
   |   | j                  |   z
  ||   z   " c}|d<   | | j                  j	                  d       d|d<   | j                  D cg c]  }|t        | j                        z  dz     }}| j                  j	                  d       t        d      D cg c]  }| j                  |    c}|d	<   t        d      D cg c]  }|d
   |   ||   z
   c}|d
<   t        d      D cg c]   }|d
   |   | j
                  |   z   ||   z
  " c}|d<   | | j                  j	                  d       t        d      D cg c]  }| j                  |    c}|d	<   t        d      D cg c]  }|d
   |   ||   z    c}|d
<   t        d      D cg c]   }|d
   |   | j
                  |   z   ||   z   " c}|d<   | | j                  j	                  d       d|d<   | j                  D cg c]  }|t        | j                        z  dz   }}| j                  j	                  d       t        d      D cg c]  }| j                  |    c}|d	<   t        d      D cg c]  }|d
   |   ||   z
   c}|d
<   t        d      D cg c]   }|d
   |   | j
                  |   z
  ||   z
  " c}|d<   | | j                  j	                  d       t        d      D cg c]  }| j                  |    c}|d	<   t        d      D cg c]  }|d
   |   ||   z    c}|d
<   t        d      D cg c]   }|d
   |   | j
                  |   z
  ||   z   " c}|d<   | | j                  j	                  d       d|d<   | j
                  D cg c]  }|t        | j                        z  dz   }}| j                  j	                  d       t        d      D cg c]  }| j                  |     c}|d	<   t        d      D cg c]  }|d
   |   ||   z
   c}|d
<   t        d      D cg c]   }|d
   |   | j                  |   z   ||   z
  " c}|d<   | | j                  j	                  d       t        d      D cg c]  }| j                  |     c}|d	<   t        d      D cg c]  }|d
   |   ||   z    c}|d
<   t        d      D cg c]   }|d
   |   | j                  |   z   ||   z   " c}|d<   | | j                  j	                  d       d|d<   | j
                  D cg c]  }|t        | j                        z  dz   }}| j                  j	                  d       t        d      D cg c]  }| j                  |    c}|d	<   t        d      D cg c]  }|d
   |   ||   z
   c}|d
<   t        d      D cg c]   }|d
   |   | j                  |   z
  ||   z
  " c}|d<   | | j                  j	                  d       t        d      D cg c]  }| j                  |    c}|d	<   t        d      D cg c]  }|d
   |   ||   z    c}|d
<   t        d      D cg c]   }|d
   |   | j                  |   z
  ||   z   " c}|d<   | 
6 y c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w w)Nr   r   r^   r   r   g      ?)r   rJ   rs   rr   rq   r+   r   r/   r   r   r   r   r   r   r   )r   r   r{   rt   r   r   floatr   rM   rs   r   )r}   r   r   r   r   r2   	deltaVectrF   s           r
   r   zStereoCubeCamera.__iter__  sv    >>CJ6{iin**3v;s+;<-  --;c
; #
 )0J}%))a)8<@<O<O<OqU4??++c1<O   ))a)0<A!H#EHqDKKNH#EJx CH8&CKCZ%	#68&Jz"
 q(!A Z#d&6&6q&99IaLH!(J|$ ))a)0<A!H#EHqDKKNH#EJx CH8&CKCZ%	#68&Jz"
 q(!A Z#d&6&6q&99IaLH!(J|$  )/J}%))a)8=A=P=P=P!eDOO,,s23=P   ))a)0<A!H#EHqDKKNH#EJx CH8&CKCZ%	#68&Jz"
 q(!A Z#d&6&6q&99IaLH!(J|$ ))a)0<A!H#EHqDKKNH#EJx CH8&CKCZ%	#68&Jz"
 q(!A Z#d&6&6q&99IaLH!(J|$  ))a)8(/J}%FJFVFVWFV1uT__55;<FVIW))a)0<A!H#EHqDKKNH#EJx CH8&CKCZ%	#68&Jz"
 q(!A Z#d&9&9!&<<y|K!(J|$ ))a)0<A!H#EHqDKKNH#EJx CH8&CKCZ%	#68&Jz"
 q(!A Z#d&9&9!&<<y|K!(J|$  ))a)8(.J}%EIEUEUVEU!eDOO44s:EUIV))a)0<A!H#EHqDKKNH#EJx CH8&CKCZ%	#68&Jz"
 q(!A Z#d&9&9!&<<y|K!(J|$ ))a)0<A!H#EHqDKKNH#EJx CH8&CKCZ%	#68&Jz"
 q(!A Z#d&9&9!&<<y|K!(J|$  ))a)8(,J}%<@<O<O<OqU4??++c1<O   ))a)0DI!H#MHqd&6&6q&9%9H#MJx CH8&CKCZ%	#68&Jz" OTTUh(NVZ#dkk!n4y|Ch(J|$ ))a)0DI!H#MHqd&6&6q&9%9H#MJx CH8&CKCZ%	#68&Jz" OTTUh(NVZ#dkk!n4y|Ch(J|$  ))a)8(.J}%<@<O<O<OqU4??++c1<O   ))a)0AFq#JAD$4$4Q$7#JJx CH8&CKCZ%	#68&Jz" OTTUh(NVZ#dkk!n4y|Ch(J|$ ))a)0AFq#JAD$4$4Q$7#JJx CH8&CKCZ%	#68&Jz" OTTUh(NVZ#dkk!n4y|Ch(J|$ W "
 $F&( $F&(
 $F&( $F&( X $F&( $F&( W $F&( $F&(
 $N&( $N&(
 $K&( $K&(s  Bl"i2+li3lil.%i3lil/i l%i%<9l5#i*+li/l,i4l%i993l,i>lj*l=%j"9l#j>+l)j?lj'l:%j3lj!(l;j&l#%j+9l"j0#+lj5$l7j:l%j?3l7kl k	5l%k-9l&"k+l3k
lk2l%k"*3lk'4lk,l/%k19l"k6/+lk;0ll l+%l3ll
l,ll%l9C lNr   r   r   r
   r   r   ^  s    "-HM
lr   r   c                   $    e Zd Zd Zd Zd Zd Zy)MultiViewCamerac                 .    || _         g | _        g | _        y r   )rt   ru   positionNames)r}   rt   s     r
   r   zMultiViewCamera.__init__?  s    & r   c                 &   | j                   j                  |t        | j                        |||d       | j                  j                  |       | j                  j                  dd| j                         | j                  j                          y )N)re   nameIdxrq   rr   rs   r   	multiViewr   )ru   rz   rx   r   rt   ry   r|   )r}   re   rq   rr   rs   s        r
   registerViewPointz!MultiViewCamera.registerViewPointD  s    ""t112($ 	
 	!!$'))[1C1C 	* 	
 	**,r   c                     dg}t        t        t        |      t        |                  D ]$  }| j                  j	                  ||   ||          & y )Nr   r   r   s       r
   r   zMultiViewCamera.updatePriorityT  sG    -S.G=>C++GCL,s:KL ?r   c              #   t   K   | j                   D ]%  }| j                  j                  |d          | ' y w)Nr   )r   r   r   s     r
   r   zMultiViewCamera.__iter__Y  s8     --J))Jy4I)J .s   68N)r   r   r   r   r   r   r   r   r   r
   r   r   >  s     
- M
r   r   c                     | j                         }|j                  |d          |j                  |d          |j                  |d          y )Nrr   rq   rs   )GetActiveCameraSetPositionSetFocalPoint	SetViewUp)rendererr   cameras      r
   update_camerar   d  sI    %%'F
z*-.
L12
Z)*r   c                     | j                         }t        ||j                         |j                         |j	                         ||      S r   )r   rV   GetFocalPointGetPosition	GetViewUp)r   rt   	phiValuesthetaValuesr   s        r
   create_spherical_camerar   k  sJ    %%'F r   c                     | j                         }t        ||j                         |j                         |j	                         ||      S r   )r   r   r   r   r   )r   rt   r   r   r   s        r
   create_cylindrical_camerar   w  sJ    %%'F r   N)gh㈵>)mathr   r&   r)   r-   r4   r?   rC   rT   objectrV   r   r   r   r   r   r   r   r   r   r
   <module>r      s    
7
K[f [F8 8@j jdXv X@f L+		r   