Files
intellecton/venv/lib/python3.12/site-packages/contourpy/__pycache__/convert.cpython-312.pyc
T

135 lines
26 KiB
Plaintext
Raw Normal View History

Ë
†Rj*fãóÌddlmZddlmZddlmZmZddlZddl m
Z
m Z ddl m
ZddlmZmZddlmZmZddlmZmZerddl mZ dd „Z dd
Z dd Z dd Z dd
Z ddZ ddZ ddZ! d dZ" d!dZ# d"dZ$ d#dZ% d$dZ& d%dZ' d&dZ(y)'é)Ú annotations)Úpairwise)Ú
TYPE_CHECKINGÚcastN)ÚFillTypeÚLineType)Ú as_fill_typeÚ as_line_type)Ú check_filledÚ check_lines)ÚMOVETOÚ offset_dtypecó|tjk(r|S|tjk(r+|d|dDcgc]}tj|«Œc}fSt |d«dkDr1tj |d«}tj|d«}nd}d}|tjk(r|g|gfS|tjk(r|g|dgfStj|«gfS|tjk(r&|dntj|d«}|g|g|gf}|S|tjk(rC|
dgdgdgf}|Stj|«}tj|d«}|g|g|gf}|Std|«cc}w)NréúInvalid FillType )rÚ OuterCodeÚ OuterOffsetÚarrÚoffsets_from_codesÚlenÚ
concat_pointsÚ concat_codesÚChunkCombinedCodeÚChunkCombinedOffsetÚChunkCombinedCodeOffsetÚoffsets_from_lengthsÚChunkCombinedOffsetOffsetÚ outer_offsets_from_list_of_codesÚ
ValueError)ÚfilledÚ fill_type_toÚcodesÚpointsÚ
outer_offsetsÚret1Úret2Úoffsetss úT/home/antigravity/intellecton/venv/lib/python3.12/site-packages/contourpy/convert.pyÚ_convert_filled_from_OuterCoder)ð”x׈
Ø œ×-Ò -Øq‘ ÀvÈaÁyÖQ¸eœC×2°5Õ
ˆ6!‰9ƒ~˜ÒÜ×" 6¨!¡9Ó-ˆÜ× Ñ  ¨¡Ó+‰àˆØˆà”xט5˜œ×5Ò 5Ø 5 =˜U´c×6LÑ6LÈUÓ6SМ×9Ò 9Ø & ´C×4LÑ4LÈVÐTUÉYÓ4Wˆ
Ø9?¸À5À'ÈMÈ?Ð7[ˆØˆ Ø œ×;Ò ;Ø ˆ=Ø?C¸fÀtÀfÈtÈfÐ=Uˆ
ˆ ô×,¨UÓ3ˆGÜ×ÈÁÓKˆMØH˜w˜i¨-¨Ð9ˆD؈ äÐ,¨\¨NÐ<ùò5Rs´Fcó |tjk(r,|dDcgc]}tj|«Œ}}|d|fS|tjk(r|St |d«dkDr1tj |d«}tj|d«}nd}d}|tjk(r|g|dgfStj|«gfS|tjk(r|g|gfS|tjk(rC|
dgdgdgf}|Stj|«}tj|d«}|g|g|gf}|S|tjk(r.|
dgdgdgf}|Stj|d«}|g|g|gf}|Std|«cc}w)Nrrr)rrrÚcodes_from_offsetsrrrÚconcat_offsetsrrrrrÚ"outer_offsets_from_list_of_offsetsr) r r!r'Úseparate_codesr#r%r"r$r&s r(Ú _convert_filled_from_OuterOffsetr/6ð”x×)ØIOÐPQÉÖS¸gœ#×ÕSˆÐq‘ ˜>М×-Ò -؈
ä
ˆ6!‰9ƒ~˜ÒÜ×" 6¨!¡9Ó-ˆÜ×$ V¨A¡YÓ/‰àˆØˆà”x× 7 ?˜×8NÑ8NÈwÓ8WМ×5Ò 5ؘ7˜)М×9Ò 9Ø ˆ?Ø=A¸FÀTÀFÈTÈFÐ;Sˆ
ˆ ô×*¨7Ó3ˆEÜ×4°V¸A±YÓ?ˆMØH˜u˜
 Ð7ˆD؈ Ø œ×;Ò ;Ø ˆ>Ø?C¸fÀtÀfÈtÈfÐ=Uˆˆ ô ×BÀ6È!Á9ÓMˆMØH˜w˜i¨-¨Ð9ˆD؈ äÐ,¨\¨NÐ<ùòATsF cóþ|tjk(r|S|tjk(r1|dDcgc]}|dntj|«Œc}}|d|fSt dtjd|d«cc}w)NrrúConversion from ú to ú not supported)rrrrrr)r r!r"s r(Ú&_convert_filled_from_ChunkCombinedCoder4^ð”x׈
Ø œ×5Ò 5ØW]Ð^_ÑW`ÖaÈe˜˜¬C×,BÑ,BÀ5Ó,IÑaˆØq‘ ˜5ÐØœx×:¸$¸|¸nÈNÐ ]ð ]ùòbs° A:cóJ|tjk(r\g}t|ŽD]H\}}||jd«Œtr|J|jt j ||««ŒJ|d|fS|tjk(r|Stdtjd|d«)Nrr1r2r3) rrÚzipÚappendrrÚcodes_from_offsets_and_pointsrr)r r!Ú chunk_codesr#r's r(Ú(_convert_filled_from_ChunkCombinedOffsetr:lð”x×1Ø24ˆ Ü" F˜ W‰OˆFˆ×"  Ø×"¤3×#DÑ#DÀWÈfÓ#UÕ
 Wðq ˜œ×5Ò 5؈
äØœx×<¸DÀÀÈnÐ _ð _óc
óî|tjk(r\g}g}t|ŽD]I\}}}|Œ
tr|J|J|t j
||«z
}|t j ||«z
}ŒK||fS|tjk(rg}g}t|ŽD]l\}}}|Œ
tr|J|J|t j
||«z
}t j ||«}||Dcgc]}t j|«Œc}z
}Œn||fS|tjk(r |d|df}|S|tjk(r2|dDcgc]}|dnt j|«Œ} }|d| f}
|
S|tjk(r|S|tjk(rÌg} g} t|ddŽD\}}|€#| jd«| jd«Œ+tr|Jt j|«}
tj|Dcgc] }tj |
|k(«ddŒ"c}t"¬«}| j|
«| j|«Œ²|d| | f}|St%d|«cc}wcc}wcc}w)Nrr)Údtyper)rrr6rrÚsplit_points_by_offsetsÚsplit_codes_by_offsetsrrrrrrr7ÚnpÚarrayÚnonzerorr)r r!Úseparate_pointsr.r#r"r$Úseparate_offsetsr%Ú all_offsetsr&Ú
chunk_offsetsÚchunk_outer_offsetsr'ÚooÚret3s r(Ú,_convert_filled_from_ChunkCombinedCodeOffsetrJð”x׈؈Ü,/°¨Lò SÑ (ˆFE˜=ØÑ Ø Ð¤3×#>Ñ#>¸vÀ}Ó#UÑUؤ#×"<Ñ"<¸UÀMÓ"RÑRð
 Sð  Ðœ×-Ò -؈ØÐÜ,/°¨Lò `Ñ (ˆFE˜=ØÑ Ø Ð¤3×#>Ñ#>¸vÀ}Ó#UÑUÜ!$×!;Ñ!;¸EÀ=Ó!QØ ÐP^Ö$_Àu¤S×%;Ñ%;¸EÕ%BÒ$_Ñ ð `ð Ð!1М×3Ò 3Ø28¸±)¸VÀA¹YÐ1GˆØˆ Ø œ×5Ò 5à$*¨1¡Iö ð %˜}t´#×2HÑ2HÈÓ2OÑ/ˆ ð/à4:¸1±I¸{Ð3KˆØˆ Ø œ×9Ò 9؈
Ø œ×;Ò ;Ø68ˆ
Ø<>ÐÜ$'¨°°¨Ð$4ò ˆEˆ}Ø×$ TÔ*¨4Õ Ø×Ó7Ü "§¡ÐTaÖ)bÈb¬"¯*©*°WÀ±]Ó*CÀAÑ*FÀqÓ*IÒ)bÜ/;ô!=
à×$ WÔ#×*¨=Õ 
1‰I}Ð&9ð:
ˆðˆ äÐ,¨\¨NÐ<ùòA%`ùò /ùò"*csÃI(Ä; I-Ç:%I2
c
ó|tjk(rwg}g}t|ŽD]d\}}}|Œ
tr|J|Jt j
||«}||}|t j ||«z
}|t j||«z
}Œf||fS|tjk(r“g}g}t|ŽD]€\}}}|Œ
tr|J|Jt|«dkDr.|t|«D
cgc]\} }
|| |
dz|| z
Œc}
} z
}n|j|«|t j |||«z
}Œ‚||fS|tjk(rcg} t|ŽD]M\}}}|| jd«Œtr|J|J| jt j
||««ŒO|d| f} | S|tjk(r
|d|dfS|tjk(rg} g}
t|ŽD]r\}}}|€#| jd«|
jd«Œ,tr|J|J| jt j
||««|
j||«Œt|d| |
f}|S|tjk(r|St!d|«cc}
} w)rrr)rrr6rrr8r>r?rrrr7rrrrr)r r!rCr.r#r'r$r"rDÚer9r%rGr&s r(Ú._convert_filled_from_ChunkCombinedOffsetOffsetrO½sð”x׈؈Ü.1°6¨lò SÑ *ˆFG˜Ñ Ø×9¸'À6ÓJØ '¨
Ñ 6
ؤ3×#>Ñ#>¸vÀ}Ó#UÑUؤ#×"<Ñ"<¸UÀMÓ"RÑRð Sð  Ðœ×-Ò -؈ØÐÜ.1°6¨lò
_Ñ *ˆFG˜Ñ ØÒ$Ü)1°-Ó)@÷)BÉÈÈA¨°°1°Q±3¨¸'À!¹*Ó)Dó)BñBÑ%×+¨GÔ¤3×#>Ñ#>¸vÀwÈ}ÑG]Ó#^Ñ^ð
_ð Ð!1М×3Ò 3Ø24ˆ Ü.1°6¨lò WÑ *ˆFG˜ˆ×"  Ø×"¤3×#DÑ#DÀWÈfÓ#UÕ Wð39¸±)¸[Ð1IˆØˆ Ø œ×5Ò 5Øq‘ ˜6 !™9М×9Ò 9؈ Ø<>ÐÜ.1°6¨lò CÑ *ˆFG˜ˆ×" #×*¨4Õ Ø×"¤3×#DÑ#DÀWÈfÓ#UÔ#×*¨7°=Ñ+AÕ Cð9?¸q¹ À;ÐPcÐ7dˆØˆ Ø œ×;Ò ;؈
äÐ,¨\¨NÐ<ùóM)BsÃJ
cóVt|«}t|«}t||«|tjk(r,trt t j|«}t||«S|tjk(r,trt t j|«}t||«S|tjk(r,trt t j|«}t||«S|tjk(r,trt t j |«}t#||«S|tj$k(r,trt t j&|«}t)||«S|tj*k(r,trt t j,|«}t/||«St1d|«)Convert filled contours from one :class:`~.FillType` to another.
Args:
filled (sequence of arrays): Filled contour polygons to convert, such as those returned by
:meth:`.ContourGenerator.filled`.
fill_type_from (FillType or str): :class:`~.FillType` to convert from as enum or
string equivalent.
fill_type_to (FillType or str): :class:`~.FillType` to convert to as enum or string
equivalent.
Return:
Converted filled contour polygons.
When converting non-chunked fill types (``FillType.OuterCode`` or ``FillType.OuterOffset``) to
chunked ones, all polygons are placed in the first chunk. When converting in the other
direction, all chunk information is discarded. Converting a fill type that is not aware of the
relationship between outer boundaries and contained holes (``FillType.ChunkCombinedCode`` or
``FillType.ChunkCombinedOffset``) to one that is will raise a ``ValueError``.
.. versionadded:: 1.2.0
r)r r rrrrÚcpyÚFillReturn_OuterCoder)rÚFillReturn_OuterOffsetr/rÚFillReturn_ChunkCombinedCoder4rÚFillReturn_ChunkCombinedOffsetr:rÚ"FillReturn_ChunkCombinedCodeOffsetrJrÚ$FillReturn_ChunkCombinedOffsetOffsetrOr)r Úfill_type_fromr!s r(Úconvert_filledrYsVô4" 1€NÜ  Ó-€Lä˜Ôœ× Üœ#×2°FÓ;ˆFÜ-¨f°lÓœ8×/Ò /Ý Üœ#×4°fÓ=ˆFܸ Óœ8×5Ò 5Ý Üœ#×:¸FÓCˆFÜ5°f¸lÓœ8×7Ò 7Ý Üœ#×<¸Eˆ7¸À Óœ8×;Ò ;Ý Üœ#×@À&ÓIˆ;¸FÀLÓœ8×=Ò =Ý Üœ#×BÀFÓKˆFÜ=¸fÀlÓÐ,¨^Ð,<Ð>r;cóŒ|tjk(r|S|tjk(r&|Dcgc]}tj|«Œ}}||fS|tj
k(rR|sdgdgf}|Stj |«}tj|«}tj||«}|g|gf}|S|tjk(r8|sdgdgf}|Stj |«gtj|«gf}|S|tjk(r!|sdgf} | Stj|«gf} | Std|«cc}w)Invalid LineType )
rÚSeparateÚ SeparateCoderÚcodes_from_pointsrrrr8rÚChunkCombinedNanÚconcat_points_with_nanr)
ÚlinesÚ line_type_toÚliner.r%r#r'r"r&rIs
r(Ú_convert_lines_from_Separaterd;seð”x׈ Ø œ×.Ò .ØBGÖH¸$œ#×ÕHˆÐœ×3Ò 3ÙØ7;°f¸t¸fÐ5Eˆ ˆ ô ×& -ˆ×.¨uÓ5ˆGÜ×5°g¸FˆH˜u˜&ˆˆ Ø œ×5Ò 5ÙØ9=¸ÀÀÐ7GˆDðˆ ô×& .´×1IÑ1IÈ%Ó1PÐ0QÐRˆˆ Ø œ×2Ò 2ÙØ6:°V°IˆDðˆ ô×Ó9ˆD؈ äÐ,¨\¨NÐ<ùò1Is­Ecó<|tjk(r|dS|tjk(r|S|tjk(rA|dsdgdgf}|St j
|d«gt j |d«gf}|S|tjk(rA|dsdgdgf}|St j
|d«gt j|d«gf}|S|tjk(r'|dsdgf}|St j|d«gf}|Std|«©Nrrr[) rr\r]rrrrrrr_r`r)rarbr%r&rIs r(Ú _convert_lines_from_SeparateCoderg]sFð”x×Q‰xˆØ œ×.Ò .؈ Ø œ×3Ò 3ØQŠxØ7;°f¸t¸fÐ5Eˆˆ ô×& u¨Q¡xÓ1´C×4DÑ4DÀUÈ1ÁXÓ4NÐ3OÐPˆˆ Ø œ×5Ò 5ØQŠxØ9=¸ÀÀÐ7GˆDðˆ ô×& u¨Q¡xÓ1´C×4LÑ4LÈUÐSTÉXÓ4VÐ3WÐXˆˆ Ø œ×2Ò 2ØQŠxØ6:°V°IˆDðˆ ô×°a±Ó<ˆD؈ äÐ,¨\¨NÐ<r;có|tjtjfvrµg}t|ŽD]m\}}|Œ tr|Jt j |tk(«d}t|«dkDr|t j||dd«z
}Œ]|j|«Œo|tjk(r|S|Dcgc]}tj|«Œ}}||fS|tjk(r|S|tjk(r0|dDcgc]}|dntj|«Œ}}|d|fS|tj k(rmg} t|ŽD]]\}}|| jd«Œtr|Jtj|«}
| jtj"||
««Œ_| fSt%d|«cc}wcc}wrf)rr\r]r6rr@rBr
rÚsplitr7rr^rrrr_Úinsert_nan_at_offsetsr) rarbÚseparate_linesr#r"Úsplit_atrcr.rFÚ
points_nanr's r(Ú%_convert_lines_from_ChunkCombinedCodern|ðœ×)¬8×+@Ñ+@ÐˆÜ  %˜[ò 2‰MˆFÑ Ø ÐŸ:™: e¬v¡oÓ6°qÑ9Üx“= "¤b§h¡h¨v°xÀÀ°|Ó&DÑD"×)¨&Õ œ8×  !àFTÖU¸dœc×3°DÕUˆ"  œ×3Ò 3؈ Ø œ×5Ò 5à&+¨A¡hö"' ´C×4JÑ4JÈ5Ó4QÑ0ˆ
ða‘˜-М×2Ò 2Ø24ˆ
Ü  %˜[ò N‰MˆFˆ×!  Ø Ð×Ó7Ø×!¤#×";Ñ";¸FÀGÓ"LÕ NðˆäÐ,¨\¨NÐ<ùò)Vùò
0s Â6F>Ä Gcó0|tjtjfvrsg}t|ŽD]+\}}|Œ tr|J|t j ||«z
}Œ-|tjk(r|S|Dcgc]}t j|«Œ}}||fS|tjk(r\g}t|ŽD]H\}}||jd«Œtr|J|jt j||««ŒJ|d|fS|tjk(r|S|tjk(rXg}t|ŽD]H\}}||jd«Œtr|J|jt j||««ŒJ|fStd|«cc}w©Nrr[)rr\r]r6rrr>r^rr7r8rr_rjr) rarbrkr#r'rcr.r9rms r(Ú'_convert_lines_from_ChunkCombinedOffsetrq¥s¿ðœ×)¬8×+@Ñ+@ЈÜ" E˜ O‰OˆFÑ Ø¤#×"=Ñ"=¸fÀgÓ"NÑNð  Oð
œ8×  !àFTÖU¸dœc×3°DÕUˆ"  œ×3Ò 3Ø24ˆ Ü" E˜ W‰OˆFˆ×"  Ø×"¤3×#DÑ#DÀWÈfÓ#UÕ
 Wða˜œ×5Ò 5؈ Ø œ×2Ò 2Ø24ˆ
Ü" E˜ N‰OˆFˆ×!  Ø×!¤#×";Ñ";¸FÀGÓ"LÕ
 Nðˆ}ÐäÐ,¨\¨NÐ<ùò3VsÁ4Fcó’|tjtjfvrbg}|dD]}|Œ|tj|«z
}Œ|tjk(r|S|Dcgc]}tj
|«Œ}}||fS|tj k(r…g}g}|dD]u}|€#|jd«|jd«Œ(tj|«\}}|j|«|jtj||««Œw||fS|tjk(rqg}g}|dD]a}|€#|jd«|jd«Œ(tj|«\}}|j|«|j|«Œc||fS|tjk(r|Std|«cc}wrp)
rr\r]rÚsplit_points_at_nanr^rr7Ú
remove_nanr8rr_r) rarbrkr#r.Ú chunk_pointsr9r'rFs r(Ú$_convert_lines_from_ChunkCombinedNanrvÏðœ×)¬8×+@Ñ+@ЈؘA‘hò BˆÑ¤#×"9Ñ"9¸&Ó"AÑAð Bð œ8×  !àJXÖœc×3°FÕYˆ"  œ×3Ò 3Ø46ˆ Ø24ˆ ؘA‘hò WˆF؈~Ø×# ×" (ä"%§.¡.°Ó"8˜Ø×# ×"¤3×#DÑ#DÀWÈfÓ#UÕ Wð˜kМ×5Ò 5؈ Ø68ˆ
ؘA‘hò .ˆF؈~Ø×# DÔ×$ *ä"%§.¡.°Ó"8˜Ø×# ×$ ˜mМ×2Ò 2؈ äÐ,¨\¨NÐ<ùò;ZsÁ#GcóØt|«}t|«}t||«|tjk(r,trt t j|«}t||«S|tjk(r,trt t j|«}t||«S|tjk(r,trt t j|«}t||«S|tjk(r,trt t j |«}t#||«S|tj$k(r,trt t j&|«}t)||«St+d|«)aaConvert contour lines from one :class:`~.LineType` to another.
Args:
lines (sequence of arrays): Contour lines to convert, such as those returned by
:meth:`.ContourGenerator.lines`.
line_type_from (LineType or str): :class:`~.LineType` to convert from as enum or
string equivalent.
line_type_to (LineType or str): :class:`~.LineType` to convert to as enum or string
equivalent.
Return:
Converted contour lines.
When converting non-chunked line types (``LineType.Separate`` or ``LineType.SeparateCode``) to
chunked ones (``LineType.ChunkCombinedCode``, ``LineType.ChunkCombinedOffset`` or
``LineType.ChunkCombinedNan``), all lines are placed in the first chunk. When converting in the
other direction, all chunk information is discarded.