³ò
íHc           @   sÓ   d  d k  l Z d  d k Z d d d „  ƒ  YZ d d d „  ƒ  YZ d „  Z d „  Z e d	 j on e d
 d d ƒ Z e d d
 d ƒ Z	 d Ge e e	 ƒ GHd Ge e e	 ƒ GHe e	 Z
 e
 GHe
 i ƒ  d Ge
 GHn d S(   iÿÿÿÿ(   t   sqrtNt   Vector2c           B   s§   e  Z d  d  d „ Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d	 „  Z
 d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   g        c         C   s(   t  | ƒ t  | ƒ g |  _ d |  _ d  S(   NR   (   t   floatt   et   name(   t   selft   xt   y(    (    s   bin/python/vector.pyt   __init__	   s    c         C   s   | | |  i  d <|  i  d <d  S(   Ni    i   (   R   (   R   R   R   (    (    s   bin/python/vector.pyt   Set   s    c         C   s   | |  i  d <d  S(   Ni    (   R   (   R   R   (    (    s   bin/python/vector.pyt   SetX   s    c         C   s   | |  i  d <d  S(   Ni   (   R   (   R   R   (    (    s   bin/python/vector.pyt   SetY   s    c         C   s   |  i  d S(   Ni    (   R   (   R   (    (    s   bin/python/vector.pyR      s    c         C   s   |  i  d S(   Ni   (   R   (   R   (    (    s   bin/python/vector.pyR      s    c         C   s2   t  |  i d |  i d |  i d |  i d ƒ S(   Ni    i   (   R    R   (   R   (    (    s   bin/python/vector.pyt   length   s    c         C   s,   |  i  d |  i  d |  i  d |  i  d S(   Ni    i   (   R   (   R   (    (    s   bin/python/vector.pyt   squaredLength   s    c         C   s{   |  i  ƒ  } y& |  i d | } |  i d | } Wn' d Gt i Gt i GHt i d ƒ n X| | |  i d <|  i d <d  S(   Ni    i   t   Error(   R   R   t   syst   exc_typet	   exc_valuet   exit(   R   t   lR   R   (    (    s   bin/python/vector.pyt   MakeUnitVector   s    c         C   s   |  i  | S(   N(   R   (   R   t   i(    (    s   bin/python/vector.pyt   __getitem__+   s    c         C   s   | |  i  | <d  S(   N(   R   (   R   R   t   val(    (    s   bin/python/vector.pyt   __setitem__-   s    c         C   s+   t  |  i d | d |  i d | d ƒ S(   Ni    i   (   R   R   (   R   t   other(    (    s   bin/python/vector.pyt   __add__/   s    c         C   s+   t  |  i d | d |  i d | d ƒ S(   Ni    i   (   R   R   (   R   R   (    (    s   bin/python/vector.pyt   __sub__1   s    c         C   s#   t  |  i d | |  i d | ƒ S(   Ni    i   (   R   R   (   R   t   n(    (    s   bin/python/vector.pyt   __mul__3   s    c         C   s#   t  |  i d | |  i d | ƒ S(   Ni    i   (   R   R   (   R   R   (    (    s   bin/python/vector.pyt   __div__5   s    c         C   s   d |  i  d |  i  d f S(   Ns   %f %fi    i   (   R   (   R   (    (    s   bin/python/vector.pyt   __repr__7   s    c         C   s   t  |  | ƒ S(   N(   t   getattr(   R   R   (    (    s   bin/python/vector.pyt   __getattr__9   s    (   t   __name__t
   __module__R   R	   R
   R   R   R   R   R   R   R   R   R   R   R   R   R   R!   (    (    (    s   bin/python/vector.pyR      s"   															t   Vector3c           B   s¼   e  Z d  d  d  d „ Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d	 „  Z
 d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   i    c         C   s1   t  | ƒ t  | ƒ t  | ƒ g |  _ d |  _ d  S(   NR$   (   R   R   R   (   R   R   R   t   z(    (    s   bin/python/vector.pyR   =   s    $c         C   s-   | | | |  i  d <|  i  d <|  i  d <d  S(   Ni    i   i   (   R   (   R   R   R   R%   (    (    s   bin/python/vector.pyR	   A   s    c         C   s   | |  i  d <d  S(   Ni    (   R   (   R   R   (    (    s   bin/python/vector.pyR
   D   s    c         C   s   | |  i  d <d  S(   Ni   (   R   (   R   R   (    (    s   bin/python/vector.pyR   G   s    c         C   s   | |  i  d <d  S(   Ni   (   R   (   R   R%   (    (    s   bin/python/vector.pyt   SetZI   s    c         C   s   |  i  d S(   Ni    (   R   (   R   (    (    s   bin/python/vector.pyR   L   s    c         C   s   |  i  d S(   Ni   (   R   (   R   (    (    s   bin/python/vector.pyR   M   s    c         C   s   |  i  d S(   Ni   (   R   (   R   (    (    s   bin/python/vector.pyR%   N   s    c         C   sH   t  |  i d |  i d |  i d |  i d |  i d |  i d ƒ S(   Ni    i   i   (   R    R   (   R   (    (    s   bin/python/vector.pyR   P   s    .c         C   sB   |  i  d |  i  d |  i  d |  i  d |  i  d |  i  d S(   Ni    i   i   (   R   (   R   (    (    s   bin/python/vector.pyR   S   s    c         C   sš   |  i  ƒ  } y7 |  i d | } |  i d | } |  i d | } Wn' d Gt i Gt i GHt i d ƒ n* X| | | |  i d <|  i d <|  i d <d  S(   Ni    i   i   R   (   R   R   R   R   R   R   (   R   R   R   R   R%   (    (    s   bin/python/vector.pyR   V   s    c         C   s   |  i  | S(   N(   R   (   R   R   (    (    s   bin/python/vector.pyR   d   s    c         C   s   | |  i  | <d  S(   N(   R   (   R   R   R   (    (    s   bin/python/vector.pyR   f   s    c         C   s=   t  |  i d | d |  i d | d |  i d | d ƒ S(   Ni    i   i   (   R$   R   (   R   R   (    (    s   bin/python/vector.pyR   h   s    'c         C   s=   t  |  i d | d |  i d | d |  i d | d ƒ S(   Ni    i   i   (   R$   R   (   R   R   (    (    s   bin/python/vector.pyR   k   s    'c         C   s1   t  |  i d | |  i d | |  i d | ƒ S(   Ni    i   i   (   R$   R   (   R   R   (    (    s   bin/python/vector.pyR   n   s    c         C   s1   t  |  i d | |  i d | |  i d | ƒ S(   Ni    i   i   (   R$   R   (   R   R   (    (    s   bin/python/vector.pyR   q   s    c         C   s&   d |  i  d |  i  d |  i  d f S(   Ns   %f %f %fi    i   i   (   R   (   R   (    (    s   bin/python/vector.pyR   t   s    c         C   s   t  |  | ƒ S(   N(   R    (   R   R   (    (    s   bin/python/vector.pyR!   w   s    (   R"   R#   R   R	   R
   R   R&   R   R   R%   R   R   R   R   R   R   R   R   R   R   R!   (    (    (    s   bin/python/vector.pyR$   <   s&   																	c         C   s…   t  |  i ƒ } | d j o$ |  d | d |  d | d SnB | d j o4 |  d | d |  d | d |  d | d Sn d  S(   Ni   i    i   i   (   t   lenR   (   t   v1t   v2R   (    (    s   bin/python/vector.pyt   dot{   s
    $c         C   se   t  |  d | d |  d | d |  d | d |  d | d |  d | d |  d | d ƒ S(   Ni   i   i    (   R$   (   R(   R)   (    (    s   bin/python/vector.pyt   cross‚   s    " t   __main__i   i    s   dot =s   cross = t
   Normalized(    (    (   t   mathR    R   R   R$   R*   R+   R"   R(   R)   t   v3R   (    (    (    s   bin/python/vector.pys   <module>   s   4?		

