§
    èƒñj@  ã                  ór   — d Z ddlmZ ddlmZ ddlmZmZ ddlm	Z	 ddl
mZ dd	lmZ  G d
„ de	¦  «        ZdS )z! Transformer element definitions é    )Úannotations)ÚOptionalé   )ÚSegmentÚ
SegmentArcé   )ÚElement)Úcycloid)ÚXformTapc                  óD   ‡ — e Zd ZdZdddœZ	 ddddœdˆ fd„Zddd„Zˆ xZS )ÚTransformera$   Transformer

        Add taps to the windings on either side using
        the `.taps` method.

        Args:
            t1: Turns on primary (left) side
            t2: Turns on secondary (right) side
            core: Draw the core (parallel lines) [default: True]
            loop: Use spiral/cycloid (loopy) style [default: False]

        Anchors:
            * p1: primary side 1
            * p2: primary side 2
            * s1: secondary side 1
            * s2: secondary side 2
            * Other anchors defined by `taps` method
    TF)ÚcoreÚloopé   NÚt1ÚintÚt2r   úOptional[bool]r   c          
     ó’  •—  t          ¦   «         j        di |¤Ž d}d}||z  }||z   dz  ||z  dz  z   }	||z   dz  ||z  dz  z
  }
d}| j        d         r|dz   }| j        d         r|dz   }d}|}| j        d         rÊt          |dd	d
¬¦  «        }t          |||	 |z   fd	d
d
¬¦  «        }t	          d„ |D ¦   «         ¦  «        }t          d„ |D ¦   «         ¦  «        }|d         d         }|d         d         }	| j                             t          |¦  «        ¦  «         | j                             t          |¦  «        ¦  «         n˜t          |¦  «        D ]<}| j                             t          d|||z  |dz  z   z
  fdd||¬¦  «        ¦  «         Œ=t          |¦  «        D ]<}| j                             t          ||	||z  |dz  z   z
  fdd||¬¦  «        ¦  «         Œ=| j        d         r�t          ||	¦  «        }t	          ||
¦  «        }|dz  }|dz  }| j                             t          ||z
  |f||z
  |fg¦  «        ¦  «         | j                             t          ||z   |f||z   |fg¦  «        ¦  «         d|f| j        d<   d|f| j        d<   ||	f| j        d<   ||
f| j        d<   || _        || _        || _        |	| _        || _        d|v r7|d                              ¦   «         D ]\  }}|                      ||d¦  «         Œd|v r7|d                              ¦   «         D ]\  }}|                      ||d¦  «         Œd S d S )Ngš™™™™™Ù?g        r   g      è?r   r   g      Ð?)r   r   FT)ÚloopsÚofstÚnormÚvertical)r   r   r   Úflipr   c                ó   — g | ]
}|d          ‘ŒS ©r   © ©Ú.0Úis     úW/data/share/cad/hardware/.venv/lib/python3.11/site-packages/schemdraw/elements/xform.pyú
<listcomp>z(Transformer.__init__.<locals>.<listcomp>>   ó   € Ð*Ð*Ð* !˜˜1œÐ*Ð*Ð*ó    c                ó   — g | ]
}|d          ‘ŒS r   r   r   s     r!   r"   z(Transformer.__init__.<locals>.<listcomp>?   r#   r$   éÿÿÿÿr   r   i  éZ   )Útheta1Útheta2ÚwidthÚheighté
   Úp1Úp2Ús1Ús2ÚltapsÚprimaryÚrtapsÚ	secondaryr   )ÚsuperÚ__init__Úparamsr
   ÚminÚmaxÚsegmentsÚappendr   Úranger   ÚanchorsÚ_ltapxÚ_rtapxÚ_ltopÚ_rtopÚ_ind_wÚitemsÚtap)Úselfr   r   r   r   ÚkwargsÚind_wÚlbotÚltopÚrtopÚrbotÚind_gapÚltapxÚrtapxÚc1Úc2r    ÚtopÚbotÚcenterÚcore_wÚnameÚposÚ	__class__s                          €r!   r6   zTransformer.__init__"   s-  ø€ ð 	�‰ŒÔÐ"Ð"˜6Ð"Ð"Ð"ØˆØˆØ�%‰xˆØ�T‘	˜1‰}˜r %™x¨™zÑ)ˆØ�T‘	˜1‰}˜r %™x¨™zÑ)ˆð ˆØŒ;�vÔð 	#Ø ‘lˆGØŒ;�vÔð 	$Ø ‘mˆGàˆØˆð Œ;�vÔð 	GÝ˜r¨°UÀTÐJÑJÔJˆBÝ˜r¨°4°%¸±*Ð(=ÀEØ"¨Tð3ñ 3ô 3ˆBåÐ*Ð* rÐ*Ñ*Ô*Ñ+Ô+ˆEÝÐ*Ð* rÐ*Ñ*Ô*Ñ+Ô+ˆEØ�b”6˜!”9ˆDØ�b”6˜!”9ˆDØŒM× Ò ¥¨¡¤Ñ-Ô-Ð-ØŒM× Ò ¥¨¡¤Ñ-Ô-Ð-Ð-å˜2‘Y”Yð Gð G�Ø”×$Ò$¥ZØ˜˜a ™g e¨A¡g™oÑ.Ð/Ø r°¸uð&Fñ &Fô &Fñ Gô Gð Gð Gõ ˜2‘Y”Yð Gð G�Ø”×$Ò$¥ZØ˜d A e¡G¨E°!©G¡OÑ4Ð5Ø c°¸uð&Fñ &Fô &Fñ Gô Gð Gð Gð Œ;�vÔð 	?Ý�d˜D‘/”/ˆCÝ�d˜D‘/”/ˆCØ˜Q‘YˆFØ˜R‘ZˆFØŒM× Ò ¥Ø˜‘- Ð%¨¨v©°sÐ';Ð<ñ">ô ">ñ ?ô ?ð ?àŒM× Ò ¥Ø˜‘- Ð%¨¨v©°sÐ';Ð<ñ">ô ">ñ ?ô ?ð ?ð   ˜YˆŒ�TÑØ ˜YˆŒ�TÑØ% t˜_ˆŒ�TÑØ% t˜_ˆŒ�TÑàˆŒØˆŒØˆŒ
ØˆŒ
ØˆŒà�fÐÐØ# Gœ_×2Ò2Ñ4Ô4ð /ð /‘	��cØ—’˜˜s IÑ.Ô.Ð.Ð.Ø�fÐÐØ# Gœ_×2Ò2Ñ4Ô4ð 1ð 1‘	��cØ—’˜˜s KÑ0Ô0Ð0Ð0ð Ðð1ð 1r$   r2   rU   ÚstrrV   Úsider   c                óÂ   — |dv r"| j         | j        || j        z  z
  f| j        |<   n8|dv r"| j        | j        || j        z  z
  f| j        |<   nt          d|› �¦  «        ‚| S )a1   Add a tap

            A tap is simply a named anchor definition along one side
            of the transformer.

            Args:
                name: Name of the tap/anchor
                pos: Turn number from the top of the tap
                side: Primary (left) or Secondary (right) side
        )Úleftr2   )Úrightr4   zUndefined tap side )r>   r@   rB   r=   r?   rA   Ú
ValueError)rE   rU   rV   rY   s       r!   rD   zTransformer.tapj   s€   € ð Ð&Ð&Ð&Ø"&¤+¨t¬z¸CÀ$Ä+Ñ<MÑ/MÐ!NˆDŒL˜ÑÐØÐ+Ð+Ð+Ø"&¤+¨t¬z¸CÀ$Ä+Ñ<MÑ/MÐ!NˆDŒL˜ÑÐåÐ9°4Ð9Ð9Ñ:Ô:Ð:Øˆr$   )r   r   )r   r   r   r   r   r   r   r   )r2   )rU   rX   rV   r   rY   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú_element_defaultsr6   rD   Ú__classcell__)rW   s   @r!   r   r      s›   ø€ € € € € ðð ð& Øðð Ðð
 )*ðF1ð )-Ø(,ð	F1ð F1ð F1ð F1ð F1ð F1ð F1ð F1ðPð ð ð ð ð ð ð ð r$   r   N)ra   Ú
__future__r   Útypingr   r:   r   r   Úelementsr	   Útwotermr
   Útypesr   r   r   r$   r!   ú<module>ri      s»   ðØ 'Ð 'Ø "Ð "Ð "Ð "Ð "Ð "Ø Ð Ð Ð Ð Ð à *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ðpð pð pð pð p�'ñ pô pð pð pð pr$   