From 7960c996deda5e562cd1e5b352a8c80e44b6379b Mon Sep 17 00:00:00 2001 From: Ivan Vlasov Date: Mon, 29 Jan 2024 15:36:37 -0500 Subject: [PATCH 1/2] Autotest for translate, rotate, scale --- .../mayaUsd/render/mayaToHydra/CMakeLists.txt | 1 + .../TransformsTest/cube_parent_moved.png | Bin 0 -> 2102 bytes .../cube_parent_moved_rotated.png | Bin 0 -> 3206 bytes .../cube_parent_moved_rotated_scaled.png | Bin 0 -> 4364 bytes .../TransformsTest/cube_scaled.png | Bin 0 -> 3010 bytes .../TransformsTest/cube_scaled_moved.png | Bin 0 -> 2658 bytes .../cube_scaled_moved_rotated.png | Bin 0 -> 2133 bytes .../TransformsTest/cube_untransformed.png | Bin 0 -> 2229 bytes .../TransformsTest/usd_cube_parent_moved.png | Bin 0 -> 1981 bytes .../usd_cube_parent_moved_rotated.png | Bin 0 -> 2608 bytes .../usd_cube_parent_moved_rotated_scaled.png | Bin 0 -> 4089 bytes .../TransformsTest/usd_cube_scaled.png | Bin 0 -> 2764 bytes .../TransformsTest/usd_cube_scaled_moved.png | Bin 0 -> 2517 bytes .../usd_cube_scaled_moved_rotated.png | Bin 0 -> 2000 bytes .../TransformsTest/usd_cube_untransformed.png | Bin 0 -> 2250 bytes .../render/mayaToHydra/testTransforms.py | 108 ++++++++++++++++++ 16 files changed, 109 insertions(+) create mode 100644 test/lib/mayaUsd/render/mayaToHydra/TransformsTest/cube_parent_moved.png create mode 100644 test/lib/mayaUsd/render/mayaToHydra/TransformsTest/cube_parent_moved_rotated.png create mode 100644 test/lib/mayaUsd/render/mayaToHydra/TransformsTest/cube_parent_moved_rotated_scaled.png create mode 100644 test/lib/mayaUsd/render/mayaToHydra/TransformsTest/cube_scaled.png create mode 100644 test/lib/mayaUsd/render/mayaToHydra/TransformsTest/cube_scaled_moved.png create mode 100644 test/lib/mayaUsd/render/mayaToHydra/TransformsTest/cube_scaled_moved_rotated.png create mode 100644 test/lib/mayaUsd/render/mayaToHydra/TransformsTest/cube_untransformed.png create mode 100644 test/lib/mayaUsd/render/mayaToHydra/TransformsTest/usd_cube_parent_moved.png create mode 100644 test/lib/mayaUsd/render/mayaToHydra/TransformsTest/usd_cube_parent_moved_rotated.png create mode 100644 test/lib/mayaUsd/render/mayaToHydra/TransformsTest/usd_cube_parent_moved_rotated_scaled.png create mode 100644 test/lib/mayaUsd/render/mayaToHydra/TransformsTest/usd_cube_scaled.png create mode 100644 test/lib/mayaUsd/render/mayaToHydra/TransformsTest/usd_cube_scaled_moved.png create mode 100644 test/lib/mayaUsd/render/mayaToHydra/TransformsTest/usd_cube_scaled_moved_rotated.png create mode 100644 test/lib/mayaUsd/render/mayaToHydra/TransformsTest/usd_cube_untransformed.png create mode 100644 test/lib/mayaUsd/render/mayaToHydra/testTransforms.py diff --git a/test/lib/mayaUsd/render/mayaToHydra/CMakeLists.txt b/test/lib/mayaUsd/render/mayaToHydra/CMakeLists.txt index 1e47a21e3e..a5726831dc 100644 --- a/test/lib/mayaUsd/render/mayaToHydra/CMakeLists.txt +++ b/test/lib/mayaUsd/render/mayaToHydra/CMakeLists.txt @@ -11,6 +11,7 @@ set(TEST_SCRIPT_FILES testRendererSwitching.py testSceneBrowser.py testStageAddPrim.py + testTransforms.py testNewSceneWithStage.py testDirectionalLights.py testFlowViewportAPI.py diff --git a/test/lib/mayaUsd/render/mayaToHydra/TransformsTest/cube_parent_moved.png b/test/lib/mayaUsd/render/mayaToHydra/TransformsTest/cube_parent_moved.png new file mode 100644 index 0000000000000000000000000000000000000000..33e6da91ce2fa3f92a685dce553e7664f5476070 GIT binary patch literal 2102 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 literal 0 HcmV?d00001 diff --git a/test/lib/mayaUsd/render/mayaToHydra/TransformsTest/cube_parent_moved_rotated_scaled.png b/test/lib/mayaUsd/render/mayaToHydra/TransformsTest/cube_parent_moved_rotated_scaled.png new file mode 100644 index 0000000000000000000000000000000000000000..8e9c3e7e554b11f12105c63f9a34339aa5b16f40 GIT binary patch literal 4364 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 literal 0 HcmV?d00001 diff --git a/test/lib/mayaUsd/render/mayaToHydra/TransformsTest/cube_scaled.png b/test/lib/mayaUsd/render/mayaToHydra/TransformsTest/cube_scaled.png new file mode 100644 index 0000000000000000000000000000000000000000..880f4776aed075e5783bd609ae958536d4f4fd62 GIT binary patch literal 3010 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 literal 0 HcmV?d00001 diff --git a/test/lib/mayaUsd/render/mayaToHydra/TransformsTest/cube_scaled_moved_rotated.png b/test/lib/mayaUsd/render/mayaToHydra/TransformsTest/cube_scaled_moved_rotated.png new file mode 100644 index 0000000000000000000000000000000000000000..10563d0912e2508dea0b82cba2eef4a7e64fb5d5 GIT binary patch literal 2133 zcmeAS@N?(olHy`uVBq!ia0y~yV4MKL9Be?5hW%z|fD~V9glC$suNIKWzyTr{7^Xen z9tos4^WEHv!2%%Sme#g&3=Hg-JzX3_D(1Ys>zF6vF41stMg@EN!B4yv9Nl+RPWl#2 zws>wJ9hP>K?MAyBlOTJ}XG2@lbyfaOIo^wo#b5Q`{`}3;)6@4e9O$nys$yiY@nd3g zP*Pw}8Sd2c#o`AZe|&a!_I>yDjkUJb-`>pcuV3f3zWKPLL&b#e@9*#5v2*9o&(gV{Z^j*`+Iw<4Xb2jj+b2)5tMUs*m3>q*RS^% zUq4VN8U9It>CoJ`y;Z7m-9_9F?U)XgOUAA}tI_?NgX4Z`No$~3xuC$llP4#if5W=( z`Ss`L=l91ktEWlF?ydX#YyHL74@`1?KYa7%&1LVl#n%sI7BWAqpJTBTs6Ss&;9qig z`+tk)(K0$a&T@3?_pIB|9VoVaXXA&XXV3NutCbg7Kh0)3q<*_1$vUwwj(vIVZDqH} z8a0IeBk#jDJ0v!Wn%(y6OfB2rGgIF5R!ShAjk+Z)$ zh;6O?aDQLz@7pg*KkTS9PszCivs6I01kHlHIIkUl9 zkJ!}nzwvZvxNC9bjIRTO2TMv)oLY)WbwM6jr|@SE)x|fPi-kd!GAam8I4P-U(6!gx z9>S@d*d6$0?@vw+hRz0t-5-P={$WWevO97hj)kSc1sGI;UTzz|KT`+!VH1P8W8c|% z(am6Mnf6>@edFlR&|I7m2^3*}{&%q{#|fsI8I86aAj5PHC{LA{ZM&TfY>%sjV3E$Z zTUKCG#UAdgd2oS+#X_TfYAHnVq0=og-Fvt7fx_8hn|iXIp58gP^~^KcrNIuH09FMI os8QZ%5R9e*YGj0y`wvQI)Wubu5CYcnxLX4Zp00i_>zopr0Hyb$zW@LL literal 0 HcmV?d00001 diff --git a/test/lib/mayaUsd/render/mayaToHydra/TransformsTest/cube_untransformed.png b/test/lib/mayaUsd/render/mayaToHydra/TransformsTest/cube_untransformed.png new file mode 100644 index 0000000000000000000000000000000000000000..2191ccf418cb0c57fcccfd01bd9f2d291dd16242 GIT binary patch literal 2229 zcmeAS@N?(olHy`uVBq!ia0y~yV4MKL9Be?5hW%z|fD~V9glC$suNIKWzyTr{7^Xen z9tos4^WEHv!2%%Sme#g&Ko!QGE{-7;bKc(d_Y=vKX-Jg0u)*Nv(!%6tOhv3St0$bf z<6?ViPRbV^z0!v}0?pOjeE$fa4d_#`Xxv!Ix@z^S%1K_#ia)+Ci>nKje>%0fxmlON zVs-qnI0lBxDhdoLOiT_+qts{+prwLM#^0C{F7K)RUH1ROj?aI7ey%?J{QCO%`hw5T z&i+39dWUxNStW%JXS>Dq-|egXoYryt-^ca*^X=>YRK$BcsAf8}=x_P09~Zy#DN5Rj z2@42_z1otQ9J@>i$ajkWr|f4e6B6?m40nB)j*u-(36~BVBz5Hd$(^l|0eaI zy>0T_)#2;w>}?*}?RarFB>BgWkB`^4zklEVaPQkUZ~pAvz592`8`FdR6*H737gQAO z{ru$Qa>zRkcjH!pEg;q4UsG?W*r_zs_5BY zItA!TnQGn*dW?xib7B%Vb8s+pHZV+pQ;kx;dcK0e8+FRw&ZuVXfu%8cTc`rw?GUShi~4!vzzPf(N@9p@WUMa zWx!BdquHLqas2J=?e)TZ%X}PW>{&d4M}B|Z->Uj2PygsYOz>lAxhdgy%Kf{bnXbyA zgEGMMVLWGv`O{6)3JlW2`S|#b#WBasNEE94_U7i@)AKy`y#1DCl}P>Dt3WcZ&xp*2($|W>*bL ze>gi>%>5t0)!^d5;K9N&N{t2q-BQ6nM)B90KC8mBX8>CfxLX?xp00i_>zopr04f@G Ayx@pKqI{ z%GlVv!y{dlF;PmQ zoU%f}jPKvS-!BKcNkCxQhZs4akdM0D>zl=40s_m5SMHu?o6gFZXjRX9cqR)A-xH;| zqAV>h|1dQgb8-ZC9=H28?yG=(aCDG325tL3I)n~mn1zMB#yCK-8udH9c#gq_4}1RZLAjjv%3HIOK*2)+dYKRHSXlC$?nwHAwdEaJo+jZ7bh;ud(4{baPkraVHj;J|hLv7z zpU*CRZ72-%J+xG7`@HQu#Pm_X&@=T&D~B*88NIPu=S Y8Otzopr0RCyFCIA2c literal 0 HcmV?d00001 diff --git a/test/lib/mayaUsd/render/mayaToHydra/TransformsTest/usd_cube_parent_moved_rotated.png b/test/lib/mayaUsd/render/mayaToHydra/TransformsTest/usd_cube_parent_moved_rotated.png new file mode 100644 index 0000000000000000000000000000000000000000..bbb2fc77017ebdba6a3ecb20137db945862c2931 GIT binary patch literal 2608 zcmeHJYdDl?82)CA8Z;WVku>xT6`9$n6lw4^OQp@Ql`%70#4MqMVJNXq87`UzX&uTb z(IzualN~uUG|9+mDThu7Zk$$fU!ShdlUc=Nh=4v3RWU(_q4!4-IH$b<=|ipQvkgJ0FXLT!GME`-+=?1ufhtv zG8VVNTCu(D{^P-!lf72F<1RphzbuYM^C2Tgo;A0V#Ao;=cV2eef6Rv^ zIF%CVofjiaaTwfjwWY1Ct$CM;qK^}9lca$O$apu+naaxO2qsGaV7%(ZtTJGF1c`)f zAs`No1~d=|P#*+rQK-ncNC2yW1@ymNejCDnx(TL3kD^yQQmIt+YKi*jK19^EEqaRS zej7=sVrr(R#BF(Ts<(Q?13ANQ81nDw0kSf(EsaW*umn_ZCtl+}@%t*g=_~+oyv*SIFo6}5|Iq#cNY89M2 z?KWvu5@58crfbLK$03=Gb&gf&g<(ZgS@%0{0V(P5h@eiyoK3P3CVqL5<=Kzg9v@S~U>AP+> zj^g&o&sca}5~k5Esq$Rq&*9Ety_tj!@iY>!QgIX>itDQFYjGvOBp>ze`CZ2!ml+C5 zL40I;WiH<3`=f&cWv)yEFwm2{# zt_XT@la?qLt_)vVNOVk`J-W-$y$nZ_G2lKYN!UFeL8Q|$PDBJjA1{FG_-+M-t^Qph zHHJK<3YvJ|awnVz&*Bc3#gXJv`Q(@n`rJ#W1n?XX%yiC*lc!9jv%Ua zuXJ#o%(?nv-@_!$wF*dE6ER>YU@3-solFKEge}hfps?1~IY>v#vK?v-o8_k(QTguD z4!&m6!9+dXi1|-;7TRVApWlK5hq?qVG7~q+I`u*j$HV*2>9MI z%Yu|hGl*P8z;{w1U~JZJx18T zsw}ls%h#YadT6Z{{)zO7!|luoh8k8#z)g0Y7b&TMPMG4%-Kwt<|`d7iQm6cuI2rGI;ZJ2N6MKkVTJ}7RQFNP~4b3mATvTPUhwv4By_3a#tJV zxl)Mkn}zcTg7%THG|}0ZVAA?mtfb@?CL*;3yC literal 0 HcmV?d00001 diff --git a/test/lib/mayaUsd/render/mayaToHydra/TransformsTest/usd_cube_parent_moved_rotated_scaled.png b/test/lib/mayaUsd/render/mayaToHydra/TransformsTest/usd_cube_parent_moved_rotated_scaled.png new file mode 100644 index 0000000000000000000000000000000000000000..729f6d7e6e3195f7dd1097737b78f04b2e091d57 GIT binary patch literal 4089 zcmeHKdpMM9*Pj_Pjb<2=oDDq`${^IPF`GOMHuY+gBC`?WP|A*xXmXs1k#d?|W#m*+ zDB~<=CB!u3P~^(_oTfc#B0~5c`;YJY=X>A(-|Kq+cLIUUGeC*tb6S~k8Cb>1hV5uLgsgT$n@Y`=e ze*;^?pl($c3?_5+nB~#aj7-spd4QUudiz9-Jz({){8zpGS_YJ(J8$6&eq!D}_85c7 zmUvjSbToZPPtr!ALgedea;?haZR}6>idNHxTLX(lVNqAlbNpnW&Rum`y5)bgo5>G!{LA>2$S4_hf$D7CjS3hDven0idghnDOw7KwS>M{LiJR4 zn{WO!U!EU}a@g2NHsAQs|LM~w+6WO5>&Y@qj~DL^2?LrrW< z;z%XgfVg?q&gbY_CJSHXPcqO&3$yvxt7_R+d~NYw0V0ry9X!V>O+C>Pcygs%Y^hM$ zfuQ+Vw0XV6utKQ7ux|og&sn3#02||%sGN)zz_X@tJlb!#Qp{$+}6lwqGqsAYt}2?{x<5LcNnfE zrl1EKbW^Y~ZZ0F=55G~T$FXenig1$b^J47*2!ZkD{;86--C@Apo9(lvgHpjYY{#3+ zAt5C^(Ws2BksAfk?v?b*|tEgD``X`(4 z{y8p9qPq0AJ?ifkvh>oDP{xRff(})op)}UpWAb*iJYuQ>+@?vWy<@JZqoZTpW#M6( z-K@f7OrOT}`MFChb|OA7>C>~nQVk8Tdu&Vx$GdkVv}>%U3%nlwU&a-jprf_XSiFh; ze49vdRgeo0uXF=djwsB9qLQ)${q6tGY^q)Cz;lJkh8$c=5cV@>CWN*4207AUTpvxTV&l$DdMDTJdCTm% zdazZ3h&*(l9;Hcu_)&U~s*e|s8xxU}=gPpC=)xbdi^mL#PVc|_p_e^wm&R4HZr+#5aogvW8nBI6e^@^EroKvjk`Lf*$zgFo&0X%SYl58-#01AX8 zZ2Qa6(b0jF_1|eAu5TjoHLll;X0@MC&|_TI!u|y1Ker1_xlzq{^Y( z)_#l5Ppe2&jAIyHja)x)X2RmieYYEj2?YnNb5NeaO+x~AnT>9_po;g(arCBs0jo}@ zJT2vJ0PQB)wfky$T8643gbM}k#B9E&L9rV!3IAL{NsE6BB^ZECVlYaDpbQ9#9)KVZ z(y0A;T-TVy4jHBF7kP6dS<%rF<|PupO*$!qImShNK_yk`^wMSe^pNy!8r z55FVF8iCkJC&sI9m$YrgX9gAF2r$YM_OSmY|2HzfUg~&cZ+-0NAtS zDKbc;ZW+ZliwSDs`Yu4i3eqr!vjjZ+A6kI@J$XtY5-D3s@x9Fi5s(HXWFspN7VW^> zJVZi{v=E4!B>Q|wymr>8q=0}jTDT=3f0f|>ihXFIw+_Hblc$`6^iAw_4*Xps025*i z4~bM62eT3&L1S|gnc!{#Mtoi4o}}bK@AKzBLifT%!CA3) z{gfXWu6^2}S^Vbk*l?(L(&~q~S6JAZZ__`n-);Q6C|z_%cD{M~k#M+-Qt+v(F>Kj? z1W)Z zF3z+wI>Iy{Ua3|W0{$~h5;o^>cJcK$yer$v$Ms^=y(8)_Lg}Pmy}JB_(R1tBsAV<9 z_k&n0UYX=8BsB{kSo!I5nlU+6KEdIe>&uWSyl7ot?>;F5Irp_DzYeyPF+dU zbknUa6cjy85Yy{#osB_wvN_bPNEWplKte&viCOxemoBN@9ddeBf{LwN(pa^^^}T*D zTpYUe7j=+vr$2D{%gC6YJ67sa?pCOS#wEDw!nu*Q8*@hjDbn{^CPL(c%HFoil}uU0 z+ddgC77&ul$*s|~O4HDt#q9Hzu@-%1K9QEipVvq@MgsB^vzzPqJE;jrO@We^TVW~v zlMY5kM+#c0k{Pl%-*%7c(p&G|z1v+~9w#f~8=t(-A&U-XY?FzT(J$AXU{+oFsX1W` z6|6`SZU9mkdvG4WZn0;+i{h;PxqJ6=3Y->^o5f=Axbb?px$eDK@0XYyzEbkH#-}4A zBl(l?z}zEjA9klp8(q!`E#-!DmaHNu}a;U&u5%?G9K`HM9UtW8T!%)Pk?GT9c9k@)60*%uJ3m zQR9Y6&_4l&`vxj0x12l@QuFLt@Lu&E?m;;1fd3izsej1hiF>rCgm~PX`%|Wz`e!${ zHacXqaC_2dw8Qj$SmWjTr{U+!TucSRAAePJZ-{p8F_ihFU_)cO>Q4#j^_baxJ|N~k z>6*)X`j6Y?hVG8$c?`8(e}wP$gG}%;X(g4|M`>%A*My|O0eBym3Juo&Z$+VoLQ9bNfOiP@e8(NCThB% z-Gw>{ujJiCy;Yrnh4$Ejp+9;a(qU%D)*!Cwzi{2F4hE!C0c=sDYnnbmOQmGPiNs7i zsK{|TYtSj1^y*`OBT`bTsFo@B;f#%l;jG*wmo8=VUfzL7aN1^XkpkamT*OhCC^cpd zrc2wT${YKbT1xOAePGJ{a)vKAftLa*@+2I**a>R5Uf3VKSHN5Q&hVAQc&P`DZ_wVi z>@uacHbQ&C!M4-Q;>lO>3uA{gl)&UVNxl-%`(3|=3OHXUX=BvK3Oz_TJ1a4pm%)_F zAQV{ppP?!@Wd_T0<}lRYU}t4mz!iCpXO?{VaS~68Ia7z_>k_Byh8&%?HC?R3+60bZ zs8wWW=XuWxux|6ntPT}l9H3VTg1y_QQZ5RmwaGSkA|3fXAORS%Dao(93c%mIM+C+2m>?zRqylfJEQ;Z{+qV(KPx$$O^LjYHo7wGQif?-McY}?Ag!-0TEi$2 zBdG2yZHc&LUAkg?iViAzjIhdBcQu$6p(Sc!&e=cr&;4i4{P8}|bAInRzxREg^FGh> z%Rc>?kLnS^5d;FEO7rzPgFqnj4;QGcKscSp2Ng~&Hk9_czduP4BEUm~Kya5@=n99q zeB#8FUx7n2LHg$q0&(Od&CC643V&@XAVHH(xIOdC5M!SBwcg;7##>c8UH-zDwRsCcc@nC*H8-SB!~+y;WMHlwjkSo}Nh%4A(Itlx7{`SC2}(+N?jv0uXPL zutwjR{mR4RBsB%QStYk41jsaW9!ma|x?r0rkS5A(g zwl&m;N>1I|UK^5vM}C zu7*=vqM8FxCbnR=giJn$oOu9!OM$yihoRwIPoYVer)@`Ny0SFHvV^K#m>t75RqKsL z&GZgSNd6|>n+LoG1zwar|E9N`Tw5QiNV%cOUg?FP1=3Y60O_c=5%%+;`5FG)13bz@ z3yS%4=D~3koXgmr@JNohH1lXd3~vDt2}4Vp;XDPPCok+wV0R0};pz@T)5XMGPnCn- zZ+lw7O#g%^w;df_zH|1xZz_ncReZO{xAQ@ChbA_CIjPgt+c#CsCvOLrjDjui;R?#T zkw1Z8lf9QOl-ZW72eu5xdM9NuZ5O}P>kC`gSseo4TC3_iO-)Uu+267!Wz5KRKjNhQ zSX@bkTLvX{XMO60fGr-HG*uh#1yB}TLwcFw!Uv9HW=AiY66<^IP2}^WtLu&MEM8sX zySiVSYvNs3$I{lziN*hIv#@Kh*5m@E%NYf`>RWQcL2$=~wJ|U0%QNWY?~)&Rw%NE` z-(KB$oR_%^g3O|m%QskS6jg^678_9HM#=-RCygP3T zQ$X}99(DW)G{3R2G0v#TScnTtm(F%s15g>ADH~|dfwb`I(SlKfpGap+u|`tHT2ozg zgjq;PNT7j|s)g{!a|vT(V+W)b1>M?7xnyYQgR$=FDeCyE=!SQDa=Bc%!J=RCXOra~ zCC=8?)*s$9?(5#v!lMJrUvi7G?yt%k>Y_mu+*LHa`1Td!nz@^j+4q0U(ZXleOTQ_< zrsetP8@A?5!CQKW9Ud9=v6L}aUl*;Y$9QoB^zJFsM@{lW*T(?#l0_@*#;H}A5dET^ zazWZqd(LAFc)wAaN)AMe6vZDY5S1mK)NH}NPsc2(pk!ID{+2Q!Z|H)5{jTq zJO~Dr&M_2k4hBJgUN>Xl2X`g_Rc*COH`3>u`>#J7;g|ndJk_4VEuqE-5Bxlk5bmuG zK#QVgX=B|(v*6IHmA6FPYg!$4H-?J{V+?7~)=BE}8C9lWL8z~S?$E%tJ1mHd2d?N@ z@r!R1a)vwXrVr_yaM;h!KQH$B)AR@}d2w-mW#z)kdCp5q{M}B8L~=l?D4rg7ezs#d z)7sklZfNg4h*K1ptWmMn%Rjat8y} zhVCc_OM~jm$Kaa|T%o{0mPCEw_xr5=P0i~6llIzhYr8VfyBxZ=rVy9^TZAHL-k*8Z Ic|_j)1!J9}KL7v# literal 0 HcmV?d00001 diff --git a/test/lib/mayaUsd/render/mayaToHydra/TransformsTest/usd_cube_scaled_moved.png b/test/lib/mayaUsd/render/mayaToHydra/TransformsTest/usd_cube_scaled_moved.png new file mode 100644 index 0000000000000000000000000000000000000000..d2af9eef0456004a01f647e75f3e75acb5184c42 GIT binary patch literal 2517 zcmeHJX;70#82%Chd=Us=0J)k<0zo82P6a|a0)$HmN{bc+1PZiOZc$E=03Q-4l&b`$ zKpl08T9rcuL8M3;6BI-p5CozU4g(S+60UIe!%lzpPycnsAG`0n&p!Lk&hzZT$|m8fW^_;nqBiaVE1W#+wf~9~Z6E z{=OLDpsI05VXu;4GGHb^T-~0wB*6mq{e7)kzc+~#OmN#ElWE=(WL{gtW3&~%987wWh2Dgq zbCzzSVzJoij{LY|27g1UQ8N8ueRZirKBoi(tD2Q~^Qjpor>EXG>RmF{?~{Ztt!Tei zXVYjes%LsFe2zQqS{<)j5B^gV1h3g7na7N;!MoL=!y-teoe+PP!v?`0lkyV^T5X*| zA7fy*qjUamD=|5H@sMU{e~4hRRxZUN6pMk6T$d5TOmP!ObWuVwW_-3zDL-E8GMPvy zZ0tWybrSYt;B0(B1X8gP3l629g-G3_Yj79@Ngh*qi7gjOTp=jt_T*>F%jHt_Z788u zuSMl@X0afbsoYCdNJ7>zFyZFC7Re?eBQe+&;&^6xmOszSSYKHv(=t2O(@wA+?Yn#+ zHp9NX{qEhn_gY$7s#B=d#Z2WXsp!dpR~;FfR>W1+WLA-$)5aNb_4(EJ;d?e7C`!i} zXJwP!6?gh(jLCgrmh#*>xJ{hZsE6Yj64!2zlzVgG^rb@Hyl?{39qNpMGluly8QgI1 zj-o4)xiy)zqo{?T=}A+tYJXT?S0`CWOB%ls48Wo!&il8DY>jX{B{t`PMcyy za`D>*becj$%=)#FM8ivno?}OmW%pwj!_Wfpv_J_6slkMYxU1T;BY%iOqiOm?Iq5V$ zSs8`0)N|qOB+}lP&NpJa?%$JT@*xONL+Mn?_7+X*>Q?>pBq{fTS&y2sw}xG#XYw%= z6iQ9c5rT;E1{AcV?Iso||9h^d@oM0gAFuH2#N#TP@6Ce$SWA$cZou_5Sq51p)Mv}E zpi_J5!do+v(7G+od+?DUGE@fx2ZPuSbzF=-F>t>pgp=qK1^YaC1_VI`GtSKAW;&e6L{hSoZX5zu2!0>j$^yf{4u1~s0(wWDt# zNHUT$F*Y{VArgrymSk2O6!JzbhvxG&N=A^nvtOVx9R_pgwxg+{1T%m=wMlBNPW!we sJdp^HKYIKrd{RRH|0Thk(~^OgiD|F9xC`}nuhf~n>5oFS zuCm#;z+%rPd#mM5jBGPb_bY$=^6AqjafY6%h-yZLHP>%n#@As+Z$-|0&WV`e}lJI@DK2Z^L#7JBP9N~kK_@v-SU-*U3!^DXWKd%Jl7^}sOPI{jdi z9n+_poiYC+t7YFbHxz8{Z?IXvmu=eDfB*J<6S^U|e#4HN$0xsBzx6spPCGb>n^#v? z|K9pds^P7Gz=PTCEN+m*e_wC<>H6&Tjei9M@}3ni{!>w4P+>ZBHf94;y%4gx`8BKB z;I3ov0J>N&vQeLjspeC`0S!h*1wnxall`w606q6;0^>e-#&Z4>^nAw~-Nh^{4K5BK zZHfEZOKrYQae{F4q8qgt8Er(MIngfASxJGX_y$8b6O)4y*d+%0Z&=DzdntlAATgDF zb4z5tP4WWi2bt;dC+oSz8`Y_>Y&_wI+_l0R-dbQMF$gg#emp(*@rLOkFaw>QNqhZH z=bs670LXw7f2z{|zflaHb3KmX_t*dSGwRpv<+J+ll+MMdxZ7@TRa5Klr=nt`<-}-F k2~X6+Ffp9Wk1g8$)Sg$*3|PV9u80{tUHx3vIVCg!0OK%k8UO$Q literal 0 HcmV?d00001 diff --git a/test/lib/mayaUsd/render/mayaToHydra/TransformsTest/usd_cube_untransformed.png b/test/lib/mayaUsd/render/mayaToHydra/TransformsTest/usd_cube_untransformed.png new file mode 100644 index 0000000000000000000000000000000000000000..abc657bf53c89c25fd5fc43dc7976f24a9ab9d9e GIT binary patch literal 2250 zcmeAS@N?(olHy`uVBq!ia0y~yV4MKL9Be?5hW%z|fD~V9glC$suNIKWzyTr{7^Xen z9tos4^WEHv!2%%Sme#g&KouUIE{-7;bKc&K%@c8#a0rynF%YuZuxLW<2JwVcMd?S3 ziaiG$f;`=P{s>!&e+Vg`uiPv3F+u$Ah49e(JjH+h{QRuU@MHfw*(yc`oyiRh6F4{+ zI!CFI9RvqV-`(H;|IwE(U$%eTRsR0oX6NH6#K>;L`9ig{mCXrO2`ysl?`tfnki zrmCQjbB4pc^O$d$p(LZ^`t|Yq|LLjav^H$0y1)7M4&B{C+dLd1md<8-RQ`4M(H30+ zfw0s!X5Zu=v~R0FqN=i{w_!s?d7;bKy>GlClo=B@)_rmKv+l;!4Ps1(7U?8zFN`iz z)tTF{fy4W5?wx7dnK!#I9olkj3)tXkE)Fx!-71&fUTUfK{Q2|s|Muvw=ijAq-6+=_88t6RRy1?z)<_nFK_qf>+`=8-Xv{eoql+u@w>B()0oYL z1eTdQ8O1$bxa;=BHHG0t!4?T&KsUdU+mLN_Pl#`tmqWyorRP1%4hry1^KppSva~gY zCAnOM-CJG3XKCHJ#BUS+bR=udXG}C>I<)GIlhGN20`vO`XIWaVT0J=sYjJ~#G4boW zR~4rd=ByPIFngTddIZPDW9cBQpbs}J?Cur#{qt-pKfS(ozp|4?6?+ull9G7porr5af@13^W z?B7}c`F6H-UtU~X?Yy2fPf5Wi-^S(m;Sz2|K|WxtNA!FQh<&|rTEPYv_4YW1Kl1-& zviI)Wv7@4_uI^t_4FBF`?>F8KlAv zg_}KFSz*nop60TL32V}_*n83bP0l+XkKlP1X@ literal 0 HcmV?d00001 diff --git a/test/lib/mayaUsd/render/mayaToHydra/testTransforms.py b/test/lib/mayaUsd/render/mayaToHydra/testTransforms.py new file mode 100644 index 0000000000..8564ace1ca --- /dev/null +++ b/test/lib/mayaUsd/render/mayaToHydra/testTransforms.py @@ -0,0 +1,108 @@ +# Copyright 2020 Luma Pictures +# Copyright 2023 Autodesk +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +import maya.cmds as cmds +import maya.mel + +import fixturesUtils +import mtohUtils +import unittest + +class TestTransforms(mtohUtils.MtohTestCase): + _file = __file__ + + IMAGEDIFF_FAIL_THRESHOLD = 0.01 + IMAGEDIFF_FAIL_PERCENT = 0.1 + + def setUp(self): + self.imageVersion = None + if maya.mel.eval("defaultShaderName") != "standardSurface1": + self.imageVersion = 'lambertDefaultMaterial' + + def verifySnapshot(self, imageName): + cmds.refresh() + self.assertSnapshotClose(imageName, + self.IMAGEDIFF_FAIL_THRESHOLD, + self.IMAGEDIFF_FAIL_PERCENT, + imageVersion=self.imageVersion) + + def test_nativePrim(self): + self.makeCubeScene(camDist=6) + cubeParent = cmds.group(self.cubeTrans, name='cubeParent') + cmds.select(clear=1) + + self.verifySnapshot("cube_untransformed.png") + + cmds.scale(3, 1, 3, self.cubeTrans, absolute=True) + self.verifySnapshot("cube_scaled.png") + + cmds.move(0, 2, 0, self.cubeTrans, absolute=True) + self.verifySnapshot("cube_scaled_moved.png") + + cmds.rotate(0, 45, 0, self.cubeTrans, absolute=True) + self.verifySnapshot("cube_scaled_moved_rotated.png") + + cmds.move(0, -3, 0, cubeParent, absolute=True) + self.verifySnapshot("cube_parent_moved.png") + + cmds.rotate(0, 0, 45, cubeParent, absolute=True) + self.verifySnapshot("cube_parent_moved_rotated.png") + + cmds.scale(2, 2, 2, cubeParent, absolute=True) + self.verifySnapshot("cube_parent_moved_rotated_scaled.png") + + @unittest.skipUnless(mtohUtils.checkForMayaUsdPlugin(), "Requires Maya USD Plugin.") + def test_usdPrim(self): + import mayaUsd + import mayaUsd_createStageWithNewLayer + from pxr import UsdGeom, Gf + + cmds.file(new=True, force=True) + self.setBasicCam(10) + self.setHdStormRenderer() + + # Create a USD stage + usdProxyShapeUfePathString = mayaUsd_createStageWithNewLayer.createStageWithNewLayer() + stage = mayaUsd.lib.GetPrim(usdProxyShapeUfePathString).GetStage() + + # Define a cube prim in the stage + parentA = "/ParentA" + childCube = "/ParentA/Cube" + parentPrimA = stage.DefinePrim(parentA, 'Xform') + childPrimCube = stage.DefinePrim(childCube, 'Cube') + + self.verifySnapshot("usd_cube_untransformed.png") + + UsdGeom.XformCommonAPI(childPrimCube).SetScale((2, 1, 2)) + self.verifySnapshot("usd_cube_scaled.png") + + UsdGeom.XformCommonAPI(childPrimCube).SetTranslate((0, 2, 0)) + self.verifySnapshot("usd_cube_scaled_moved.png") + + UsdGeom.XformCommonAPI(childPrimCube).SetRotate(Gf.Vec3f(0, 45, 0)) + self.verifySnapshot("usd_cube_scaled_moved_rotated.png") + + UsdGeom.XformCommonAPI(parentPrimA).SetTranslate((0, -4, 0)) + self.verifySnapshot("usd_cube_parent_moved.png") + + UsdGeom.XformCommonAPI(parentPrimA).SetRotate(Gf.Vec3f(0, 0, 45)) + self.verifySnapshot("usd_cube_parent_moved_rotated.png") + + UsdGeom.XformCommonAPI(parentPrimA).SetScale((2, 3, 2)) + self.verifySnapshot("usd_cube_parent_moved_rotated_scaled.png") + + +if __name__ == '__main__': + fixturesUtils.runTests(globals()) From d93b5ca3b96803e668a29fb49d48b268ca332070 Mon Sep 17 00:00:00 2001 From: Ivan Vlasov Date: Wed, 31 Jan 2024 13:42:19 -0500 Subject: [PATCH 2/2] Minor improvements requested by code review --- test/lib/mayaUsd/render/mayaToHydra/testTransforms.py | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/test/lib/mayaUsd/render/mayaToHydra/testTransforms.py b/test/lib/mayaUsd/render/mayaToHydra/testTransforms.py index 8564ace1ca..e862dd92f7 100644 --- a/test/lib/mayaUsd/render/mayaToHydra/testTransforms.py +++ b/test/lib/mayaUsd/render/mayaToHydra/testTransforms.py @@ -1,5 +1,4 @@ -# Copyright 2020 Luma Pictures -# Copyright 2023 Autodesk +# Copyright 2024 Autodesk # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -26,17 +25,11 @@ class TestTransforms(mtohUtils.MtohTestCase): IMAGEDIFF_FAIL_THRESHOLD = 0.01 IMAGEDIFF_FAIL_PERCENT = 0.1 - def setUp(self): - self.imageVersion = None - if maya.mel.eval("defaultShaderName") != "standardSurface1": - self.imageVersion = 'lambertDefaultMaterial' - def verifySnapshot(self, imageName): cmds.refresh() self.assertSnapshotClose(imageName, self.IMAGEDIFF_FAIL_THRESHOLD, - self.IMAGEDIFF_FAIL_PERCENT, - imageVersion=self.imageVersion) + self.IMAGEDIFF_FAIL_PERCENT) def test_nativePrim(self): self.makeCubeScene(camDist=6)