
    Ui	                     V    S r SSKrSSKrSS jrS rS rS rS rS rS	 r	SS
 jr
S rg)z5
Created on Apr 18, 2017

@author: Christopher Bruns
    Nc                 |    U(       a   [         R                  " U R                  5      $ [         R                  " U 5      $ )N)numpyascontiguousarrayT)matrixdo_transposes     U/home/james-whalen/.local/lib/python3.13/site-packages/openvr/glframework/glmatrix.pypackr
      s+    &&vxx00&&v..    c                     X-   X-
  -  nX2-   X2-
  -  nXT-   * XT-
  -  nSU-  U-  * XT-
  -  n	[         R                  " SU-  X-
  -  SUS/SSU-  X2-
  -  US/SSX// SQ/[         R                  S9R                  $ )N       @        )r   r   g      r   dtyper   r   float32r   )
leftrightbottomtopz_nearz_farabcds
             r	   frustumr      s    	%,'A	#,'A
.U^,A
+
5>2A<<6\U\*CC8#,#,/C8#q!	# +0--	9 :;	;r   c                  `    [         R                  " / SQ/ SQ/ SQ/ SQ/[         R                  S9$ )N   r   r   r   r   r    r   r   r   r   r    r   r   r   r   r    r   r   r   r    r   r	   identityr&      s-    <<	 "'	0 0r   c                     [         R                  " U S-  S-  [         R                  -  5      U-  nXA-  n[        U* XT* XBU5      $ )Nr   g     f@)mathtanpir   )fov_yaspectr   r   f_hf_ws         r	   perspectiver/   '   sC    
((53;&0
1F
:C
,CC4dC77r   c                     [         R                  " [        U 5      5      n[         R                  " [        U 5      5      n[        R
                  " / SQSX!* S/SXS// SQ/[        R                  S9R                  $ )Nr   r   r#   r   r(   sinfloatcosr   r   r   r   anglesr   s      r	   rotate_xr8   -   sf    uAuA<<2qMaL	 "'	0 12	2r   c                     [         R                  " [        U 5      5      n[         R                  " [        U 5      5      n[        R
                  " USUS// SQU* SUS// SQ/[        R                  S9R                  $ )Nr   r!   r#   r   r1   r5   s      r	   rotate_yr:   7   sj    uAuA<<1aLRAqM	 "'	0 12	2r   c                     [         R                  " [        U 5      5      n[         R                  " [        U 5      5      n[        R
                  " X!* SS/XSS// SQ/ SQ/[        R                  S9R                  $ )Nr   r"   r#   r   r1   r5   s      r	   rotate_zr<   A   sf    uAuA<<AqM1aL	 "'	0 12	2r   c                 |    Uc  U nUc  U n[         R                  " U SSS4SUSS4SSUS4S/[         R                  S9$ )Nr   r#   r   r$   )sxsyszs      r	   scalerA   K   sY    	z	z<<aARAQA%	' /4mm	= =r   c                     U u  pnSSSU/SSSU/SSSU// SQ/n[         R                  " U[         R                  S9nUR                  $ )Nr    r   r#   r   r   )xyzxyzarraymats         r	   	translaterI   W   sU    GA!1aL1aL1aL	E
 ,,uEMM
2C55Lr   )F)NN)__doc__r(   r   r
   r   r&   r/   r8   r:   r<   rA   rI   r%   r   r	   <module>rK      s?     /	;08222	=r   