gH]kDwP\trueSpace7.51[VS_O93YI, `d8pM*#ͺO2PNG  IHDR@@% IDATxُ]וÙ\YUdLjEInm +F$@$O~_txl$(DR*|V{ϸ@e5٦vq}ƍoo9MRv73 D՛oIuמyz㝋oO'Ӽ,VwwmnX\ʲ j%Y+4u}ww{[\\xm]`ƫHuJk`U43ñ$ϹQʟ5kz1`w߹x믽l֍Q`o_>3g\򲎣h?kڽ)-Fe$QGJ Dd "֫zt$*kEM#DXCv l{~)b)BV23 "" >`  d(iMxw?_\ZW2Y<㓢;k)jLΛ94T"bT(MUr+3!_w#"& &pi ~vБq!C+KDr`jE5Y@MS8 tDVK< >/ [ RHMtW.@, (msɬ+H2V9v!`$N fDF} qQL8q$PDD;@D`6^uU$T2GJG_RB/\JI0n4E,xSRRt,JӘ>P`]R $y v.kW9\{gBp"%@BJGQe R<瞹JHF D(E^8?}WWPR88NRj@`,|PHHL{(umۜNr"T"/K%4{DR@Iq8M=02GJGQ9 3 `:wܙف>$^zO@a_΃=ꏂ1Vˆy $gyk ᜣf;\aLU@k3;3K_t{_?bNt0;Gfgg]m+So?nGR3m:@$ieQ2@}&e_~koǕ+R򩲪"%Sb=>:\X]]}x</--f.nC+KQ# $0J@[|:yB"JڑcGD%U]*ғ;:~p8ŭ57FQܛQ~(jT_zg}͛e4nomn+936&uρYC!{}DB8MpX;rĝՏ[}+?~ݭvUk_uB!x2YX?ѧb| 0L0#37u (E&J*^J6@X?\COl^\Xw;OmÞ)>kPnzGRÇ;3yɫǏlo Xbzkuʓ++ `vнrh~ocgkwv0c}u烊Bؘ;8ËgduwYs#+)mmL:O85-&,`os?ï9wv{{s<>RJ""(jg{78888wtvov1,KQ o.MH%JHJ眎#"_WnɭQ1|`vowXZ;ٴq2>V&LQLO_:-8Ļy_t婫W=19w-G fB`ݾP$B*@@U] A'0{f@彃êtf?9mDvƵ{d09܁Ψv[[= o{e5\xpm%gdʘ"n۸uV+ŒNy{ʣyQĭ#I7HmM3\Ǻ*\~xgo:ћ1DuC:U_GC7WօVB`D9;8:ϧyయe1`SׯJǎt(kTii_޻~wMitـDN5;P^^MFyqh:98::" $(Sԭ}`po۬Yju9$J  NPP׾^yg7nLN&?lwEG+ '##o7M7WS'GSb|hǁA)e3ޝGU] 0 C(A+ٲ,bb N$wv_+5NWw_֍tBe<5M@ {o?)]v'qQz"&|4HƐT+_}t'2EɁ )BIa/KO]/XG)Yo_xwo^VWyzQt U;Q։N'-j{W.J/éj/.,[`eqGY(0 t$i4px`yy%Mu}l~.8gϟɫbt8/|s)88M$RJDcau\8:tfaqӗN.?۷N[o%#罐 Lc==`&vuŏR+ҝS`TUӬ>ޝ݋wa:g4NS -!0֢ےbjOW/_xB.|w*({&Fm|` Xqnn{F:ZS~X:[3+ F*˻"vgNi!ePG2(gVN_?__RD-^Zg(jLDJVi! ,JE{!0#Uu 3Ky x|4uNGRJm@SOç:y$NTlON uOά|G^UU>ZF)cj!&Ӊ*y"PJ@c)AR30sf=Gɥ,ͦImLEՔ!: xzJ͝rѝnUm۲N| VuQjRJ23 |R#29됁XDT(}D@@y:cB =J}ȔMmRF}MpToܾ+)Rp?37"3 K%tDVOTRB9HB8? Yb'R{S U`<+,,~hwf"!ToNU($K)bD<64UDGY#FȰgdJ "~'SF'Z#,OARD,Bg=إn!XiEq@(4&P`4RH9P>Eiєi+inw>=rkFQֽAOhc}#sQ'q W9c}N cm~=3ΗSIxRc (2xRQ<7;R ^+)Um!}ft*n !|rzR:/,8 CD)!;[["Nqs4AFc=oE`:e$)T QJRx)LDYTC]{ODNxk1z{{^fƙA9d86&Zk-'E:w‹Q~Zg1`.Ѿ5u 6VODR:.EJZYUkS(UUy88rb䣏9{XY[ke]9wQJn (CP$ibwD\j-~QvPT)@ .QGёcOBx@(/Q=ԇ{̠dt4_L3_W>ևO?Nӟ޼yʕg}w/_{擪 "}IENDB`/tfѭ8Lwb"qt\܂dKu=$B.objectNavWidgetControl(1.;]kI 忞@.;]kI 忞@"SubObject*Encapsulated objects";6 ; xҜ814W}@O{4W}@O{$ Owner4Owner of the Encapsulator$(' 1(XFҦV(XFҦV"LE2Data$LE2 Data for node >g'JNjn*p"8 1NYk51NYk5Dmylist :KrbSx\HJX`8 -1OSM n-1OSM n"LayoutLayout 럆L<_ї"8 "֐0G "֐0G DmyScale\@a(XFҦV>g'JNjn*pFD|Bp@ l@0B?1NYk5:KrbSxBDefault object navigation widgetBDefault object navigation widget"֐0G ?-1OSM n 럆L<_їDefault  GFʠN= @0h*D1 }}1NYk5Z`Ez]UOnevG4'@ 0h*D1NYk5|Default object navigation widget CR object navigation widgetZ`Ez]UOOˁ CRih[ h*D TActivity.Run('%THIS_NAME%' + "/makeList")Update ListZ`Ez]UOOˁ CRih[ h*D \Activity.Run('%THIS_NAME%' + "/switchWidget")Switch WidgetZ`Ez]UO GFʠN=0@h*DCde} 1. click "Update List" buttonƄvR^I҂{iks GFʠN=@Ph*DChd}" 2. Make a selection from the listƄvR^I҂{iks GFʠN=P`h*DAdd} 3. click "Switch Widget" buttonƄvR^I҂{iks GFʠN=`ph*DIdd}( 4. Select another object in the 3D viewƄvR^I҂{iks GFʠN=p`h*Dt}}"Tahomaw<>8pmyScale"֐0G Z`Ez]UO1釥GP>a`ph*Dx "TahomawD>8p"֐0G Z`Ez]UON\q+nN-K^h*DH}}?@"֐0G Z`Ez]UOOˁ CRih[h*D `Activity.Run('%THIS_NAME%' + "/ScaleNavWidget")"Scale Nav WidgetZ`Ez]UO GFʠN=h*D5hd} 5. scale the widgetƄvR^I҂{iks0 48@J g'JNjn*p:6 ceZU@䑧rceZU@䑧r$_scriptData*Internal Script data [җJs@ %;6 4W}@O{$(1i(XFҦVLE2Data, 1#uJ@#QLJ@#QLLE2Data$LE2 Data for node >g'JNjn*pLE2Data, 3WMT^RwL~YYTMT^RwL~YYTޢLE2Data$LE2 Data for node >g'JNjn*pLE2Data, 2HJX1NYk5D8 o2|=Bynj2|=Bynj Control OutTransitionOutoz@Hoz@Ho Control InTransitionIn 2|=Bynj2AEHM'>g'JNjn*pnBC`@0@2|=Bynj|?z@Hoۙ>?ceZU@䑧r[җJs@ NewCommand// Execute // Called to execute the command function Execute(params) { var mylist = params.ConValue('mylist'); objNavPath = "/Widgets/Select"; // TODO: put your action code here thisname = System.ThisName(); owner = System.ThisOwner(); //System.Alert(thisname); newlist = System.CreateDO('Common Data Package/String Enum Data'); //test = mylist.GetSize(); //test = mylist.GetSelectedString(); newlist.Clear(); //newlist.SetStringAt(0,"zero"); //newlist.SetStringAt(1,"one"); //get potential list numNodes = Node.SubObjectCount(objNavPath); j = 0; for(i=0;i<numNodes;i++) { curNode = Node.SubObject(objNavPath,i);//get short name if(Node.Exists(objNavPath + "/" + curNode + "/Activation/Transform")) { newlist.SetStringAt(j,curNode);//add to the list newlist.SetSelectedString(curNode);//make this the current selection j++; } } //params.ConValue('mylist') = newlist; Node.Value(owner,"mylist") = newlist; } NScript Object Package/jScript language[ JCommon Data Package/String Enum Datamylist :KrbSx1NYk54W}@O{(XFҦV>g'JNjn*pnUCPBi@@X@2|=Bynj|?z@Hoۙ>?1NYk5J@#QL>g'JNjn*pnBB`@T@2|=Bynj|?z@Hoۙ>?-1OSM n 럆L<_їControlOˁ CRih[ 8)iq 8Activity.Run('%THIS_NAME%') StartZ`Ez]UOOˁ CRih[ 08)iq:Activity.Stop('%THIS_NAME%') StopZ`Ez]UO GFʠN=0`@8)i1 }}1NYk5Z`Ez]UOnevG4'@P8)i1NYk5Default object navigation widget Custom object navigation widget03Z`Ez]UOMT^RwL~YYT>g'JNjn*pnCB`@0@2|=Bynj|?z@Hoۙ>?z@Ho48@J g'JNjn*pnBC`@0@2|=Bynj|?z@Hoۙ>?ceZU@䑧r[җJs@ B NewCommand// Execute // Called to execute the command function Execute(params) { // TODO: put your action code here objNavPath = "/Widgets/Select"; thisname = System.ThisName(); owner = System.ThisOwner(); mylist = System.CreateDO('Common Data Package/String Enum Data'); //get selection mylist = Node.Value(owner + "/makeList","mylist"); numItems = mylist.GetSize(); mySelection = mylist.GetSelectedString(); //confirm valid selection changeNode = objNavPath + "/" + mySelection + "/Activation/Automatic activation node"; if(!Node.Exists(changeNode)) { System.Alert("invalid selection"); return; } //reduce all widget weights for(i=0;i<numItems;i++) { curItem = mylist.GetStringAt(i); System.Trace("reduce weight: " + curItem); checkNode = objNavPath + "/" + curItem + "/Activation/Automatic activation node"; if(Node.Exists(checkNode)) Node.Value(checkNode,"Widget weight bias") = 0.01;//reduced from default 0.1 } System.Trace("increase weight: " + mySelection); Node.Value(changeNode,"Widget weight bias") = 0.1//default value } NScript Object Package/jScript language~൱D@ j#^c4W}@O{(XFҦV>g'JNjn*pnDtB`@@P@2|=Bynj|?z@Hoۙ>?J@#QL>g'JNjn*pnBB`@T@2|=Bynj|?z@Hoۙ>?-1OSM n 럆L<_ї˂ControlOˁ CRih[ Cq 8Activity.Run('%THIS_NAME%') StartZ`Ez]UOOˁ CRih[ 0 Cq:Activity.Stop('%THIS_NAME%') StopZ`Ez]UOMT^RwL~YYT>g'JNjn*pnCB`@0@2|=Bynj|?z@Hoۙ>?z@Ho48@J g'JNjn*pnBC`@0@2|=Bynj|?z@Hoۙ>?ceZU@䑧r[җJs@ "NewCommand!// Execute // *************************************************** // TODO: need to check for existence before running each change value // *************************************************** function scaleWidget(thepath) { myMatrix = System.CreateDO("Math Package/Matrix Float Data"); myMatrix.LoadIdentity(); //myMatrixY.LoadIdentity(); //myMatrixZ.LoadIdentity(); myMatrix.SetScaleX(myScale); myMatrix.SetScaleY(myScale); myMatrix.SetScaleZ(myScale); // 2D translate triangles if(Node.Exists(thepath + "/Triangles/TriangleXY/Triangle")) Node.Value(thepath + "/Triangles/TriangleXY/Triangle","OwnerMatrix") = myMatrix; if(Node.Exists(thepath + "/Triangles/TriangleXZ/Triangle")) Node.Value(thepath + "/Triangles/TriangleXZ/Triangle","OwnerMatrix") = myMatrix; if(Node.Exists(thepath + "/Triangles/TriangleYZ/Triangle")) Node.Value(thepath + "/Triangles/TriangleYZ/Triangle","OwnerMatrix") = myMatrix; // 1D translate bars if(Node.Exists(thepath + "/Bars/BarX/Cylinder")) Node.Value(thepath + "/Bars/BarX/Cylinder","OwnerMatrix") = myMatrix; if(Node.Exists(thepath + "/Bars/BarY/Cylinder")) Node.Value(thepath + "/Bars/BarY/Cylinder","OwnerMatrix") = myMatrix; if(Node.Exists(thepath + "/Bars/BarZ/Cylinder")) Node.Value(thepath + "/Bars/BarZ/Cylinder","OwnerMatrix") = myMatrix; // scale boxes if(Node.Exists(thepath + "/Boxes/BoxX/Cube")) Node.Value(thepath + "/Boxes/BoxX/Cube","OwnerMatrix") = myMatrix; if(Node.Exists(thepath + "/Boxes/BoxY/Cube")) Node.Value(thepath + "/Boxes/BoxY/Cube","OwnerMatrix") = myMatrix; if(Node.Exists(thepath + "/Boxes/BoxZ/Cube")) Node.Value(thepath + "/Boxes/BoxZ/Cube","OwnerMatrix") = myMatrix; // central sphere if(Node.Exists(thepath + "/Close/Sphere")) Node.Value(thepath + "/Close/Sphere","OwnerMatrix") = myMatrix; // custom rotation arcs if(Node.Exists(thepath + "/Arcs/RotX/arc")) Node.Value(thepath + "/Arcs/RotX/arc","OwnerMatrix") = myMatrix; if(Node.Exists(thepath + "/Arcs/RotY/arc")) Node.Value(thepath + "/Arcs/RotY/arc","OwnerMatrix") = myMatrix; if(Node.Exists(thepath + "/Arcs/RotZ/arc")) Node.Value(thepath + "/Arcs/RotZ/arc","OwnerMatrix") = myMatrix; // default rotation arcs if(Node.Exists(thepath + "/Arcs/RotX/ExpandInMatrix")) { Node.Value(thepath + "/Arcs/RotX/ExpandInMatrix","sx") = myScale; Node.Value(thepath + "/Arcs/RotX/ExpandInMatrix","sy") = myScale; Node.Value(thepath + "/Arcs/RotX/ExpandInMatrix","sz") = myScale; } if(Node.Exists(thepath + "/Arcs/RotY/ExpandInMatrix")) { Node.Value(thepath + "/Arcs/RotY/ExpandInMatrix","sx") = myScale; Node.Value(thepath + "/Arcs/RotY/ExpandInMatrix","sy") = myScale; Node.Value(thepath + "/Arcs/RotY/ExpandInMatrix","sz") = myScale; } if(Node.Exists(thepath + "/Arcs/RotZ/ExpandInMatrix")) { Node.Value(thepath + "/Arcs/RotZ/ExpandInMatrix","sx") = myScale; Node.Value(thepath + "/Arcs/RotZ/ExpandInMatrix","sy") = myScale; Node.Value(thepath + "/Arcs/RotZ/ExpandInMatrix","sz") = myScale; } } // Called to execute the command function Execute(params) { myScale = params.conValue('myScale'); // TODO: put your action code here objNavPath = "/Widgets/Select"; thisname = System.ThisName(); owner = System.ThisOwner(); mylist = System.CreateDO('Common Data Package/String Enum Data'); //get selection mylist = Node.Value(owner + "/makeList","mylist"); numItems = mylist.GetSize(); //mySelection = mylist.GetSelectedString(); //confirm valid selection //changeNode = objNavPath + "/" + mySelection + "/Activation/Automatic activation node"; //if(!Node.Exists(changeNode)) //{ // System.Alert("invalid selection"); // return; //} //reduce all widget weights for(i=0;i<numItems;i++) { curItem = mylist.GetStringAt(i); //System.Trace("reduce weight: " + curItem); thepath = objNavPath + "/" + curItem; checkNode = objNavPath + "/" + curItem + "/Activation/Automatic activation node"; if(Node.Exists(checkNode)) //dont touch the default widget if(curItem != "Default object navigation widget") scaleWidget(thepath); } //System.Trace("increase weight: " + mySelection); //Node.Value(changeNode,"Widget weight bias") = 0.1//default value } NScript Object Package/jScript language@?>@&numbermyScale"֐0G 4W}@O{(XFҦV>g'JNjn*pnzDBb@@P@2|=Bynj|?z@Hoۙ>?J@#QL>g'JNjn*pnBB`@T@2|=Bynj|?z@Hoۙ>?"֐0G ?-1OSM n 럆L<_ї,ControlOˁ CRih[0q+nNw08Activity.Run('%THIS_NAME%')Scale ItZ`Ez]UO GFʠN=0@q+nN1 }}"֐0G Z`Ez]UO1釥GP>a@Pq+nN<"֐0G Z`Ez]UON\q+nN-K^Ppq+nNH}}?@"֐0G Z`Ez]UOMT^RwL~YYT>g'JNjn*pnCB`@0@2|=Bynj|?z@Hoۙ>?z@Ho8ʯȥJH|o7 gH]kDwP\`d8pM*#ͺOY\2/tfѭ8Lwb"qt\t