§
     å gÒ2  ã                   ó  — d dl Z d dlmZ d dlmZ d dlm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 G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ d¦  «        ZeeeefZdS )é    N)ÚOperator)ÚBoolProperty)Úpgettext_datac                 óÊ  — t           j        j                             | d¦  «        }|j                             t          d¦  «        dd¬¦  «         |j                             d¦  «        }d|_        d|j	        z
  |j
        _        |j                             t          d¦  «        d	d¬¦  «         |j                             d
¦  «        }d|_        d|_        d|j
        _        |S )NÚGeometryNodeTreeÚGeometryÚINPUTÚNodeSocketGeometry©Úin_outÚsocket_typeÚNodeGroupInputFé8ÿÿÿÚOUTPUTÚNodeGroupOutputTéÈ   )ÚbpyÚdataÚnode_groupsÚnewÚ	interfaceÚ
new_socketÚdata_ÚnodesÚselectÚwidthÚlocationÚxÚis_active_output)ÚnameÚgroupÚ
input_nodeÚoutput_nodes       úa/home/blender/git/blender-v430/install_release/4.3/scripts/startup/bl_operators/geometry_nodes.pyÚadd_empty_geometry_node_groupr%      sÌ   € ÝŒHÔ ×$Ò$ TÐ+=Ñ>Ô>€Eà	„O×Ò�u ZÑ0Ô0¸ÐNbÐÑcÔcÐcØ”—’Ð!1Ñ2Ô2€JØ€JÔØ  :Ô#3Ñ3€JÔÔà	„O×Ò�u ZÑ0Ô0¸ÐOcÐÑdÔdÐdØ”+—/’/Ð"3Ñ4Ô4€KØ#'€KÔ Ø€KÔØ €KÔÔà€Ló    c                 óæ   — t          | ¦  «        }|j                             |j        t	          d¦  «                 j        d         |j        t	          d¦  «                 j        d         ¦  «         |S )NzGroup Inputr   zGroup Output)r%   Úlinksr   r   r   ÚoutputsÚinputs©r    r!   s     r$   Úgeometry_node_group_empty_newr,      sZ   € Ý)¨$Ñ/Ô/€EØ	„K‡O‚O�E”K¥ mÑ 4Ô 4Ô5Ô=¸aÔ@À%Ä+ÍeÐTbÑNcÔNcÔBdÔBkÐlmÔBnÑoÔoÐoØ€Lr&   c                 óL   — t          t          d¦  «        ¦  «        }d|_        |S )NúGeometry NodesT)r,   r   Úis_modifierr+   s     r$   Ú&geometry_node_group_empty_modifier_newr0   #   s%   € Ý)­%Ð0@Ñ*AÔ*AÑBÔB€EØ€EÔØ€Lr&   c                 ó  — t          t          d¦  «        ¦  «        }d|_        d|_        | j        }|r|j        nd}|dk    rd|_        n|dk    rd|_        nd|_        |r|j	        nd}|dv rd|_
        n|dk    rd|_        nd|_        |S )	NÚToolTÚMESHÚCURVESÚ
POINTCLOUDÚOBJECT>   ÚSCULPTÚSCULPT_CURVESÚEDIT)r,   r   Úuse_fake_userÚis_toolÚobjectÚtypeÚis_type_curveÚis_type_point_cloudÚis_type_meshÚmodeÚis_mode_sculptÚis_mode_editÚis_mode_object)Úcontextr!   ÚobÚob_typerA   s        r$   Ú"geometry_node_group_empty_tool_newrH   )   s·   € Ý)­%°©-¬-Ñ8Ô8€Eà€EÔØ€E„Mà	Œ€BØÐ'ˆbŒgˆg €GØ�(ÒÐØ"ˆÔÐØ	�LÒ	 Ð	 Ø$(ˆÔ!Ð!à!ˆÔàÐ&ˆ2Œ7ˆ7˜h€DØÐ*Ð*Ð*Ø#ˆÔÐØ	�ŠˆØ!ˆÔÐà#ˆÔà€Lr&   c                 ó.   — | j         }|r	|j        dvrdS dS )N>   ÚFONTr3   ÚCURVEr4   ÚVOLUMEr5   ÚGREASEPENCILFT)r<   r=   )rE   rF   s     r$   Úgeometry_modifier_pollrN   C   s*   € Ø	Œ€Bð ð �”Ð kÐkÐkØˆuàˆ4r&   c                 ó|   — t          | dd¦  «        }|du r| j        }|€dS |j        j        }|�|j        dk    rd S |S )NÚmodifier.FÚNODES)Úgetattrr<   Ú	modifiersÚactiver=   )rE   rP   rF   s      r$   Úget_context_modifierrU   M   sS   € å�w 
¨CÑ0Ô0€HØ�3€€ØŒ^ˆØˆ:Ø�5Ø”<Ô&ˆØÐ˜8œ=¨GÒ3Ð3ØˆtØ€Or&   c                 ó$   — t          | ¦  «        d uS ©N)rU   )rE   s    r$   Ú!edit_geometry_nodes_modifier_pollrX   Z   s   € Ý Ñ(Ô(°Ð4Ð4r&   c                 ó  — |                       d¦  «        rdS |                       d¦  «        rdS |                       d¦  «        rdS |                       d¦  «        rdS |                       d	¦  «        rd
S t          d¦  «        ‚)NÚNodeSocketIntÚINTÚNodeSocketColorÚFLOAT_COLORÚNodeSocketVectorÚFLOAT_VECTORÚNodeSocketBoolÚBOOLEANÚNodeSocketFloatÚFLOATzUnsupported socket type)Ú
startswithÚ
ValueError)Úidnames    r$   Úsocket_idname_to_attribute_typerg   ^   sœ   € Ø×Ò˜Ñ)Ô)ð 	ØˆuØ	×	Ò	Ð,Ñ	-Ô	-ð Øˆ}Ø	×	Ò	Ð-Ñ	.Ô	.ð Øˆ~Ø	×	Ò	Ð+Ñ	,Ô	,ð ØˆyØ	×	Ò	Ð,Ñ	-Ô	-ð ØˆwÝ
Ð.Ñ
/Ô
/Ð/r&   c                 ó<   — 	 | |dz            S # t           $ r Y d S w xY w)NÚ_attribute_name©ÚKeyError©rP   Ú
identifiers     r$   Úmodifier_attribute_name_getrn   l   s:   € ðØ˜
Ð%6Ñ6Ô7Ð7øÝð ð ð Øˆtˆtðøøøs   ‚
 �
šc                 óD   — 	 | |dz            dk    S # t           $ r Y dS w xY w)NÚ_use_attributer   Frj   rl   s     r$   Úmodifier_input_use_attributerq   s   s?   € ðØ˜
Ð%5Ñ5Ô6¸!Ò;Ð;øÝð ð ð Øˆuˆuðøøøs   ‚ ‘
žc                 ó.   — | D ]}|j         |k    r|c S Œd S rW   )rm   )Úsocketsrm   Úsockets      r$   Úget_socket_with_identifierru   z   s2   € Øð ð ˆØÔ 
Ò*Ð*ØˆMˆMˆMð +àˆ4r&   c                 ó<   — | D ]}|j         |k    r|j        r|c S Œd S rW   )r    Úenabled)rs   r    rt   s      r$   Úget_enabled_socket_with_namerx   �   s4   € Øð ð ˆØŒ;˜$ÒÐ 6¤>ÐØˆMˆMˆMøØˆ4r&   c                 ó–
  — |j         dz   }t          j        j                             |d¦  «        }|j                             t          d¦  «        dd¬¦  «         d|_        t          d„ |j        j
        D ¦   «         d ¦  «        }|r_|j                             t          d¦  «        d	d¬¦  «         |j                             d
¦  «        }d|j        z
  |j        _        d|_        |j                             d¦  «        }d|_        d|j        _        d|_        |j                             d¦  «        }||_        |                     ¦   «          g }	|j        j
        D ]û}
|
j        dk    s	|
j        dvrŒ|
j        }t-          |j        |¦  «        }t1          ||¦  «        r›|j                             d¦  «        }|	                     |¦  «         t5          |
j        ¦  «        |_        t;          ||¦  «        }||j        d         _        t?          |j         d¦  «        }|j!                             ||¦  «         ŒÞtE          |
d¦  «        r||         |_        Œü|r||j!                             |j         d         t-          |j        |j        ¦  «        ¦  «         |	r<tG          |	¦  «        D ] \  }}d|j        _        |dz  |j        _$        Œ!d|j        _        g }d }|j        j
        D ]ë}|j        dk    s	|j        dvrŒ|j        }t-          |j         |¦  «        }t;          ||¦  «        }|r—|j                             d¦  «        }|                     |¦  «         t5          |j        ¦  «        |_        |j%        |_&        ||j        d         _        t?          |j        d¦  «        }
|j!                             ||
¦  «         ŒÜ|j        dk    r|s|}Œì|�r%tG          |¦  «        D ]#\  }}|dz   dz  |j        _        d|j        _$        Œ$tO          |¦  «        dz   dz  |j        _        |j!                             ||d         j        d         ¦  «         tQ          tO          |¦  «        dz
  ¦  «        D ]B}|j!                             ||         j         d         ||dz            j        d         ¦  «         ŒC|j!                             |d         j         d         |j        t          d¦  «                 ¦  «         nN|s|  )                    d hd!¦  «         d S |j!                             ||j        t          d¦  «                 ¦  «         |S )"Nz.wrapperr   r   r   r
   r   Tc              3   ó\   K  — | ]'}|j         d k    r|j        dk    r|j        dk    ¯#|V — Œ(dS )ÚSOCKETr	   r
   N)Ú	item_typer   Úbl_socket_idname)Ú.0Úitems     r$   ú	<genexpr>z'create_wrapper_group.<locals>.<genexpr>�   sW   è è € ð 	
ð 	
Ø¸t¼~ÐQYÒ?YÐ?YØŒK˜7Ò"Ð"ØÔ!Ð%9Ò9Ð9ð à9Ð9Ð9Ð9ð	
ð 	
r&   r	   r   r   Fr   r   ÚGeometryNodeGroupr{   >   ÚBOTHr	   ÚGeometryNodeInputNamedAttributeÚNameÚ	AttributeÚdefault_valuer   iQÿÿÿiÎÿÿÿi¢þÿÿ>   r‚   r   ÚGeometryNodeStoreNamedAttributeÚValueé   é¯   éÿÿÿÿÚWARNINGz&Node group must have a geometry output)*r    r   r   r   r   r   r   r   r/   ÚnextÚ
items_treer   r   r   r   r   r   Ú	node_treeÚupdater|   r   rm   ru   r*   rq   Úappendrg   r}   Ú	data_typern   r†   rx   r)   r(   ÚhasattrÚ	enumerateÚyÚattribute_domainÚdomainÚlenÚrangeÚreport)ÚoperatorrP   Ú	old_groupÚwrapper_namer!   Úfirst_geometry_inputÚgroup_input_nodeÚgroup_output_nodeÚ
group_nodeÚinput_nodesÚinput_socketrm   Úgroup_node_inputr"   Úattribute_nameÚoutput_socketÚiÚnodeÚstore_nodesÚfirst_geometry_outputÚgroup_node_outputÚ
store_nodes                         r$   Úcreate_wrapper_groupr­   ˆ   sj  € Ø”> JÑ.€LÝŒHÔ ×$Ò$ \Ð3EÑFÔF€EØ	„O×Ò�u ZÑ0Ô0¸ÐOcÐÑdÔdÐdØ€EÔåð	
ð 	
Ø&Ô0Ô;ð	
ñ 	
ô 	
ð
 	ñô Ðð ð (ØŒ×"Ò"¥5¨Ñ#4Ô#4¸WÐRfÐ"ÑgÔgÐgØ œ;Ÿ?š?Ð+;Ñ<Ô<ÐØ&*Ð-=Ô-CÑ&CÐÔ!Ô#Ø"'ÐÔàœŸšÐ(9Ñ:Ô:ÐØ)-ÐÔ&Ø#&ÐÔÔ Ø$ÐÔà”—’Ð!4Ñ5Ô5€JØ$€JÔØ×ÒÑÔÐð €KØ!Ô+Ô6ð Bð BˆØÔ! XÒ-Ð-°,Ô2EÐM^Ð2^Ð2^ØØ!Ô,ˆ
Ý5°jÔ6GÈÑTÔTÐÝ'¨°*Ñ=Ô=ð 		BØœŸšÐ)JÑKÔKˆJØ×Ò˜zÑ*Ô*Ð*Ý#BÀ<ÔC`Ñ#aÔ#aˆJÔ Ý8¸À:ÑNÔNˆNØ6DˆJÔ˜fÔ%Ô3Ý8¸Ô9KÈ[ÑYÔYˆMØŒK�OŠO˜MÐ+;Ñ<Ô<Ð<Ð<Ý�\ ?Ñ3Ô3ð 	BØ-5°jÔ-AÐÔ*øàð /ØŒ�ŠØÔ$ QÔ'Ý& zÔ'8Ð:NÔ:YÑZÔZñ	
ô 	
ð 	
ð ð 	/Ý$ [Ñ1Ô1ð *ð *‘��4Ø"&�””Ø"# c¡'�””�Ø*.ÐÔ%Ô'ð €KØ ÐØ"Ô,Ô7ð :ð :ˆØÔ" hÒ.Ð.°=Ô3GÐOaÐ3aÐ3aØØ"Ô-ˆ
Ý6°zÔ7IÈ:ÑVÔVÐÝ4°X¸zÑJÔJˆØð 
	:ØœŸšÐ)JÑKÔKˆJØ×Ò˜zÑ*Ô*Ð*Ý#BÀ=ÔCaÑ#bÔ#bˆJÔ Ø -Ô >ˆJÔØ6DˆJÔ˜fÔ%Ô3Ý7¸
Ô8IÈ7ÑSÔSˆLØŒK�OŠOÐ-¨|Ñ<Ô<Ð<Ð<ØÔ+Ð/CÒCÐCØ(ð :Ø(9Ð%øð ñ \Ý  Ñ-Ô-ð 	 ð 	 ‰GˆAˆtØ  1™u¨™mˆDŒMŒOØˆDŒMŒOˆOÝ(+¨KÑ(8Ô(8¸1Ñ(<ÀÑ'CÐÔ"Ô$àŒ�ŠÐ-¨{¸1¬~Ô/DÀZÔ/PÑQÔQÐQÝ•s˜;Ñ'Ô'¨!Ñ+Ñ,Ô,ð 	gð 	gˆAØŒK�OŠO˜K¨œNÔ2°:Ô>ÀÈAÐPQÉEÔ@RÔ@YÐZdÔ@eÑfÔfÐfÐfàŒ�Š˜ BœÔ/°
Ô;Ð=NÔ=UÕV[Ð\fÑVgÔVgÔ=hÑiÔiÐiÐià$ð 	Ø�OŠO˜Y˜KÐ)QÑRÔRÐRØ�4ØŒ�ŠÐ-Ð/@Ô/GÍÈjÑHYÔHYÔ/ZÑ[Ô[Ð[à€Lr&   c                   óf   — e Zd ZU dZdZdZddhZ edd¬¦  «        ed	<   e	d
„ ¦   «         Z
d„ Zd„ ZdS )ÚMoveModifierToNodesz@Move inputs and outputs from in the modifier to a new node groupz#object.geometry_nodes_move_to_nodeszMove to NodesÚREGISTERÚUNDOzSelected Objectsz=Affect all selected objects instead of just the active object)r    ÚdescriptionÚuse_selected_objectsc                 ó    — t          |¦  «        S rW   )rX   ©ÚclsrE   s     r$   ÚpollzMoveModifierToNodes.pollû   s   € å0°Ñ9Ô9Ð9r&   c                 óH   — |j         rd| _        |                      |¦  «        S )NT)Úaltr³   Úexecute)ÚselfrE   Úevents      r$   ÚinvokezMoveModifierToNodes.invokeÿ   s&   € ØŒ9ð 	-Ø(,ˆDÔ%Ø�|Š|˜GÑ$Ô$Ð$r&   c                 óâ   — t          |¦  «        }|sdhS |j        }g }| j        r|j        }n|j        g}|D ]6}|j        |         }|sŒ|j        }|sŒt          | ||¦  «        }|r||_        Œ7dhS )NÚ	CANCELLEDÚFINISHED)rU   r    r³   Úselected_editable_objectsr<   rS   Ú
node_groupr­   )	r»   rE   Úactive_modifierÚmodifier_nameÚobjectsrF   rP   rœ   Ú	new_groups	            r$   rº   zMoveModifierToNodes.execute  s®   € Ý.¨wÑ7Ô7ˆØð 	!Ø�=Ð Ø'Ô,ˆàˆØÔ$ð 	'ØÔ7ˆGˆGà”~Ð&ˆGàð 		0ð 		0ˆBØ”| MÔ2ˆHØð ØØ Ô+ˆIØð ØÝ,¨T°8¸YÑGÔGˆIØð 0Ø&/�Ô#øàˆ|Ðr&   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	bl_idnameÚbl_labelÚ
bl_optionsr   Ú__annotations__Úclassmethodr·   r½   rº   © r&   r$   r¯   r¯   ï   s’   € € € € € € ØJÐJà5€IØ€HØ˜fÐ%€Jà&˜,ØØSðñ ô ð ð ñ ð
 ð:ð :ñ „[ð:ð%ð %ð %ð
ð ð ð ð r&   r¯   c                   ó>   — e Zd ZdZdZdZddhZed„ ¦   «         Zd„ Z	dS )	ÚNewGeometryNodesModifierz4Create a new modifier with a new geometry node groupz node.new_geometry_nodes_modifierzNew Geometry Node Modifierr°   r±   c                 ó    — t          |¦  «        S rW   ©rN   rµ   s     r$   r·   zNewGeometryNodesModifier.poll%  ó   € å% gÑ.Ô.Ð.r&   c                 ó¶   — |j         }|j                             t          d¦  «        d¦  «        }|sdhS t	          t          d¦  «        ¦  «        }||_        dhS )NÚGeometryNodesrQ   r¿   r.   rÀ   )r<   rS   r   r   r0   rÂ   )r»   rE   rF   rP   r!   s        r$   rº   z NewGeometryNodesModifier.execute)  s^   € ØŒ^ˆØ”<×#Ò#¥E¨/Ñ$:Ô$:¸GÑDÔDˆØð 	!Ø�=Ð å6µuÐ=MÑ7NÔ7NÑOÔOˆØ#ˆÔàˆ|Ðr&   N©
rÇ   rÈ   rÉ   rÊ   rË   rÌ   rÍ   rÏ   r·   rº   rÐ   r&   r$   rÒ   rÒ     sV   € € € € € Ø>Ð>à2€IØ+€HØ˜fÐ%€Jàð/ð /ñ „[ð/ð	ð 	ð 	ð 	ð 	r&   rÒ   c                   ó>   — e Zd ZdZdZdZddhZed„ ¦   «         Zd„ Z	dS )	ÚNewGeometryNodeTreeAssignzECreate a new geometry node group and assign it to the active modifierz#node.new_geometry_node_group_assignzAssign New Geometry Node Groupr°   r±   c                 ó    — t          |¦  «        S rW   rÔ   rµ   s     r$   r·   zNewGeometryNodeTreeAssign.poll<  rÕ   r&   c                 óv   — t          |¦  «        }|sdhS t          t          d¦  «        ¦  «        }||_        dhS )Nr¿   r.   rÀ   )rU   r0   r   rÂ   )r»   rE   rP   r!   s       r$   rº   z!NewGeometryNodeTreeAssign.execute@  sE   € Ý'¨Ñ0Ô0ˆØð 	!Ø�=Ð Ý6µuÐ=MÑ7NÔ7NÑOÔOˆØ#ˆÔàˆ|Ðr&   NrØ   rÐ   r&   r$   rÚ   rÚ   5  sV   € € € € € ØOÐOà5€IØ/€HØ˜fÐ%€Jàð/ð /ñ „[ð/ðð ð ð ð r&   rÚ   c                   ó>   — e Zd ZdZdZdZddhZed„ ¦   «         Zd„ Z	dS )	ÚNewGeometryNodeGroupToolz+Create a new geometry node group for a toolz!node.new_geometry_node_group_toolzNew Geometry Node Tool Groupr°   r±   c                 ó@   — |j         }|o|j        dk    o
|j        dk    S )NÚNODE_EDITORÚTOOL)Ú
space_datar=   Úgeometry_nodes_type©r¶   rE   Úspaces      r$   r·   zNewGeometryNodeGroupTool.pollP  s*   € àÔ"ˆØÐ\˜œ }Ò4Ð\¸Ô9RÐV\Ò9\Ð\r&   c                 ó>   — t          |¦  «        }||j        _        dhS )NrÀ   )rH   râ   Úgeometry_nodes_tool_tree)r»   rE   r!   s      r$   rº   z NewGeometryNodeGroupTool.executeU  s"   € Ý2°7Ñ;Ô;ˆØ6;ˆÔÔ3Øˆ|Ðr&   NrØ   rÐ   r&   r$   rÞ   rÞ   J  sY   € € € € € Ø5Ð5Ø3€IØ-€HØ˜fÐ%€Jàð]ð ]ñ „[ð]ðð ð ð ð r&   rÞ   c                   ó:   — e Zd Zed„ ¦   «         Zed„ ¦   «         ZdS )ÚZoneOperatorc                 ón   — |j         }|€d S |j        | j        k    r|S |j        | j        k    r|j        S d S rW   )Úactive_noderË   Úoutput_node_typeÚinput_node_typeÚpaired_output)r¶   rE   r¨   s      r$   Úget_nodezZoneOperator.get_node\  sJ   € àÔ"ˆØˆ<Ø�4ØŒ>˜SÔ1Ò1Ð1ØˆKØŒ>˜SÔ0Ò0Ð0ØÔ%Ð%ð 1Ð0r&   c                 ó†   — |j         }|r|j        dk    s|j        r|j        j        sdS |                      |¦  «        €dS dS )Nrà   FT)râ   r=   Ú	edit_treeÚis_editablerï   rä   s      r$   r·   zZoneOperator.pollf  sR   € àÔ"ˆàð 	˜œ
 mÒ3Ð3¸5¼?Ð3ÐRWÔRaÔRmÐ3Ø�5Ø�<Š<˜Ñ Ô Ð(Ø�5Øˆtr&   N)rÇ   rÈ   rÉ   rÏ   rï   r·   rÐ   r&   r$   ré   ré   [  sH   € € € € € Øð&ð &ñ „[ð&ð ðð ñ „[ðð ð r&   ré   )r   Ú	bpy.typesr   Ú	bpy.propsr   Úbpy.app.translationsr   r   r%   r,   r0   rH   rN   rU   rX   rg   rn   rq   ru   rx   r­   r¯   rÒ   rÚ   rÞ   ré   ÚclassesrÐ   r&   r$   ú<module>r÷      s÷  ðð
 €
€
€
Ø Ð Ð Ð Ð Ð Ø "Ð "Ð "Ð "Ð "Ð "à 7Ð 7Ð 7Ð 7Ð 7Ð 7ðð ð ð"ð ð ðð ð ðð ð ð4ð ð ð
ð 
ð 
ð5ð 5ð 5ð0ð 0ð 0ðð ð ðð ð ðð ð ðð ð ðdð dð dðN,ð ,ð ,ð ,ð ,˜(ñ ,ô ,ð ,ð^ð ð ð ð ˜xñ ô ð ð.ð ð ð ð  ñ ô ð ð*ð ð ð ð ˜xñ ô ð ð"ð ð ð ð ñ ô ð ð. ØØØð	€€€r&   