Files
OmniLottie/lottie/parsers/sif/__pycache__/builder.cpython-310.pyc
T

107 lines
13 KiB
Plaintext
Raw Normal View History

2026-03-01 21:36:54 +08:00
o
æË£i-<ã@sJddlZddlmZddlmZddlmZddlmZddlm Z m
Z
iej j e j
jej je j
jej je j
jej je j
jej je j
jej je j
jej je j
jej je j
jej je j
jej je j
jej je j
jej je j
jej je j
jej je j
jej je j
jej je j
jZGd d
d
ejƒZ d d Z!dS)
éN)Úminidomé)Úobjects)ÚNVector)Ú restructureé)ÚapiÚastceZdZd6‡fdd„ ZdejfddZddZd d
Zd d Z d
dZ
ddZ ddZ ddZ
d7ddZddZddZddZddZd d!„Zd"d#„Zd$d%„Zd&d'„Zd(d)„Zd*d+„Zd,d-„Zd.d/„Zd0d1„Zd2d3„Zd4d5„ZZS)8Ú
SifBuilderçð?csDtƒ ¡t ¡|_d|j_||j_|j_|j_t j
  ¡|_ dS)z=
@todo Add gamma option to lottie_convert.py
z1.2N)
ÚsuperÚ__init__rZCanvasÚcanvasÚversionZgamma_rZgamma_gZgamma_brÚbaseÚIndexÚautoid)ÚselfÚgamma©Ú __class__©ú7/data/cref/Lottie-kaiyuan/lottie/parsers/sif/builder.pyr
s

zSifBuilder.__init__Ú animationcC|jr|j|j_|j|j_|j|j_|j|j_|j|j_tdd|j|jƒ|j_|j|j_ t
j   |j
¡|j_t
j   |j¡|j_d|j_|jS)NrT)ÚnamerÚwidthÚheightÚxresÚyresrÚview_boxÚ
frame_rateÚfpsrÚ FrameTimeÚframeÚin_pointÚ
begin_timeÚ out_pointÚend_timeÚ antialias)rrrrrÚ
_on_animation)s





zSifBuilder._on_animationcCs.| t ¡¡}||_|D]}| ||¡q dS©N)Ú add_layerrÚ
GroupLayerÚdescÚ
process_layer)rÚidÚ
dom_parentÚlayersÚ
layer_builderrrrÚ _on_precomp7s
ÿzSifBuilder._on_precompcCs„| tj|j|¡}|jjs|jjj|_t|jddƒ}|dur"t j
j }t ||_
t|jddƒp/d|_t|jddƒ}tj |¡|j_|S)
blend_modeÚstretchrr$r)Úlayer_from_lottierr,ÚlottierrÚ__name__r-ÚgetattrrÚ BlendModeÚNormalÚ blend_modesZ blend_methodZtime_drilationr"r#Z time_offsetÚvalue)rr3r0ÚlayerÚbmr$rrrÚ _on_layer=s 
zSifBuilder._on_layercCsX| |ƒ¡}|jr
|j|_|j |_t|ddƒ}|r | ||¡t|tj ƒr*d|j
_ |S)NÚ transformr) r+rr-ÚhiddenÚactiver:Ú
set_transformÚ
isinstancerÚ NullLayerÚamountr>)rÚtyper8r0r2Útransfrrrr7Os 
   zSifBuilder.layer_from_lottiecsfdd}|S)Ncs~|r|jnd}ˆj |¡dd\}}|d}|d}ˆjr$ˆj |¡nd}t |tjd¡}|dkr:|d|9}t||ƒS)Nréédé´r)ÚtimeÚscaleÚ get_valueÚskewÚmathÚcosÚpir)ÚkeyframeÚscale_xÚscale_yrQÚrBrrÚfunc^s 
z#SifBuilder._get_scale.<locals>.funcr)rrBr[rrZrÚ
_get_scale]s 
zSifBuilder._get_scalecC|j}|jr
| |j¡|_|jr#| |j|jg¡}| || |¡¡|_|  |jp,t
  d¡¡|_ |j
r9|  |j
¡|_|jrD|  |jd¡|_|jrN| |j¡|_d|_dS)Nrç{®Gáz„?)ÚtransformationÚpositionÚprocess_vectorÚoffsetrOÚ_merge_keyframesrQÚprocess_vector_extr\Úprocess_scalarrÚValueÚ
skew_angleÚrotationÚangleÚopacityrHÚ anchor_pointÚoriginZz_depth)rÚgrouprBÚ compositeÚ keyframesrrrrEjs
zSifBuilder.set_transformcsfdd}| ˆj|¡S)Ncs(|durˆj}n|j}t|d|dƒS©Nrr)r>Ústartr©rUÚÚmultidimrrÚgetterƒsz)SifBuilder.process_vector.<locals>.getter©rcrn)rrtrurrsrr`s zSifBuilder.process_vectorcC|durnt ¡}tt|ƒƒD]]}||}| ||ƒtj |j¡¡}|dkrI||d}|j r4tj
j |_ n|j
rC|j
jdkrCtj
j|_ n tj
j|_ ntj
j|_ |j rWtj
j |_q|jrf|jjdkrftj
j|_qtj
j|_q|St |dƒ¡}|Sro)r Z SifAnimatedÚrangeÚlenÚ add_keyframerr"r#rNÚjumpÚ
InterpolationÚConstantÚbeforeÚin_valueÚxZEaseÚLinearÚafterÚ out_valueZSifValue)rZkframesruÚwrapÚirUZwaypointÚprevrrrrcŒs*    
   þzSifBuilder.process_vector_extNcsfdd}| ˆj|¡S)Ncs.|durˆj}n|jd}ˆdur|ˆ9}|S)Nr)r>rprq©Úmultr>rrruªs 
z)SifBuilder.process_scalar.<locals>.getterrv)rr>r‡rurr†rrd©szSifBuilder.process_scalarcCs~g}t|dƒs gS|jr#| tj| ¡||¡}| ||j¡| |¡|jr=| tj | ¡||¡}| |¡| 
||j¡|S)NÚ to_bezier) ÚhasattrÚstrokeÚ
build_pathrZ OutlineLayerrˆÚapply_group_strokeÚappendÚfillZ RegionLayerÚapply_group_fill)rÚshaperlr0r1Ú sif_shaperrrÚ _on_shape´s


zSifBuilder._on_shapecCsNi}|D]}|dur|jr| dd|jDƒ¡qtt| ¡dddƒp&dS)NcSsi|]}|j|qSr©rN)Ú.0ÚkfrrrÚ
<dictcomp>Ész/SifBuilder._merge_keyframes.<locals>.<dictcomp>cSs|jSr*r“)r•rrrÚ<lambda>Êsz-SifBuilder._merge_keyframes.<locals>.<lambda>)Úkey)ÚanimatedÚupdaternÚlistÚsortedÚvalues)rÚpropsrnÚproprrrrbÅs zSifBuilder._merge_keyframescCs0t|dƒr|j ¡|j_dS| ¡ ¡|j_dS)Nr_)r‰r_rPrkr>Ú bounding_boxÚcenter)rrÚ lottie_shaperrrÚ apply_originÌs
zSifBuilder.apply_origincsPtˆdƒrdSfdd}ˆ ˆjj|¡|_fdd}ˆ ˆjj|¡|_dS)colorscs$|dur ˆjj}n|j}ˆjj|ŽSr*)Úcolorr>rprZ
make_colorrq©rrrru×s
 z+SifBuilder.apply_group_fill.<locals>.gettercs(|dur ˆjj}n|jd}|d}|S)NrrL)rir>rprq)rrÚget_opàs


z+SifBuilder.apply_group_fill.<locals>.get_op)r‰rcrnrirH)rrrurrrÒs
 zSifBuilder.apply_group_fillcCsP| ||¡|jtjjk|j_|jtjj k}||j
_||j _|  |j
d¡|_
dS)Ngà?)rÚ line_joinrÚLineJoinÚMiterZ sharp_cuspsr>Úline_capÚLineCapÚRoundZ round_tip_0Z round_tip_1rdr)rrZ round_caprrrês zSifBuilder.apply_group_strokec Cs`| |||¡}| ||¡|j ¡}|j|j_t|jƒ}t |ƒD]
}| 
|||j|j j ¡q |Sr*)
r7rrPÚclosedÚblineÚlooprxÚverticesrwÚ bezier_pointrkr>) rrIÚpathr0r?ZstartbezZnvertsÚpointrrrròs 


 zSifBuilder.build_pathct ¡}fdd}| ˆjj|¡|_d|j_d|j_d|j _fdd}dd| ˆjj|¡|_
dd ‰| ˆjj|¡|_ |j  
|¡dS)