Ñò
rŠ¥Nc           @   s/   d  d k  Z  d  d k Z d d d „  ƒ  YZ d S(   iÿÿÿÿNt   IFc           B   s)   e  Z d  „  Z d d „ Z d d „ Z RS(   c         C   s(   d G| GH| |  _  d |  _ d |  _ d  S(   Ns   Microtubule object:id   i    (   t   MTt   cooldownframest   maxcrosslinks(   t   selfR   (    (    s   IF.pyt   __init__   s    			iÿÿÿÿc         C   s  | |  i  j ok |  i i i d ƒ t j oO |  i i i d d g ƒ |  i i i d d g ƒ |  i i i d d g ƒ n | |  i  j  ok |  i i i d ƒ t j oO |  i i i d t g ƒ |  i i i d d g ƒ |  i i i d d g ƒ n | |  i  j o§ |  i i i d ƒ t j o‡ |  i i ƒ  } | d j o |  i i i d d	 g ƒ n+ | d
 j  o |  i i i d d g ƒ n d G| Gd G|  i i i d ƒ GHq­n t	 i	 ƒ  d j  oC |  i i i d ƒ t
 j o' |  i i ƒ  d j  o |  i i ƒ  n d  S(   Nt   PlasmaMembranet   CatastropheProbabilityg        t   TargetMTCounti    t   DONTADDi@B i   i
   g      à?s   Total length:s      Cat:gš™™™™™¹?i,  (   R   R   t   Paramst   GetParametert   Falset   SetParametert   LayerActionst   appendt   ReturnTotalLengtht   randomt   Truet   TotalMicrotubuleCountt   AddRandomMT(   R   t   framet	   totlength(    (    s   IF.pyt   IFStep
   s$    ,,  (Ec         C   sü  | i  ƒ  | i | | ƒ |  i i | ƒ } | i ƒ  t j o¨ | i ƒ  |  i i | ƒ } | d j o | i | i	 ƒ qç | d j o | i
 | i	 ƒ qç | d j o | i ƒ  qç | d j o |  i i | ƒ qç | i ƒ  n |  i i i d ƒ t j o~ y | i } Wn d } n X|  i i i | i ƒ }	 |	 d d }
 |	 |  i j o |	 |  _ n | |	 j  o |
 | _ qn t i ƒ  d	 j  or |  i i i d ƒ t j oV |  i i i | i ƒ } | i ƒ  t j o' |  i i i i | ƒ |  i i | =qn |  i i i d ƒ t j o. t i ƒ  d
 | i ƒ  j  o |  i i ƒ  n |  i i i d ƒ t j o. t i ƒ  d | i ƒ  j  o |  i i ƒ  n | i ƒ  t j p" |  i i i i | i  ƒ t j o) y | i! ƒ  |  i i | =WqøqøXn d  S(   Nt   Zippert   ReverseZippert   Catastrophet   SeverR   i    i   g     @@g{®Gáz„?gš™™™™™¹?gš™™™™™©?("   t   SaveMTCoordinatest   StepForwardR   t   CheckSpecificCollisiont   HitSomethingR   t	   RestoreMTt   ZipperDecisionR   t   angle2R   t   HaveCatastrophet   SeverMicrotubulet   PauseR
   R   R   t   OtherFaceMTst   CountMTCrossoverst   CoordinatesR   R   R   t!   CheckLinesCollisionWithPopulationt   MTcollectionR   t   Lengtht   SpawnMTt   SmallMTt   Cellt   Polygont   CheckInsideCell2t
   tempcoordst   PrepareToDie(   R   t   mtt   mtnumbert   totallengtht   maximumlengthR   t
   collobjectt   decisiont
   currentcatt
   crossoverst
   newcatrate(    (    s   IF.pyt   MicrotubuleIF   sR    

      
  /995
(   t   __name__t
   __module__R   R   R<   (    (    (    s   IF.pyR       s   	(    (   t   impR   R    (    (    (    s   IF.pyt   <module>   s   