Files

120 lines
12 KiB
Plaintext
Raw Normal View History

2020-11-20 17:33:46 +02:00
B
<00><><EFBFBD>]<5D>:<00>@snddlZddlZddlZddlZddlmZmZddlmZyddl m
Z
Wn YnXga e<04> <0C>a Gdd<07>dej<0E>Zdd <09>Zd
d <0B>Zd d <0A>Zdd<0F>Zdd<11>Zdd<13>Zdd<15>Zdd<17>Zdd<19>Zdd<1B>Zdd<1D>Zdd<1F>ZdEd!d"<22>Zd#d$<24>ZdFd&d'<27>Zd(d)<29>Zd*d+<2B>Z d,d-<2D>Z!d.d/<2F>Z"d0d1<64>Z#d2d3<64>Z$d4d5<64>Z%d6d7<64>Z&d8d9<64>Z'dGd;d<<3C>Z(dHd=d><3E>Z)dId?d@<40>Z*dAdB<64>Z+dCdD<64>Z,dS)J<>N)<02>Process<73>Pool)<01>Vector<6F>)<01> numba_lerp2c@seZdZdd<02>Zdd<04>ZdS)<06>ThreadVertexGroupcCs"||_||_||_tj<04>|<00>dS)N)<06>id<69> vertex_group<75>n_verts<74> threading<6E>Thread<61>__init__)<04>selfrr r
<00>r<00>lC:\Users\Administrator\AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons\tissue-master\utils.pyr szThreadVertexGroup.__init__cCsRt<00>t|jd<00><01>d|j}x.|D]&}y|j<05>|<02>t|<Wq$Yq$Xq$WdS)N<>)<07>np<6E>arange<67>intr
rr <00>weight)r<00>verts<74>vrrr<00>run&s 
zThreadVertexGroup.runN)<05>__name__<5F>
__module__<EFBFBD> __qualname__r rrrrrrsrcs\tt<01>|att<02><01><00><00>fdd<02>tt<01>D<00>}x|D] }|<03><05>q2Wx|D] }|<03><06>qHWtS)Ncsg|]}t|<01><01><00><03>qSr)r)<02>.0<EFBFBD>i)r
r rr<00>
<listcomp>6sz&thread_read_weight.<locals>.<listcomp>)<07>print<6E> n_threadsr<00>len<65>range<67>start<72>join)<04>_weightr <00>threads<64>tr)r
r r<00>thread_read_weight0s

r(cCsRt<00>ttjd<00><01>dtj}x.|D]&}ytj<06>|<04>t|<Wq$Yq$Xq$WdS)Nr)rrrrr
rr r)rr r
rrrrr<00>process_read_weight;s 
r)csDtt<01>|att<02><01>t<04><05>}t|d<01><01><01><00><01>fdd<03>t|<02>D<00>}tS)N)<01> processescsg|]}<01><01>t|<01><02>f<03><02>qSr)<02> apply_asyncr))rr)r
<00>poolr rrrNszread_weight.<locals>.<listcomp>)rr rr!<00>multiprocessing<6E> cpu_countrr")r%r <00>n_cores<65>multiple_resultsr)r
r,r r<00> read_weightFs
r1cCs8d}|j|kr|Sx |jD]}t||<01>}|r|SqWdS)N)<03>name<6D>children<65>recurLayerCollection)<04> layerColl<6C>collName<6D>found<6E>layerrrrr4Us
 
r4cCs`tjjj}tjjj}|js"|jjr\tjjj}x.|D]&}t ||j
<EFBFBD>}|js2|js2|tjj_q2WdS)N) <0B>bpy<70>context<78>
view_layer<EFBFBD>active_layer_collection<6F>layer_collection<6F> hide_viewport<72>
collection<EFBFBD>object<63>users_collectionr4r2)r8r=<00> collections<6E>c<>lcrrr<00>auto_layer_collection^s



  rEcCs||||S)Nr)<03>a<>br'rrr<00>lerpisrHcCs*|<00>||j<01>}|<02>||j<01>}|<05>||j<02>S)N)rH<00>x<>y)<07>v1<76>v2<76>v3<76>v4r<00>v12<31>v34rrr<00>_lerp2lsrQcCs6||||j}||||j}||||jS)N)rIrJ)rKrLrMrNrrOrPrrr<00>lerp2qsrRcCsFt|j|j|j|j|<04>}t|j|j|j|j|<04>}|<06><03>|||jS)N)rR<00>co<63>normal<61> normalize<7A>z)rKrLrMrNr<00>loc<6F>norrrr<00>lerp3vsrYc Cs4||||}||||}||||}|S)Nr) <09>v00<30>v10<31>v01<30>v11<31>vx<76>vyZco0<6F>co1<6F>co2rrr<00>np_lerp2|srbcCsNg}tjjj}x"|D]}dt|<04>kr|<02>|<04>qWx|D]}|<03>|<04>q8WdS)N<>turn_off_animatable)r9<00>app<70>handlers<72> render_init<69>str<74>append<6E>remove)rr:<00> old_handlers<72>blender_handlers<72>hrrr<00>set_animatable_fix_handler<65>s

 
rmcCs&x tjjD]}d|j_d|j_q
WdS)NF)r9<00>data<74>objects<74>tissue_tessellate<74>bool_run<75>reaction_diffusion_settingsr)<02>scene<6E>orrrrc<00>s rcTc
Cs>y
|jWn
dS|jdkr<>|sJdd<03>|jD<00>}x|jD]
}d|_q<Wt|<00>}tjj<07>|jj|<05>}|j |j
|_ |_
|s<>xdt |j|<03>D]\}}||_q<>WnD|r<>|<00> <0C>}t|<00>}|j<02> <0A>||_n|<00> <0C>}|j<06> <0C>|_|j<02> <0A>tjjj<07>|<06>|<02>r|<06>d<04>n6xtjjjD]} | <09>d<04><00>qW|<06>d<05>|tjjj_|S)N<>MESHcSsg|]
}|j<00>qSr)<01> show_viewport)r<00>mrrrr<00>sz*convert_object_to_mesh.<locals>.<listcomp>FT)r2<00>type<70> modifiersrv<00>simple_to_meshr9rnro<00>new<65>location<6F> matrix_world<6C>zip<69>copy<70>clearr:r?<00>link<6E>
select_setr;<00>active)
<EFBFBD>ob<6F>apply_modifiers<72>preserve_status<75>mod_visibilityrw<00>me<6D>new_ob<6F>vis<69>new_mertrrr<00>convert_object_to_mesh<73>s>


 
 
 
 r<>cCs4tj<01><02>}|<00>|<01>}tjjj|d|d<02>}|<03><07>|S)NT)<02>preserve_all_data_layers<72> depsgraph)r9r:<00>evaluated_depsgraph_get<65> evaluated_getrn<00>meshes<65>new_from_object<63> calc_normals)r<><00>dg<64>ob_evalr<6C>rrrrz<00>s


rzFcCsttj}t<02><03>}i}g}|<03><04>}xt|D]l}|<04>||<07>x$|jjD]} | |kr>t|<05>|| <q>Wx4|jj D](}
|
j
} |j | j } || } |<06> | <0A>qdWq$W|j<0E><0F>|j<10><0F>|j<11><0F>xt||j<11>D]\} }
| |
_
q<EFBFBD>Wtjj<13>d<01>}|<04>|<0E>|<0E><15>tjj<16>d|<0E>}|<01>r|jj<16>|<0F>|<02>rNx|jjD]}|<08>d<02><00>q&W|<0F>d<03>||jj_x |<05><1C>D]} |jj<07> | <09><00>qXW|S)NZjoinedFT)r9r:<00>bmeshr{r<><00> from_objectrn<00> materialsr!<00>polygons<6E>material_index<65>material_slots<74>materialrhr<00>ensure_lookup_table<6C>edges<65>facesr~r<><00>to_mesh<73>updateror?r<>r;r<>r<><00>keys)roZ link_to_sceneZ make_active<76>C<>bmr<6D>Zfaces_materialsr<73>rtrw<00>f<>index<65>mat<61> new_indexr<78>r<>rrr<00> join_objects<74>sD
  






r<>cCs>t|j<01>}dg|d}|j<01>d|<02>t<03>|<02><01>|df<02>}|S)Nr<00>rS)r!<00>vertices<65> foreach_getr<00>array<61>reshape)<03>meshr
rrrr<00>get_vertices_numpy<70>s

r<>cCsrt|j<01>}dg|d}dg|d}|j<01>d|<02>|j<01>d|<03>t<03>|<02><01>|df<02>}t<03>|<03><01>|df<02>}||fS)Nrr<>rSrT)r!r<>r<>rr<>r<>)r<>r
r<00>normalsrrr<00>get_vertices_and_normals_numpy<70>s
r<>cCsDt|j<01>}dg|d}|j<01>d|<02>t<03>|<02><01>|df<02><01>d<04>}|S)Nr<00>r<>r)r!r<>r<>rr<>r<><00>astype)r<><00>n_edgesr<73>rrr<00>get_edges_numpy<70>s

r<>cCsdt|j<01>}dg|d}|j<01>d|<02>t<03>|<02><01>|df<02>}t<03>|<01><01>|df<02>}tj||fdd<05>}|S)Nrr<>r<>r)<01>axis)r!r<>r<>rr<>r<>r<00> concatenate)r<>r<>r<><00>indexesrrr<00>get_edges_id_numpys
r<>cCsLt|j<01>}dg|d}|j<01>d|<02>t<03>|<02><01>|df<02>}dd<05>|D<00>}|S)Nrr<>rScSsg|] }t|<01><01>qSr)r)rrrrrrsz get_vertices.<locals>.<listcomp>)r!r<>r<>rr<>r<>)r<>r
rrrr<00> get_vertices s 
r<>cCsdd<02>|jD<00>}|S)NcSsg|]}dd<01>|jD<00><01>qS)cSsg|]}|<01>qSrr)rrrrrrsz(get_faces.<locals>.<listcomp>.<listcomp>)r<>)rr<>rrrrszget_faces.<locals>.<listcomp>)r<>)r<>r<>rrr<00> get_facessr<>cCsdd<02>|jD<00>}t<01>|<01>S)NcSsg|]}dd<01>|jD<00><01>qS)cSsg|]}|<01>qSrr)rrrrrrsz.get_faces_numpy.<locals>.<listcomp>.<listcomp>)r<>)rr<>rrrrsz#get_faces_numpy.<locals>.<listcomp>)r<>rr<>)r<>r<>rrr<00>get_faces_numpysr<>cCsdd<02>|jD<00>}t<01>|<01>S)NcSsg|]
}tj<01>qSr)r<00> edge_keys)rr<>rrrrsz)get_faces_edges_numpy.<locals>.<listcomp>)r<>rr<>)r<>r<>rrr<00>get_faces_edges_numpysr<>c
Cs<>dd<02>t|<01>D<00>}x8|D]0}||d<00>|d<00>||d<00>|d<00>qWg}<04>x^t|<02>dkrbPt|<02><04><00>d}||}t|<06>dkr<>|<02>|<05>qTg}t|<06>dkr<>|<07>|d<00>|<07>|<05>|<07>|d<00>|<02>|<05>x<>|d|kr<>n|d|kr<>|<07><06>nP|d}||}t|<06>dk<02>r6|<02>|<08>|d|k<06>r4q<34>nPd} |d|dk<02>rV|d} n|d|dk<02>rp|d} |<07>| <09>|<02>|<08>|d|dkr<>|<02>| <09>Pq<>W|<04>|<07>qTW|S)NcSsi|]
}g|<01>qSrr)r<00>keyrrr<00>
<dictcomp>Wszfind_curves.<locals>.<dictcomp>rr<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)r"rhr!<00>listr<74><00>pop<6F>reverse)
r<EFBFBD>r
Z
verts_dict<EFBFBD>e<>curvesrr\<00>curve<76>
last_pointZ new_pointrrr<00> find_curvesVsX
  
 

 





r<><00>CurvecCsxtjj<02>|d<01>}xR|D]J}|j<04>d<02>}|j<05>t|<03><01>x(t|<03>D]\}}|j dg|j|_
q@WqWtjj <0B>||<02>}|S)N<>CURVE<56>POLYr) r9rnr<>r{<00>splines<65>points<74>addr!<00> enumerate<74>xyzrSro)r<>r2r<>rC<00>sr<00>p<>ob_curverrr<00>curve_from_points<74>s
 r<>cs|tjj<02>|d<01>}d|_<04>x,|D<00>]"}t<05><06>fdd<04>|D<00><01>}|dkr<>tj|ddd<07>} tjj | |dd<07>}
d} t
|
<EFBFBD>} t<05> | <0C><01> d<08>} x2t | <0C>D]&}| |
|7} | |kr<>d} q<>d | |<q<>W|| }|d|d
k}|r<>|s<>q|j<0E>d <0B>}t
|<08>}|j<0F>|d<00>t<05> |<11><01>|df<02>}tj||fdd<07><02>|d <00>}|j<0F>d |<13>||_qWtjj<15>||<06>}tjjj<15>|<14>|<05>rx|tjjj_|S)Nr<4E><00>3Dcsg|] }<01>|<00>qSrr)rr)r<>rrr<00>sz%curve_from_pydata.<locals>.<listcomp>rr)r<><00>boolFr<46>r<><00>rS)r9rnr<>r{<00>
dimensionsrr<><00>roll<6C>linalg<6C>normr!<00>onesr<73>r"r<>r<>r<>r<>r<><00> foreach_set<65> use_cyclic_uror:r?r<>r;r<>)r<>r<>r2Z skip_openZmerge_distanceZ
set_activer<EFBFBD>rC<00>pts<74>pts1<73>dist<73>count<6E>n<>maskrZ bool_cyclicr<63><00>n_pts<74>wrSr<>r)r<>r<00>curve_from_pydata<74>s>   
 r<>c Cs~tjj<02>|d<01>}xX|D]P}|j<04>d<02>}|j<05>t|<04><01>x.t|<04>D]"\}}||j j
dg|j|_ q@WqWtjj <0B>||<03>}|S)Nr<4E>r<>r) r9rnr<>r{r<>r<>r<>r!r<>rSr<>ro) r<>rr2r<>rCr<>rr<>r<>rrr<00>curve_from_vertices<65>s
 "r<>cCs@dg|}x0t|<01>D]$}y|<00>|<03>||<WqYqXqW|S)Nr)r"r)r r
rrrrr<00>
get_weight<EFBFBD>s

r<>cCsFdg|}x0t|<01>D]$}y|<00>|<03>||<WqYqXqWt<02>|<02>S)Nr)r"rrr<>)r r
rrrrr<00>get_weight_numpy<70>s

r<>)TT)TF)r<>)r<>FrT)r<>)-r9r <00>numpyrr-rr<00> mathutilsr<00>numba_functionsrrr.r r rr(r)r1r4rErHrQrRrYrbrmrcr<>rzr<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>rrrr<00><module>sR      

#
'
 :7
!