From 4579614ddb9c095df8ebdec124c5894af10ff156 Mon Sep 17 00:00:00 2001 From: Justin Lin Date: Thu, 2 May 2019 09:13:23 +0800 Subject: [PATCH] add lib-shear doc --- docs/images/lib-shear-1.JPG | Bin 0 -> 47387 bytes docs/lib-shear.md | 49 ++++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 docs/images/lib-shear-1.JPG create mode 100644 docs/lib-shear.md diff --git a/docs/images/lib-shear-1.JPG b/docs/images/lib-shear-1.JPG new file mode 100644 index 0000000000000000000000000000000000000000..e4a6d5be113ee0651485ec77e4b71aa718db84b4 GIT binary patch literal 47387 zcmeFa1y~&G(k|L~kl^ltL4s?r!9wtb26uONhd_Yf!4ouCa0u=eB*7CjxVr>*In7#o z@BhEs*52prd!PG1XHA}Orl+Ur?y9b?dh4zFI`=>B7XeHe326xc1_lQ30RI8^OPGt| z9+qYRASVYf008g^fQJzPV8JCM@QX~SB>)dD!+^`mY3UE206G9*_HC2?`a2r;txa7hjZDog?F8w5Hnq`FTAB#bsdLM*$vKFbT3AYXIhnrn zl2QZc4%m1@9H8*(HsPBypD#2EFCQkoDPTN?PcHvYr9{)egSzhJJZ9f)n+ zK@fXC1Bd}g2ndJ>@JNUVh>wtv9-&~Nf*1n@4+9eoix7{Ph!BsEfP|dx2?-eu837>` z3l$ChQ${96VoFv{Rt63_21bU5oxmVHdW3?Ef{TiZ%Rov<%J6T$?%M&ZN3b%m$8a!I z04x>^92U%d7eE0P9udG&90CG7Sf_;X z1%C(Nu@JDIu!|z%C>bJAIpT7>ip_dN{k)0DFYYx zGag<(ez6zg5|UEVGA~tB)zmdKwTw+n&CD$%CpYh7enDYTWmR=eZC!msOA5ut2$B;o;%nksjoNfprH592Pvn6Lv&wQ6(fpM;t1S zSC4R?$7WS@AX9THAK)1|eMiBEa4pdsK8W_KWdE9Af&W{Q{Y9|phSPt5{U-z6?)pw9DfAvNu$8_}*5}7gX+NWdgqASbdQi1I7 zr+|_;?*G7HWJS*Qt$JpQiKg{h{6>T0$B)nF?(DEIXx~1UY}Yd$VGuV zdq$Wp-Oj!e?4!S-Ex4RC;RSCO6+?7fm5*qyznz6TKBMr|N83v6S(}Ab1rnri-3FLise%~=Bs&cFQ8=0K!EZJG zdl3Yl2G`7U&BM0tHu{bsD!kA|?2>1V*tnJa&k%Rj5-CyWvjhIo;A{GM$)H7X`>KZG zmdsR_=C3cZ4JcJEj5x01e}3R0%&paCTAlNpv(0FKsLdezwpU%s#ammeT-;K}i7gGuRF;N14g=_nI?ODd$AYnIj`9|tG{l4R zazB=Ck+=EvZ~XX{9nLr*O!bef>F=%QYtg@Zy5~mbCOl_ZCy+hC{#o)UhGp++#jJw_ z6RDTd-1cpxOCsK2H9=D4jBY3C+3}NTjXaTFs@T9140ucj(Gmr8ond3@3ul!SX}c0d zRN2%}TDj*x7+~1x1kyEYrH9;sRmwyJ!S>C+9~d=>%Y$9WyteGP=ctBNTts3cHeYOE z_R<-(s!9(-0Bsax0d)YkZAtK38Si(~`bmwOf@$%pxfjFJocwTTwxd5A0|@b-$Xi_7 zN1Rez9FK6_5)%pSPAB%(XE3?W*<*a2qJ|?Ng(W;fQI{5H<4v{Yzw2L4dV7^o<5<}L zEUExI22DvE=D4JiN=30l-bw~duy&rcxCL1MmPY)db~^g>|tc`ojOFXtIt zW6wW$`!XO7wp2jlM+badjf4@9;2QY-v0G_mmkVcp86jK#o?|DEQZowI$+r99h~N;q z$eJ;k7}n+7s2iKpKFY3D0 z&VHiSX2Kz}ngDx`_#Vkipkh@UY{YpJ7j*X?<)BGWWe`UetGY$1E}UMHXC7#G{LI_3 zUnW_Kh1=Be-y@pip#eJZniFFhcgU;(3AdO9wiFcTj$E1h{ZYG>)X@%@0qIw z0#QFHhSZut4E5J2*}Bgfyn*ME22<;t>pSD}xpfMtqUvlf?aZ--i=frlAc0{Qbh zx-^7|i>yPjYuTZ1P;TKXf~T&YME8LH_8b3(ZU2Z5mwxB*lkY*J@_s9j~6ex^M{b2)FI-~4KH>BDM%Ucy9k&7Ho78D zwA3=j)M-Ql^$U|zmxxDh)P&TW(<2&P)d0%Eo=4P_69*H;Ld7|ZR;Z*}>BTjrH%ftc zbn=7+kWUgzqwcgk5IDJSB)R_+9eaVy7hU9mjhhx=r}el|&Hnq6-sKtRwO4Js*Pc0Y+F5Vh;LYC>C~U#B2@P{q_{+Pm~_VHEA(^4GxnIdGJ;Qn{Kpdw zd69t^u0lDe9rfFd6LEpp3rqRSzI6U8`j0K+O9&d*!ez{l(2NWQV&d2q%?;p5liJC? zmQG(xx4ym*UV)#4@-}jR?>x9`RPO%=(v=?J-i)Ft3!#Vo0d&1Ms)9_nEIjm zCWnsENBxHQa`SxlM2kMVNg@1iZn;B+2!AYd@8V3<%}P&)FGu=1)PbhF>y(n>M4j$* zjO|EnncW!S6jQBkua*k$fl*J{;;+M3F)CuW_rS{=L8QTRAO7ZDdFoxUb-$QSQlb5d z`hu;qm-oO(=GOTcc(~@3lYl>4esPLKqHCEoexqsNetqLxiTCiq!)m>j z?k=^R_qi&B5R=m@ugNwa!UO9qe)SuOdLG(UdLxOdva}S*A7f&SnRsA#uLaki#!ffVUKd zzT6g)7<*x}!4U79+T>NY4mvLm5V`(SCIU8`kw^WIJZ$M6pu6_g96cEpc27K;$qgNt ziQJo&aEwj!3I|5A8`>^pS;{@W`EZx$75fA(Z(|u_3+IIO4OW|A_u@q2L=B*PKVv1> z7CyWz-n!!A@ZEHoF?NJ%Y}GE?$5u+n+g`vItRm$b@XIi!-UF{mhZvpUzTtv_tV@AYZo4Tb&dww<*8f)0_J1R?xUQviYM7_wj-GQC|!p_ znXZE2+x%SGr%?juwXZZ7xk^^w3lN{E^R)GN#SFt*T;b{}vBb$<>X5%0C#MNZu2)aMmM1|?5?(^7 zY245oca5@a-O?`Z#FfuH9$XBNL<{#EIx%X0E3E_UB3Pa>l4M5mne zwkwHRQat@8>Rv&KUsufw%4!>EMoU~W-(*l!j+E@}+ERV55oVd6ritbn?2hGC1<>LY z#wNAJ{!w83E56Bmr*S+#)I}g&U73ZsG=bAbccAMn05=wg1awit7Y=xIKOY*s5AFm22_AE;R z9GSjO-xVfn65};q<(UxY*u<^L3|?F7<;e){1oqNx%kLb)CKU=yap=y?af>IUY=mTd ze9Hx8nnnz=ZoYa1p+~dKX-{ddTl@u)%YL%dpyoHUHKeRB9kyzwHPs>_O0OOO1s2(# z1iKPclRChhkFC@m?IPs(^BraFIFoKiR6r89ZMMY`kAw#lQxF~f(JD%Bc8aY)4uAEM z8hX08%ZbI+Js>}3%k9gLdi!jNh1p#9``7eGcdyAGK?5IgTQy5AwnZfkIWMKlt4Prr zoheIggdr2Xaf4}~&L52JHPoBaTVn{%<%{|3Y*XuL$D%@0yLGNBym$%1MXe0QKU0G0 z?|if_f>?rJH&gKXShD!zof+5{Y+j?mYz`oA@B!weg#>;yJ~9!XKRtV&%P(8#|3?ea3oDh@6X2$$K~`Z z?6R}^D84=m$#!?CmEjCe%c$yf2B|)DP}7xC2- zp0|BkSpT31XQz&XVmA1VdF10Sr}qHLJg-;Wrl)I_4;e*``&#)*-Li|Sysq*P>AJxe zA{Zf?JL>TDkM&7QRa}u9kjRWo1)1nZyPPjR@wP+hj_yj+BM0%%!;igb){SN$`bw!w5bGt4E<>*?L^WtPj`JR2%MP~QJ!XfLjEF-e|osf4JgyMMk zyMIjKr5{L_oha!()ws}+pmN<9qy(Km-{*hmTnEQ*B(pvId++8aTy8ms=hl2{x1Jn7 zTM=-_N;5Gh&#v-cVrpzz5j~iw@G3n*jVKV0l)8(iV|@1gtt>>IO`eC1QGNhDE_}si zAF5Qg?G+q6QD~k;A}O9U-8VT@uWEu8C+_(4$L1HOeQU=)nV^IP^|mG0Z)JQF*$=tf zP-9C!n7hr3!o{Q6PVQ3$5C+4@(|IXO^X5jp zK-WCp_G6RfH)?dar(w-^>8c-HA@Q$*QS)*=+@-$xtmIlwoK@=B^5A6qoh?Q#<-NTb z;eqTMfsxBe&QeMI@AG91_5RCghep#Fmq^y5vJmPIb6yv!?|DKIYcOyu5=Gl3`Hw9G$IC7k+|N z^J~!Z8Y}fp7F(0;IxNXYiG*3xJMWe1@(&i-a|3n@N@CEhs?AG81!*(i~Jd4|M~N;c)-NJNiUv$0#U<%iyIHI0~~m2_keQ6 z$fD+{z>GKV`&wic8jZ19p5#d6*03^s;1fPYKdw^ozV^j&{)!s<~$+NSrBLxNa!|^va zxTNT-8N!FR8&TYt1>_4dud3{A6d)(Z6l5AP9ir{~3QzRpsj-IlzZjpkk}dsMG^*fD z^eQ*KX*=+4i#rBYwIVd|XNCRw(}z>m9_l>v^-z`sNg6A>l8p}@>s!!#Yt8{{cybRp zUZ}E(RGDfd5Bo>A+=#7=E`Lowc%(R9majrPNyu(+}cr!P0T(Rerq#>k6^l_vW~ z7C+HA?8f(V46U&Z-W|uT*NT#eZa%tv^W~S=QLC%c+R&UiEBC$H`3X+y#Q<$GT$5Mz zX#i(0rFx&%evRicv(tv^SU5>)650%bRRLJEI{{#Zp-$544UXI`X*PA{6AlwHRmA(H z_Dh|IzAXZ`b283y%%El+sr#8CbywY(hPqbc6qFUbO!1Qa3pfXuN}^4TYtsBNF896t zSs5^$-6Xd!nsrI>kkpDR#cN{ASjceR8242nuBDP8@*4~5Ome!~oFzZT4LIFf>PWf#y+GCd`v4vp=?xtA2D3 zur5p<{@4K3axz>6;z_X!@q=l5GLI-0Zd6N*(A|Yw7Tq=IM2{K`rAeHFHsR-U__F5= zDp9El}1szSii9*<5z2vL%AAe6a$*;tX5u z8_|6gbK_@qMr_9$6%}%^Z`% zYjLCwuwNJbBv&T;5-?K93crEUMRD-TLY;I+Nyoax&sw>^=HLG;x#O;Mpvi|`;UE?hJjdQF<13lM@BS?gNyvRQJO z`S}hs)s}lk{uQAE(JyivC)=f*g^)BfdcC-C7DT()r8#QRRI`)>zP2# zkR-8VsoD63Fi4zqFLxeDr)}KG*$P%CwNj5R#VzkhOGnmz%d%wIOBYSTCB0e837d?p zdV#}0_GYHGA@FE|F;zMzW8MT?oJpPtqRc@gwHSylipOkZ!S6c}<6B_ai_hh9v^M(2 zuoh?!tyS%Pq7?5z2OtO1qY~m?!PNa3y8l0~6+LWimNoZYWYXE>B(YCSRNb?FqF6T3 zMX8eJ71F}RGw1}}4P~SF!r(G%wMX>Jelk4;ekw0S{KZFD0hjI&E621r&9E){dr_!C~X7oH)h|^!~KETmuGxn_OD}qau08}@*ng> z)LRkHWj9J0d1U)PdtsOs@}eKjASkwDxz&FBMt_;ieTcZM!X4^tdrWzZ()FW9*sWf# z{bXlYtEWuU*gug%HFzOu~|^9np}4 zdcK~=QcZb;9@B(kPhDaDi$1)#ZfK>%V}rlwN73RPn7D&uDy`=GyXhb z2uaJ3V{mL*H`n9HeyvLHFLfOPx^Rb^M-MLi9|XEq?~BAk27NsFX|uOK@uNtb98}BR zkrRcQBE4-3+kmmT(Y$zd+vMY-i+${uhzLE8G_<2Zx}Lgx>lhu7mLc*|&r(m14r_2< z()d(}cxml9dyi3a>uI>Z`QYW9UK5yHJ7ju*@Bgg=t<=k{ov${3jV~JQR~Rj2=tdvRP|tg9k2t;|ob`(FF+`)k$clX;xXO~+XQUCrZ^STHw z3k(6_wlv?&TlT0#Li#rD25&vy>A*xQdvriREb*#o9xT zJ+LYUi;N_4>#-Bna9O9WDUP?k0W#&{txkf&Hg4GK}vNLp#U1CZdRCj^Zot+BgSa;M$Y#6 zy{$`~j7;&i?Qo<~0iU3!5UishJza$qOFOza?=W&r6QiHh6=rU9kT|b6?+La1!U%Ep z=b~vb*DDJ><{`4PzJEyO74fT705tjNB>xTM@;&@B$ zJ5!_*$$O!bAQZkO|EtsY`O`J0n+pwZ$wt^gMB}xM_q;$A0N4OBMyuL940E!p%!tEU zU+9b0QUdG!CYFft{hQ`@)k@-ynaQL>r6$ZQb#zw^PJO(K=XlQ>XJ!oDEe=UdA`1m$ ztYX?1Fi!2sE+V&5ye`?=MVp&k`?Ogchl@$ciZFNu0f<+yx-i@mdF#pTJs-J`40fC;AqbG;K}H*FJaa89#o!{YOju zis`8t+OJuW4mp=`^3rs1(sYpT|Mb`KzFnCf!V;AV?4!-VaQcsqV9p3)%+%tGm=_24 zK>Te>$<~#5W>ep_?TFaAZI9bNHSgCUL2@tBe7K;EH54EUSI5p^8ff`x5i z-0INQ?{-}8k|oCAE#0{k7&H0%9cOU(gRkoaj^uX>0Q|jz->N8=5zDNR6g}j0p4q&g zYUUnihuCne-W>!*ayodS!v>|9wFs<8Moh|n`x3gl>e@1f%hfGPLfMP74)4_Mwvw6b z<`|oaP|ic3_A{0u-@)%?FH&?-jhEzT@#SuF%X2UqKyTrHODc-yvDK%1>Vi&z=f*fAeYcx(B-Nfj8`)*dFF$4bD$(>yBS^TIgUJ4m&B#_pnFh^BF*m zex-|F+|q@3cxv&^Do=Xk-vfEVqd#}S7~%P4^MOkGt$hG5sA#*@ZpT~gl3yTZ`HXyF z_;O1=tw`qUN{{i=rKiWkt4%4+R&H<0e%bzl1cSbNr~2F<6U}HETVCiSG=EXJr-Hux zIj@$ruR?5ThEb6vs^sV$vXigck@H=34`-U>(aPbDDp3Tx8JJ>A|CAPYkzkMhdc-hM ztT~^XdJ4jN?F+htN_!luZy=dp9aT-DPD54yTzof(5)jC)gQNvY%u=MF<6Jb(+|k@fn;L@E%P+%@kf1xyE7rqPVb+B!p>W0*B|aaivG|YI--0lm zbV;AxNBl4dj8H$hB=PZ^vZ@saLv%9dF&#tfFhtuGog*jneJl>Ww!8=rZquUc8UsV# z6;PWHQQoviYn078AMFoua31$$70^U_5L#;Z6yGY;c>Z|b&_4w#IN0gRLyKdeg5M=3 zU;TK>zXL~k41Wl_$e9!4E&BZFKo!0bNQ|$>&nIc>SrSWYR8{oSR-ecUKl88VMWE)@ zce@96{DUnCdtQ^6(|V_~NEj z>3yUsDH?OP0Szo3C^xUn@H>E^H|!q7d!bEzGmflEwbbm#}R%2A}WX6A^|&4^5Aqw zr`pk8l0Zz>7XoCWMZC^cbIW3CA`_PL$li~r^V|c-=b>dna@gnBe#Y$)5-&YNgk5!4 z`o!uFh}Faw)0Q-X?l75AR?@8)qg-PKc8X_P#(ue7#pGk_ne$twhk2ujyWA+_h3oA9 zyZ+cFc$8Z^23I=&Vzi4OUVDzJH~%qvs$88XV9!BmY|QSex)A!VIE?W1Z7<{8gk4jv zzl}z=xbT$S-nwk6?Az2xj;yaMl!=B7q_BChb51;F>Fr!G=v%}XX)aOx^AoaBAD3Me z=4Y|exGE`9Bv#WOsvq*wr3`}ycjdPYS=tL+6lU-1BpvPB{9~au${KYBh*MOJ`=n$I zq*z)i4;=*}e}-##cs14dZWY>EVx;&7AEN2AMGA>u1r&i#{$T?OEq(QtlioHyg^(s*!y=HU)01;#YWZksH7y6eL9@3i6QB=ZUT9e2F{{~EJYMa9y zBVjc~-Qct}M?OrPSf}%E&b(eBo9)WFvPCQ>kUQ}#>gr8mON zD2d}yf=!D*tkoxFl89%$Ov6MVM>auocD;PkWGUQ8Yw%ohJ-e7vjKB3P{(kcNFLxy} zB$XGJymB!jvsxR=L1drVm7G zHl|c~K3hMU%+Bzu(Q35p>D!2kEFESMuLLQ+8eWBZ>)tzhAH}=D<7$k@3U{e}x_T1+ zV_w-5Kd&;EHihh)@(;z9naIg1QYA)KkGZ|y^i@&Eo{1ZthmnSM^hM9IufVi=mpbxB z>pLO!9}Hs@O@KB2{o91A%Qlv|TOQDmk1<9+|Al*Iq*fjGDV;bgJw9=#=-d^&2a=EK zpTA6u9SrY&`FYfpLHGjVHIy?kF?X9seQADq4_xiwhciy*%e{<>yTjY!A{`SO|d z^-GV5HSQ=^NNDFl8yt<+>8mx|(?=L+owwhIWNsDyA+v-3kH{dEL`#j!U*u^$!shnA zgUbJ94JEI5yLOs9#PNUIb{`w;nXmZeATw|s$u#G<`Wi9aOt7;^PxYM&W3A1@Pe76vBoj>0L zr#o8p72JGzeYKJ+H`4EY&DzGd+T182?txcz^Pqcj%A|jAQh0b>Tefz`G7fJzd~aK8 zn4RvZ$Ka16r0#a*lKGIBW44Ab@oI?WOD^Rj1qrmWW5i~J&HV8OT??%n5oQEDiyB{} z6l7sWRrJQ6SBk!d`Fg1!Ho2*FQM`E8^z7B4@$(c4_PG5uo4hC*dNMNsA$!G=z6(Ja z^mNJTn*AwetTPp+tiHwv(|@oE;A@0T#$@-X)w3w#sReC><~MQ3865CV^l(Ju1d7+$ax$~VoqcVq!-7zm2nmP z*2>A(hH(#oI6SqJ(-HaD?j+3##Nj;MUqBpAud0K9#q~rM&$orf#3M!~^X2G>E_Y6h z>L+K{d}($et>LvsU=c3C)J5L{vMSbq;Jv z!%{-@*iC!OpNK8Ezip%bJAG^)+t*qtFKStlJ=B($XvN3qUXmr4M0F1%w0C?}bSI5; zKyuV)m*c9#=@smXVX9 zv*bYmA2x`}Jq~*}D+Z0bjN!8Rg7zgQ zl``lpA5tyyhV@o?m>#A*frn~VRTPO*js3H+3e@@&lUYfaP@7lvEb<6G{W|Z$^@jX@ zIlu7d(u{u0=i~VOE@tC$7Btljq1O)vOP^ikD)@`m({OCGRsRL@dqAr|ba0B$h#mLf zWKJf!7rEGqYMv9G$!DE3QP{yh%DK9v`&|{bG#}(Vw_GogTmG5k#*bZ_!$i-u?9C?d zKF~^o5yuJRh+=8KjyJ&=xS6!ex)f_2-c8 zg&cvvHKly14MXGNWoMEXZCoXDUN)Wr`#C4JEGN#kMtl#_L$8NSb%{?cD<0E}d!Vrv zg}!7?zsrj*^d@s}&s<>?dONQ^V;4ukX~$XTNYo?YxcxLu0_-jQ7jpcV3Xe8$VnEEG zzQXsc_@81QXGp@9zsS|$_(a8VINP_=NKy(4z^E^)N7*)GEncVg)Jy&R_!2L{lO#i| zXYmo=H2S^-FAy86Pdj6IM|C(~@pP2Q-c>e;A?z2akw??d9Y%!3dwZF>(2?ojV)AS3 z5jU^=!Fa-6>if_;^(}@+mdUZ!;9bsl}G$hMO z3ZhtUZ}ljAf{YqQqp!;)QCn$r&()UYr`#CTaVhH)54spf-OX*)5K(v&oUeQz5mFd& zI<KAi;G~VDnh7!`3f-9g@|a-uGIZH-QsU%R6RY+>E6lP zH10fe;-B9}AvXFD_0}Zl7?#hd$#J;938cNw!(6p(F}`To{R%N%$mAtEfLhwh&yjC= zZ~_oLAt;x_T|$(pI+HBix_TCB>sxiChTs#u01Od;Y?w68vrI=-lCYq3>Wq{*iAjxa zN7WC-KeEwx=60^nMa`yht;j^O^<`urBBC!}5svjFMl3c&WbzJa*@au#R(=GpH(g_K@yT3fUqhjtd8Uv{*$Q6=)O<@x{TGLbJwMK0+ZcJ^{#WdykrVXsAwPbG*c-=Kv=2>nvF7GQ5n_v?NYAj;o zqQyD3!%rZUKBe#O)21G2MYv$DvGuu#JL9q@hC zedq}zE7~T0qfk;Av#ny0XH>(xIL&ttZS@Au?Qr2E|$zcFc{=u5F%L_tIeXzD4@8Xs><}J3E z9?7THPR(n8&N;-cq?K76+?dWsYtB?hL|ne)CGF|ozHlHUon2;ir8*H>qHCGFQ@cDN zMzV-WLPlr;R~?Dz_?2>;|6sbRO4#Z33U8tK99wpHUV#;|F*zc!8U@I4yxdbIY!IMg zR0}5LPb7tk%N7zFrJTPG$DM>EI8I@sT5s&*y(0-fBD8c|`dJ6V>=4S_(!|*&8kP z3?sOiHP1spBvk6#;!)|!<@?m+_rvPWbJ4;Nqu{uv5YZiNSDf>l9zG$c)0f@h&G4 z7ywY*BIl_R_!qui415vn9MY+9m#x$1+>~ym@-Y7zC&#HIXVR1R&XRghmV(qXj@I}! zxdT`lMRS6!AWAWhw!hIWn6d6#;l6GX2>Tr_hkY0ft{?sDJJ!GDIeIsdKG|l>cZO!y`gX((>1bJch zv;Yxa-V&k4hNKj7jI-|bWagZ)E6zJC>pijcLy9*ws3k|X)swdT@P_TC>^zyHMb$&O zaSm)*F4ezJF%-MGJ6Pef>1heSw|6A&$61W(>!e&f;uYNXIy>~P1^=f{!X!Q$i?1+I%lO?gOTm-4P!ZNS_YY6;RD@#DiyDYS-N!qZJZ zr9gcKMdzc8$DTh5bZ0M{hhl!RG^V&H!^Osa%`4|U_*~&5?)Rkj8e$SgLuBKoU*5`o zGH5j`pEU84EB{dt-NMX{4)@?dvO6pE$NUBz9H4H89Rt10_0(2?7+ZrbB9e) z;hSIhqR;MVK`>+2!#jL)va5Z;kCD3XMdYWi&sJ9OUF*~rd%rhr3~ws=uxaJ-4RQ4y z-a-0UlF@j3OIuwkwm>AsQzChlr%N$t8hDFvP4m^h@?_Rx72~#QF9NTo1>Q}Fz#+Jz z!2q#o6fgDRCda|MtF-|=@1RwX+ow8Hx*?80l-|tLjiWem`$MuRne(UPAHJDbCe;p_ zwshh?=!55t<83K=$$SN4PN@ys)k@-i9KEJ$obY}QM zY!bjRAVLJeDExrR^(z4J(uX3U=&J^4q)%y(f8;4e z2K@IE`o?Ts2uLFc!WBVfaabM7=^<&)2$*)^GoI9D^leXe5u0#GJ6dg#ohUvrZ>)xd z=%6LBCv(!H47qX8LMMjW&JttJ^v^P9nD07PZ*%titS-+rEl)dk61#E_@R4+t(A?ZyqKpdXPp_=OZ_NMjbV>M} z)jz$(gXTqD!zqzX=6GCdvY|MxO2)%tRKssvL#Yeizb_bYy>q2QwOyxV+@FU3U}Hg_OGxK%*;r`wWiuFYi|Jpsz^_e z;W2fha*(JYD{I`RuQA1K?Md;!L)f}rQAcy56nroMpHU7oo&HGon6r18sWXm3HE4YM zR=@{r@KKfl)4bu}hr0%vxuOsxG-H%OJ+kMnGjmfnuk167&l}rthh}gfk3om3N2YHq zho+7xjnHMur2JGeYK)^XHt><4C|U7ZW;i(ocnvYS2%apNjOII?vH0yg-7s5LV2~e; z&w%+dz&O~gXs7dCJM-f~nJb3D!MiZ+SY4i(qDz;f6F%#iAG=u#bWDER=q1+g>g(gS zLE41L3%%V7W!GgmcpiEvk=@}V>}iAlLYk&6at0#Pb<;V}VM++uMU(s}HJo+feP-5R znWTVkT_H*QwWIW;i^W8)?J0IWiTr+!u>=2c&xym`pzglY`qU}Yi%ZXz@yc8M)2zjD zf9Y?ha;|H-RG+;oV3eS-S?n_*L&TET73J{zM&LtP9Ul7{FD(RSARe3;-_f8J4X;(( z3l+S$?y#Nh5sAcVho|Hv^W;0EAQmssyy#aNJ+*FXYOu*;7pGbKlKv!AAcv-9Jjgf_ z+XGLv$eYGn=c2h&_^KMWaJ1#RDxvzoKpJv4H(qMbi`@LYTh{7Vhb>sJlw%aDzV1gnL_u(~vZ zeQ_JqlTV#?iMvlfW}Y!3tM$!gVan7xLJ*gLcI-;PbTLDx;xhI63&@!?((5XG*eLak`#2jH z^Kv~;y3bOwFlJd$M1i+DX1{C7`K{BByR>^CRwJQgU{|x(%os$>v~ewsF5|rPIhz)v zDjz-shSQfmehw0_7}b8LJDD?Wk52e>7df>)+vG|qT(!|Bh;%|i=&@q1rvO;Srt%Db z(?Rb$u~zbwjXTc;ZS70{17v+S;hi@f!lDzcAqD2HJRT1a0w1hKsvZWdzzZSQ`jUux zY#hS(_O_c=D)YLLp~m)s^He!^#PHdzr+u7|hPPdu)+V5s?jB|OC!^bFAW0xI=dQ#cp z@olWdNl?QtIkzJ=t2I)P(80I0IW9_gDO5bUy&+(4BT z%Gf}Abso=q0C)1uJy4w-#j5e1y7i7W`mnix@-2Fk4nkPK(4#lOO6x5y3GJ81XJ9EV zrX2YmXz;$-+v#AOzXz;@FRl(Uuanz`=9{szB}doV_V0mb;9VxY`IpdcH-YC}-rj~# zTUwrpt=AJ}oX;mEh9|Jk_UKXyN^d*0vOX2LxI!H3WJ%qG5gvjaEHk=gpE@Zven;d% z1I1h7U3_P*)I1}&f~QlwN6`dt&d?m4AJ=8fTh>!lCtAQ@bZM3hJZjG+=BG1)g3~?d1BYO^5;itV}5C)h_ClwwQV^b49 zf4%CRF;^==O|Vgpxu>p7*Q02(voR^(bm_YIE3r!GFJa}h3=L0`mQ^&q)lQK7g7KMW z0F{NiZ3$t7<<1_b-fLu32M^E=KrwmLv05~;s|`eo#5+<;Vyue>V_=WeJ9zqwFT3jQEhbyFY}TpsnUyA%G_`;D&YUuVF05%`Yq>S z#*z8Uwhg^Qi7XD`s~I_NwH~u_{=2%hNycW*ac)Lq$$Fn?70$k6Ua|m zv@P6cx82s9A*Pp>G)#q5Ri^JpElsgG)lJ0-48(1n5!Oo7pT$cGHh+bLYou{V<(hEB zcEFPcGH9)z3}1Xa{hq}`YlKZWKxXeA8L3xgNV^kS8nCk$+ilxNYvD^vZ^*~v#r{$N?%4w)x&7ajaN*`)eS)Z zg8ks`9|qp655r-ghj!OGNoT}kN$|Ourb;;Gt8e3PsF^URL+H|AbOiAf<6kGlmNHc4 zar5rSR9ckt|IQ>m@(8_M+I&2SZw+xpshmm-nE5gcJ~&C(=BAa2*NvgCjK-B-4vlQ6 zF%7g|Dq}`|Ku2a?%kX~MvFj^QdEDoNDffFItSIXm9eeVl@)w{Waq2%IAA<47gG<7|-+j+f{ z$923!J&tK8Nv=v>To&KO9rSVi=zsV?N1jViH%*i&rpj`7D2)!rlfFi(Q=^6>G}Ha` z!>YchC<@P$(^6VoH}Q_mM>e!QgT&jHf1Q096$Hp)5eD&nI!k#5@&KHJ&Ia?3fFGCG z%gfeH@9kLf;yl-#A#q>3-~UKU0$F3|dWqF^&0SNmj+Ix-Sh9N^YpZ51wBk+#CID=t z2HNrD+pKz>ygYT$#Y+~zeT%QQEoQjNL_ah%oTGv9>;p#a9kI3l!P^_oZ?5>BtFfi{ zPfhCiJRvdXc3rC*Op#8W|BJV;42x^cx-29C5`qQy0KwgzkOV0lg1fuBLr8Fk0KtPh zg}WrUJ5+FYcPDeWx6{)--Sc(NC-bA8Q-3(rsd~4rwbv$HJJphQmEG$seMcEsy!B!| z`)ICY$5_5W$qDhNOx*|kwbO?(6u#SPZ`71!?}D#NIb)aFkxJKTIXn)+KzD_%_pulH zUz+MK0fsPvR-jAn4!YY^LR8bs?z+-5C)##WKUSnQLZJ7=@w~u$HfLw-Iw>NNEB*xQ zne{81B)l@v(Au?{U*UE60H&UWb^R~UOAT48*N~vIE5o{mF$DvLDr$AfMiV(Be*_^O z(-o&x`ce44Kz;l@gowXS?mcSvIUJsB-o1kUVfiBqV9auE!)V#*9wTx;L>_pR&lBP| zp0)Rj8*L%~yXQld0w(>=5pbdi(#rt@RtHBCU-1OwjuZ&NT_~6jD zdxo=J|5aw&zHahb%IcX%|G~tOd2_C5QcW#@fa-6n%tY7DZa$|o`P$vc=K_y__oK_} zg_qI4PG%3RO1@QAhs=!OF4g+O+lgR25uZSQBF7Da@qHrrVYnda7ihTdezV`5Y431V zTFhX_M{kV$<>zQ?s?*meR|6sBb9n`A@xT}x+|%a3?=3GAJ=q%=vsPZnkmvMRF`e}z zXqaMK6)`F(5qsl`$E-=PwLXzEetj0Qarf>Q2;=$TmBh-*0`7bFp4*P;E()h;vCB*s zV^U)IYyz#%x(ec_bSt|mnw9R(jN95+BaV`}jbl}zd=|ZE*|njFTrXjT1r75y?Zx5a zDPnsmPL->@lxN?K9#r#P%-UGsMIXIkhzMbQGbaPWTZ^LIcNOYN$E7SNqzWvSu{yiv zn&UPyim|E#8AO+1Bcx^f3CdZ}0#hSAiR&xJ&r!j{5ZMo(C-@}`%(ZE4&<1HKznOqX zN1sj@c72B#22m4ka&K~+)qZLMtNsmzOmrL+e+y616R7@ej?z z*`}Ex=flO1l^UJ4*+oNOly&C9)HwZ7oqh=c#P&OI3Ch?Vvn6AoO&wgM(k>f2vQ;|g%q%m!LJYPf`0q$en@ zWL4-LL3r-?i&wQ7oc_mj3R;l0MWI=J6QkFk6B)+8p*Dfsz7x5p$&6{mSXzgV?`jK} zdLwkL&~W#b=C_Jqs?fCk5n2>w9guyzMRvpBVwDUhpd<}pu@6w(BDvUUe9@Hk3Z`+j z$){R=kqUNdtU9t(1U0B4E8mRir}b5DV$};#i#Q{Q&P`O7hjDwCWzlBMoiW6_s5(Zw ze!diou16xr<=*}D$&UxNrQXlAv}CoeCXO;d5tT5y%*ctH)Q_7q;{0gR%jgIo7JDqm zf1QmTDwi!A$S;QddW7jP@$~{j438>Lcrj1{Cq!VbW~7<#I<*;7UdyE7cTn`qIMxw= z=(MCFk*^qZ3kP!R@`pQ-Q;bR<%me_6G&I`NA1ClBkAXgx@vZfYlHRGTC1zNHz zo%;oXeuxsx%W?H`o5ac;J;lwpSB~NF2)auSCI_ZMkk7l#BdVN&YP9Hmb$L%5CL$kd z=y;o{C6j2U+Kuk0r9 zuLYZ_mKHlyy@_}5=Q}SGIjTDY464FKtr?XjM7fssV6+uvrAz|&M9d`or9?y|Vw%!= z#!>*J+lyoMki<*}^-j>~h17K|#<~^#XxSwSAF2o*LGm|vCknXZ(&mx{*Vqo6hOXS( z1BkJi4t!MoR#A+&60RKEcaU=tG0m||(JB*~bg@M&aEH6XqPDl6GD-KcsODlG*;pLj zozaH2ecKL_>M`>Vq5Y?9Me>8!K={=W*Z=)JyEA=nMP~|ppi`ya#}_WhQWYNv>%bxX zrs+s25^itLEMqs}<)Z_$eR;{Nonw)&3SQSzmx^tt9GN8&H{#|&fJZ^ax(tXcXfH8! z<}E4giPF&!bHMKb>6T{rl47uZ+Oar!U~fBt<^}7Rsog-XP>=X*PewC=Oh5}R`zO~Wpg_)t8Eo>#3Z`rYq$bIUaS^l1v>>lrXecKp@jt9dQ9lYrG z9$(J675ac-LtW@d!*Brbn~yV`C5L*kw#)dZ&69mLCiv{?=~oCM6Jjt4pH$@5ngdf9u1!s1hEb{K$c8`S{C}h@k98xe5cE6%pe$%Kve)~%nd~*d3s=&% zk-vdk7q_8K_(8gk%{-tLEW|(fpC(#ZO8-H$=rP8H*r?23DK9?iDmW0^ovF0h-~pIA zc=?Ax{=8d5Nrci}_du-39jhZ=mvdSkDTaMp#a}Kdu9{7w~jc?o`Hv zYP|8xj|<-#)dXpEjYZb4r|u~(Er%e;KV0y>)S*^+;bb;1glecw_;c6d_DKvp9%8NLszyIw> z>~yftUPHa{cO3QrS`tlM80ltdd=mFibtL&f0E->&yTJ-+xuhy%+6W>CXaqc zSAa|U=?A)j1R%T?|nR*P74q7VFMP1AUrhGpQA0yzO!=atl6yLY6&0dnE}pg$b`Z}8&gaEY?^zWgY@kIHQ=SvpCQ zhu9!x>F`Y+#Xb@l^>%n2fT{Gv?Jrg`*1t#(aq_~pVbGDU0cSdYp)n4s?J2r@UmP|^ z3`>k^6Tec-G{xErwt1R!BlM&8ge!wi>P8))$9F~k!_e}7oQ`M4Zy-_x@Z?5t)j1H- z9>7G`#Lr~a&lKD8(Fo+js?%{Y=-ISZy&7jYz(44x#=e;GP|f!F3aV&wHG1u4hyntt zrLQ@)Q`G|axEl?T@0v^~my2<=u;fz^7gXEU?mowd9oNCc5HfS@ax$Tt;RwyZcFWhc z#7gxv`Sm`G(!*O{t8<^swkX5c#R!9pi+Hyah`Ha_2Q2MyPDu(>O4GR^=cM9ghSe;x zum##S`VE8v?ULDV$iX%oMT7WwRfDX21idN6(dHFlvrOazWEi`zaN$Xvdbk;Li~IHL zC@Wv=m_wsAy8P9DV31IL7#`^8G8`s9s3W0XEwzzJK%f}ZAJ!Q

3Fp@EosNw>e|n!(aWqFiK@pF%%4%j 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 LzM6_w?Eg0b@$B4r literal 0 HcmV?d00001 diff --git a/docs/lib-shear.md b/docs/lib-shear.md new file mode 100644 index 00000000..66c069d5 --- /dev/null +++ b/docs/lib-shear.md @@ -0,0 +1,49 @@ +# shear + +Shear all child elements along the X-axis, Y-axis, or Z-axis in 3D. + +## Parameters + +- `sx` : An array `[SHy, SHz]`. The new coordinates of child elements are `(x + SHy * y + SHz * z, y, z)`. +- `sy` : An array `[SHx, SHz]`. The new coordinates of child elements are `(x, y + SHx * x + SHz * z, z)`. +- `sz` : An array `[SHx, SHy]`. The new coordinates of child elements are `(x, y, z + SHx * x + SHy * y)`. + +## Examples + + include ; + + color("red") { + shear(sx = [1, 0]) + cube(1); + + translate([2, 0, 0]) shear(sx = [0, 1]) + cube(1); + + translate([4, 0, 0]) shear(sx = [1, 1]) + cube(1); + } + + translate([0, -3, 0]) color("green") { + shear(sy = [1, 0]) + cube(1); + + translate([2, 0, 0]) shear(sy = [0, 1]) + cube(1); + + translate([4, 0, 0]) shear(sy = [1, 1]) + cube(1); + } + + translate([0, -5, 0]) color("blue") { + shear(sz = [1, 0]) + cube(1); + + translate([2, 0, 0]) shear(sz = [0, 1]) + cube(1); + + translate([4, 0, 0]) shear(sz = [1, 1]) + cube(1); + } + +![shear](images/lib-shear-1.JPG) +