+
    Zi3                        ^ RI Ht ^ RIt^ RIHt ^ RIHtHt ^ RIH	t	H
t
 ^ RIHt ^ RIHtHt ^ RIHt ^ R	IHt ^ R
IHt ^RIHtHtHt ]] ! R R4      4       4       tR# )    )annotationsN)Optional)definefield)Identity	Transform)AbstractPen)AbstractPointPenPointToSegmentPen)BoundingBox)serde)GlyphSet)_convert_transform	getBoundsgetControlBoundsc                      ] tR t^t$ RtR]R&    ]! ]]R7      t	R]R&    Rt
R]R	&    R
 R ltR R ltR R ltR R ltR R ltRtR# )	Componenta  Represents a reference to another glyph in the same layer.

See http://unifiedfontobject.org/versions/ufo3/glyphs/glif/#component.

Note:
    Components always refer to glyphs in the same layer. Referencing different
    layers is currently not possible in the UFO data model.
str	baseGlyph)default	converterr   transformationNzOptional[str]
identifierc                    V ^8  d   QhRRRR/# )   deltaztuple[float, float]returnNone )formats   ";/usr/lib/python3/dist-packages/ufoLib2/objects/component.py__annotate__Component.__annotate__'   s     H H- H$ H    c           	     l    Vw  r#V P                   w  rErgr\        WEWgW,           W,           4      V n         R# )a  Moves this component by (x, y) font units.

NOTE: This interprets the delta to be the visual delta, as in, it
replaces the x and y offsets of the component's transformation
directly, rather than going through
:meth:`fontTools.misc.transform.Transform.translate`. Otherwise,
composites that use flipped components (imagine a ``quotedblleft``
composite using two x- and y-inverted ``comma`` components)
would move in the opposite direction of the delta.
N)r   r   )
selfr   xyxxxyyxyydxdys
   &&        r!   moveComponent.move'   s4     !%!4!4'Gr$   c                    V ^8  d   QhRRRR/# r   layerr   r   zBoundingBox | Noner   )r    s   "r!   r"   r#   6   s     & &x &,> &r$   c                    \        W4      # )zReturns the (xMin, yMin, xMax, yMax) bounding box of the component,
taking the actual contours into account.

Args:
    layer: The layer of the containing glyph to look up components.
)r   r&   r3   s   &&r!   r   Component.getBounds6   s     %%r$   c                    V ^8  d   QhRRRR/# r2   r   )r    s   "r!   r"   r#   ?   s     - -h -3E -r$   c                    \        W4      # )zReturns the (xMin, yMin, xMax, yMax) bounding box of the component,
taking only the control points into account.

Args:
    layer: The layer of the containing glyph to look up components.
)r   r5   s   &&r!   r   Component.getControlBounds?   s      ,,r$   c                    V ^8  d   QhRRRR/# )r   penr	   r   r   r   )r    s   "r!   r"   r#   L   s     " " " "r$   c                >    \        V4      pV P                  V4       R# )zDraws component with given pen.N)r   
drawPoints)r&   r;   pointPens   && r!   drawComponent.drawL   s    $S)!r$   c                    V ^8  d   QhRRRR/# )r   r>   r
   r   r   r   )r    s   "r!   r"   r#   Q   s      #3  r$   c                    VP                  V P                  V P                  V P                  R7       R#   \         dF    TP                  T P                  T P                  4       \
        P                  ! R\        4        R# i ; i)z/Draws points of component with given point pen.)r   zgThe addComponent method needs an identifier kwarg. The component's identifier value has been discarded.N)addComponentr   r   r   	TypeErrorwarningswarnUserWarning)r&   r>   s   &&r!   r=   Component.drawPointsQ   so    
	!! 3 3 "   	!!$..$2E2EFMMG	s   26 ABB)r   )__name__
__module____qualname____firstlineno____doc____annotations__r   r   r   r   r   r/   r   r   r?   r=   __static_attributes__r   r$   r!   r   r      sR     N< %hBT UNIUQ $J$:H&-"
 r$   r   )
__future__r   rE   typingr   attrsr   r   fontTools.misc.transformr   r   fontTools.pens.basePenr	   fontTools.pens.pointPenr
   r   ufoLib2.objects.miscr   ufoLib2.serder   ufoLib2.typingr   miscr   r   r   r   r   r$   r!   <module>rZ      sM    "    8 . G ,  # A A I I  Ir$   