
    aik8                         S SK r S SKJr  S SKJr  S SKJr  S rS r	S r
S rS	 rS
 rS rS rS rS rS rS rS r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S5      r\\\\4rg)    N)Operator)BoolProperty)pgettext_datac                    [         R                  R                  R                  U S5      nUR                  R                  [        S5      SSS9  UR                  R                  S5      nSUl        SUR                  -
  UR                  l        UR                  R                  [        S5      S	SS9  UR                  R                  S
5      nSUl        SUl        SUR                  l        U$ )NGeometryNodeTreeGeometryINPUTNodeSocketGeometryin_outsocket_typeNodeGroupInputF8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       c/home/wildlama/Downloads/blender-5.1.2-linux-x64/5.1/scripts/startup/bl_operators/geometry_nodes.pyadd_empty_geometry_node_groupr%      s    HH  $$T+=>E	OOuZ0Nbc!12JJ :#3#33J	OOuZ0Ocd++//"34K#'K K KL    c                     [        U 5      nUR                  R                  UR                  [	        S5         R
                  S   UR                  [	        S5         R                  S   5        U$ )NzGroup Inputr   zGroup Output)r%   linksr   r   r   outputsinputsr    r!   s     r$   geometry_node_group_empty_newr,      sW    )$/E	KKOOEKKm 45==a@%++eTbNcBdBkBklmBnoLr&   c                 <    [        [        S5      5      nSUl        U$ )NGeometry NodesT)r,   r   is_modifierr+   s     r$   &geometry_node_group_empty_modifier_newr0   #   s    )%0@*ABEELr&   c                 
   SS K n[        [        S5      5      nSUl        SUl        SUR                  SSUR                  R                  5       R                  5       5      -   Ul	        U R                  nU(       a  UR                  OSnUS:X  a  SUl        O#US	:X  a  SUl        OUS
:X  a  SUl        OSUl        U(       a  UR                   OSnUS;   a	  SUl        U$ US:X  a	  SUl        U$ US:X  a	  SUl        U$ SUl        U$ )Nr   ToolTz	geometry.z
[^0-9a-z]+_MESHCURVES
POINTCLOUDGREASEPENCILOBJECT>   SCULPTSCULPT_CURVESSCULPT_GREASE_PENCILPAINT_GREASE_PENCILEDIT)rer,   r   use_fake_useris_toolsubr    striplowernode_tool_idnameobjecttypeis_type_curveis_type_pointcloudis_type_grease_pencilis_type_meshmodeis_mode_sculptis_mode_paintis_mode_editis_mode_object)contextr>   r!   obob_typerK   s         r$   "geometry_node_group_empty_tool_newrS   )   s   )%-8EEEM )266,UZZEUEUEWE]E]E_+``E	BbggG("	L	 #' 	N	"&*#!277hDBB# L 
&	&" L 
! L  $Lr&   c                 L    U R                   nU(       a  UR                  S;  a  gg)N>   FONTr4   CURVEr5   VOLUMEr6   r7   FT)rE   rF   )rP   rQ   s     r$   geometry_modifier_pollrX   L   s"    	B  kkr&   c                     [        U SS5      nUSL a&  U R                  nUc  g UR                  R                  nUb  UR                  S:w  a  g U$ )Nmodifier.NODES)getattrrE   	modifiersactiverF   )rP   rZ   rQ   s      r$   get_context_modifierr_   V   sP    w
C0H3^^:<<&&8==G3Or&   c                 L    [        U 5      nUc  gUR                  R                  $ )NF)r_   id_datais_editable)rP   rZ   s     r$   !edit_geometry_nodes_modifier_pollrc   c   s'    #G,H'''r&   c                     U R                  S5      (       a  gU R                  S5      (       a  gU R                  S5      (       a  gU R                  S5      (       a  gU R                  S	5      (       a  g
[        S5      e)NNodeSocketIntINTNodeSocketColorFLOAT_COLORNodeSocketVectorFLOAT_VECTORNodeSocketBoolBOOLEANNodeSocketFloatFLOATzUnsupported socket type)
startswith
ValueError)idnames    r$   socket_idname_to_attribute_typerr   j   sv    ))			,	-	-			-	.	.			+	,	,			,	-	-
.
//r&   c                 2     XS-      $ ! [          a     g f = f)N_attribute_nameKeyErrorrZ   
identifiers     r$   modifier_attribute_name_getry   x   s(    %6677 s   	 
c                 8     XS-      S:g  $ ! [          a     gf = f)N_use_attributer   Fru   rw   s     r$   modifier_input_use_attributer|      s-    %556!;; s   	 
c                 >    U  H  nUR                   U:X  d  M  Us  $    g N)rx   )socketsrx   sockets      r$   get_socket_with_identifierr      s$    
*M  r&   c                 d    U  H*  nUR                   U:X  d  M  UR                  (       d  M(  Us  $    g r~   )r    enabled)r   r    r   s      r$   get_enabled_socket_with_namer      s*    ;;$6>>>M  r&   c                   ^ UR                   S-   n[        R                  R                  R	                  US5      nUR
                  R                  [        S5      SSS9  SUl        [        S UR
                  R                   5       S 5      nU(       ad  UR
                  R                  [        S5      S	SS9  UR                  R	                  S
5      nSUR                  -
  UR                  l        SUl        UR                  R	                  S5      nSUl        SUR                  l        SUl        UR                  R	                  S5      nX(l        UR%                  5         / n	UR
                  R                   GHv  n
U
R&                  S:w  d  U
R(                  S;  a  M&  U
R*                  n[-        UR.                  U5      n[1        X5      (       a  UR                  R	                  S5      nU	R3                  U5        [5        U
R6                  5      Ul        [;        X5      nXR.                  S   l        [?        UR@                  S5      nURB                  R	                  X5        M  [E        U
S5      (       d  GM  U
RF                  S:X  aZ  X   mURI                  U5      RK                  5       S   n[M        U5      S:  a"  [        U4S jU 5       5      nUS   Ul        GMj  GMm  X   Ul        GMy     U(       a  URB                  R	                  WR@                  S   [-        UR.                  UR*                  5      5        U	(       aK  [O        U	5       H+  u  nnSUR                  l        US-  UR                  l(        M-     SUR                  l        / nS nUR
                  R                   GH  nUR&                  S:w  d  UR(                  S;  a  M&  UR*                  n[-        UR@                  U5      n[;        X5      nU(       a  UR                  R	                  S5      nUR3                  U5        [5        UR6                  5      Ul        URR                  Ul*        UUR.                  S   l        [?        UR.                  S 5      n
URB                  R	                  UU
5        M  UR6                  S:X  d  GM  U(       a  GM  UnGM     U(       Ga*  [O        U5       H.  u  nnUS-   S!-  UR                  l        SUR                  l(        M0     [M        U5      S-   S!-  UR                  l        URB                  R	                  UUS   R.                  S   5        [W        [M        U5      S-
  5       HB  nURB                  R	                  UU   R@                  S   UUS-      R.                  S   5        MD     URB                  R	                  US"   R@                  S   UR.                  [        S5         5        U$ U(       d  U RY                  S#1S$5        g URB                  R	                  UUR.                  [        S5         5        U$ )%Nz.wrapperr   r   r   r
   r   Tc              3      #    U  H<  oR                   S :X  d  M  UR                  S:X  d  M&  UR                  S:X  d  M8  Uv   M>     g7f)SOCKETr	   r
   N)	item_typer   bl_socket_idname).0items     r$   	<genexpr>'create_wrapper_group.<locals>.<genexpr>   sE      	
;T~~QY?YDKK7" !!%99 D;s   AAA	Ar	   r   r   Fr   r   GeometryNodeGroupr   >   BOTHr	   GeometryNodeInputNamedAttributeName	Attributedefault_valueNodeSocketMenuitems   c              3   <   >#    U  H  oS    T:X  d  M  Uv   M     g7f)   N )r   r   default_value_ints     r$   r   r      s     2tOD\]W^bsWs44Os   	r   iQii>   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   rx   r   r*   r|   appendrr   r   	data_typery   r   r   r)   r(   hasattrr   id_properties_uias_dictlen	enumerateyattribute_domaindomainrangereport)operatorrZ   	old_groupwrapper_namer!   first_geometry_inputgroup_input_nodegroup_output_node
group_nodeinput_nodesinput_socketrx   group_node_inputr"   attribute_nameoutput_socketmenu_enum_itemsdefault_value_enum_iteminodestore_nodesfirst_geometry_outputgroup_node_output
store_noder   s                           @r$   create_wrapper_groupr      sW   >>J.LHH  $$\3EFE	OOuZ0OcdE	
&00;;	

 	 ""5#4WRf"g ;;??+;<&*-=-C-C&C!!#"'(9:)-&#& $!45J$ K!++66!!X-,2E2EM^2^!,,
5j6G6GT'==)JKJz*#B<C`C`#aJ 8NN6Df%389K9K[YMKKOOM<\?33
 ''+;;$,$8!"*";";J"G"O"O"QRY"Z '!+.22tO2t.t+5LQ5O$2 , 2:1E .7 7: $$Q'&z'8'8:N:Y:YZ	
 $[14"&"#c' 2 +/%%' K ",,77""h.=3G3GOa3a"--
6z7I7I:V4XJ)JKJz*#B=CaCa#bJ  - > >J6DJf%37
8I8I7SLKKOO-|<++/CC(((9%! 8(  -GAt 1umDMMODMMO . ),K(81(<'C""$-{1~/D/DZ/PQs;'!+,AKKOOKN22:>APQE@R@Y@YZd@ef - 	B//
;=N=U=UV[\fVg=hi L %OOYK)QR-/@/G/GjHY/Z[Lr&   c                   Z    \ rS rSr% SrSrSrSS1r\" SSS	9\	S
'   \
S 5       rS rS rSrg)MoveModifierToNodesi  z@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                     [        U5      $ r~   )rc   clsrP   s     r$   pollMoveModifierToNodes.poll  s    099r&   c                 T    UR                   (       a  SU l        U R                  U5      $ )NT)altr   execute)selfrP   events      r$   invokeMoveModifierToNodes.invoke  s     99(,D%||G$$r&   c                 F   [        U5      nU(       d  S1$ UR                  n/ nU R                  (       a  UR                  nOUR                  /nU HK  nUR
                  U   nU(       d  M  UR                  nU(       d  M0  [        XU5      nU(       d  ME  Xl        MM     S1$ )N	CANCELLEDFINISHED)r_   r    r   selected_editable_objectsrE   r]   
node_groupr   )	r   rP   active_modifiermodifier_nameobjectsrQ   rZ   r   	new_groups	            r$   r   MoveModifierToNodes.execute  s    .w7= ',,$$77G~~&GB||M2H ++I,TYGIy&/#  |r&   )r   N)__name__
__module____qualname____firstlineno____doc__	bl_idnamebl_label
bl_optionsr   __annotations__classmethodr   r   r   __static_attributes__r   r&   r$   r   r     sJ    J5IHf%J&S 
 : :%
r&   r   c                   >    \ rS rSrSrSrSrSS1r\S 5       r	S r
S	rg
)NewGeometryNodesModifieri7  z4Create a new modifier with a new geometry node groupz node.new_geometry_nodes_modifierzNew Geometry Node Modifierr   r   c                     [        U5      $ r~   rX   r   s     r$   r   NewGeometryNodesModifier.poll>      %g..r&   c                     UR                   nUR                  R                  [        S5      S5      nU(       d  S1$ [	        [        S5      5      nXCl        S1$ )NGeometryNodesr[   r   r.   r   )rE   r]   r   r   r0   r   )r   rP   rQ   rZ   r!   s        r$   r    NewGeometryNodesModifier.executeB  sO    ^^<<##E/$:GD= 6u=M7NO#|r&   r   Nr   r   r   r   r   r   r   r   r   r   r   r   r   r&   r$   r   r   7  s0    >2I+Hf%J/ /	r&   r   c                   >    \ rS rSrSrSrSrSS1r\S 5       r	S r
S	rg
)NewGeometryNodeTreeAssigniN  zECreate 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                     [        U5      $ r~   r   r   s     r$   r   NewGeometryNodeTreeAssign.pollU  r   r&   c                 f    [        U5      nU(       d  S1$ [        [        S5      5      nX2l        S1$ )Nr   r.   r   )r_   r0   r   r   )r   rP   rZ   r!   s       r$   r   !NewGeometryNodeTreeAssign.executeY  s5    '0= 6u=M7NO#|r&   r   Nr   r   r&   r$   r   r   N  s0    O5I/Hf%J/ /r&   r   c                   >    \ rS rSrSrSrSrSS1r\S 5       r	S r
S	rg
)NewGeometryNodeGroupToolic  z+Create a new geometry node group for a toolz!node.new_geometry_node_group_toolzNew Geometry Node Tool Groupr   r   c                 v    UR                   nU=(       a%    UR                  S:H  =(       a    UR                  S:H  $ )NNODE_EDITORTOOL)
space_datarF   node_tree_sub_typer   rP   spaces      r$   r   NewGeometryNodeGroupTool.polli  s2    ""[}4[9Q9QU[9[[r&   c                 >    [        U5      nX!R                  l        S1$ )Nr   )rS   r  selected_node_group)r   rP   r!   s      r$   r    NewGeometryNodeGroupTool.executen  s     27;16.|r&   r   Nr   r   r&   r$   r   r   c  s2    53I-Hf%J\ \r&   r   c                   4    \ rS rSr\S 5       r\S 5       rSrg)ZoneOperatorit  c                     UR                   nUc  g UR                  U R                  :X  a  U$ UR                  U R                  :X  a  UR                  $ g r~   )active_noder   output_node_typeinput_node_typepaired_output)r   rP   r   s      r$   get_nodeZoneOperator.get_nodeu  sO    ""<>>S111K>>S000%%% 1r&   c                     UR                   nU(       a<  UR                  S:w  d,  UR                  (       a  UR                  R                  (       d  gU R	                  U5      c  gg)Nr   FT)r  rF   	edit_treerb   r  r  s      r$   r   ZoneOperator.poll  sH    ""

m35??RWRaRaRmRm<< (r&   r   N)r   r   r   r   r   r  r   r   r   r&   r$   r
  r
  t  s(    & &  r&   r
  )r   	bpy.typesr   	bpy.propsr   bpy.app.translationsr   r   r%   r,   r0   rS   rX   r_   rc   rr   ry   r|   r   r   r   r   r   r   r   r
  classesr   r&   r$   <module>r     s   
   " 7" F
(0qh,( ,^x . *x " . 	r&   