gH]kDwP$Rosetta Beta 7.61[VS_O93YJClinton Reese, Clintons 3D Creations`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"qJ܂dKu=W4install zoom to selectionX7.;]kI 忞@.;]kI 忞@"SubObject*Encapsulated objects"X-0Hؿ74W}@O{4W}@O{$ Owner4Owner of the Encapsulator$(XFҦV(XFҦV"LE2Data$LE2 Data for node >g'JNjn*p" zFAa| zFAa|DhelpText\vRm)EC!avRm)EC!aD leftClickScript\1V {E!Y1V {E!YD name\!K0}q!K0}qD"rightClickScript\-1OSM n-1OSM n"LayoutLayout 럆L<_ї"1V {E!YsayHello!K0}q2System.Alert("goodbye");(XFҦV>g'JNjn*pF3DCk@@^@B?vRm)EC!a<System.Alert("hello there!");-1OSM n 럆L<_ї'DefaultOˁ CRih[ jA}}LActivity.Run('%THIS_NAME%' + "/doIt")&install widget modZ`Ez]UOOˁ CRih[(@jA}}PActivity.Run('%THIS_NAME%' + "/unDoIt")uninstallZ`Ez]UO GFʠN=HXjA/}}January 2 2012Z`Ez]UO}} zFAa|say hello1]db/đ48@J g'JNjn*pceZU@䑧rceZU@䑧r$_scriptData*Internal Script data [җJs@ %X-4W}@O{$(XFҦVLE2Data, 1#J@#QLJ@#QLLE2Data$LE2 Data for node >g'JNjn*pLE2Data, 3MT^RwL~YYTMT^RwL~YYTޢLE2Data$LE2 Data for node >g'JNjn*pLE2Data, 22|=Bynj2|=Bynj Control OutTransitionOutz@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) { // TODO: put your action code here owner = System.ThisOwner(); theWidget = "Look at selection"; //theWidget2 = "PE lasso select"; theWidgetPath = "/Widgets/Tools/Background"; //backup the originals if not already backedup if(!Node.Exists(theWidgetPath + "/" + theWidget + "ORIGINAL")) { //disconnect it Node.Disconnect(theWidgetPath + "/Anchor origin docking", "Anchor origin", theWidgetPath + "/" + theWidget, "DockingPosition"); //set priority to 0 Node.Value(theWidgetPath + "/" + theWidget + "/Background widget controller","Priority") = 0; //rename the widget node Node.Rename(theWidgetPath + "/" + theWidget, theWidget+"ORIGINAL"); } //else //{ Node.Delete(theWidgetPath + "/" + theWidget);//delete non-original //} //copy replacement widget node Node.Copy(owner + "/" + theWidget, theWidgetPath); //connect it Node.ConnectTo(theWidgetPath + "/Anchor origin docking", "Anchor origin", theWidgetPath + "/" + theWidget, "DockingPosition"); } NScript Object Package/jScript language+4>4W}@O{(XFҦV>g'JNjn*pnCAb@H@2|=Bynj|?z@Hoۙ>?J@#QL>g'JNjn*pnBB`@T@2|=Bynj|?z@Hoۙ>?-1OSM n 럆L<_їjControlOˁ CRih[ Ca8Activity.Run('%THIS_NAME%') StartZ`Ez]UOOˁ CRih[ 0 Ca: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@ jNewCommand// Execute // Called to execute the command function Execute(params) { // TODO: put your action code here owner = System.ThisOwner(); theWidget = "Look at selection"; //theWidget2 = "PE lasso select"; theWidgetPath = "/Widgets/Tools/Background"; if(Node.Exists(theWidgetPath + "/" + theWidget + "ORIGINAL")) { //disconnect it //delete the non-original node Node.Delete(theWidgetPath + "/" + theWidget); //copy the original and rename it back widg = Node.Copy(theWidgetPath + "/" + theWidget+"ORIGINAL", theWidgetPath); Node.Rename(widg, theWidget); //set priority to 1 Node.Value(theWidgetPath + "/" + theWidget + "/Background widget controller","Priority") = 1; //connect it Node.ConnectTo(theWidgetPath + "/Anchor origin docking", "Anchor origin", theWidgetPath + "/" + theWidget, "DockingPosition"); } } NScript Object Package/jScript languageD=4W}@O{(XFҦV>g'JNjn*pnCAb@H@2|=Bynj|?z@Hoۙ>?J@#QL>g'JNjn*pnBB`@T@2|=Bynj|?z@Hoۙ>?-1OSM n 럆L<_їjControlOˁ CRih[ Ca8Activity.Run('%THIS_NAME%') StartZ`Ez]UOOˁ CRih[ 0 Ca:Activity.Stop('%THIS_NAME%') StopZ`Ez]UOMT^RwL~YYT>g'JNjn*pnCB`@0@2|=Bynj|?z@Hoۙ>?z@Ho܂dKu=|W$Look at selection 8.;]kI 忞@#8ŷ0(X8@޻LBǨ` 0)p qP0<xDH4W}@O{%啯]`O둒B啯]`O둒BLE2Data, 5$LE2 Data for node >g'JNjn*p-1OSM n"nptDwJ@RvnptDwJ@RvLE2Data, 3$LE2 Data for node >g'JNjn*p՞'fA5-_՞'fA5-_D3DEYED3DEYE =xNT{lK E/&R6lK E/&R6LE2Data, 6$LE2 Data for node >g'JNjn*p9F*DI}58P9F*DI}58PLE2Data, 4$LE2 Data for node >g'JNjn*p(XFҦVLE2Data, 1"OCh}?d=OCh}?d=LE2Data, 2$LE2 Data for node >g'JNjn*pxL`|oC3`|oC3 DockingPosition"Docking position \J C[>NazM@aazM@aLE2Data, 5$LE2 Data for node >g'JNjn*p lK E/&R6>g'JNjn*pFDC`@0@C,B)\?4W}@O{nptDwJ@Rv>g'JNjn*pFC@C`@0@?azM@a>g'JNjn*pFC@C`@0@$B?(XFҦV>g'JNjn*pFDBb@@@B?啯]`O둒B>g'JNjn*pFC@C`@0@BB?՞'fA5-_OCh}?d=>g'JNjn*pFC@C`@0@?9F*DI}58P>g'JNjn*pFC@C`@0@!?`|oC3.;]kI 忞@-1OSM n 럆L<_ї0sN!{8EܦK:Background widget controller N!N޷IZ}յQ!N޷IZ}յQ DockingPosition"Docking position \J C[>k+D"J>Pk+D"J>PActive>True, it base widget is active "S:iD p\ohe}S:iD p\ohe}GesturesJGestures assigned to control surface Է`HgC:MUhd~F Hwhd~F HwOrientation6Coordinate system modifier `^02eE{|@cLo@d:cLo@d:$Coordinate system$Coordinate system 0d'O5S.J-1OSM n#8ŷ4W}@O{%(XFҦVLE2Data, 1#dCu繹NdCu繹NPriorityTool priority dCu繹NS:iD p\ohe}4W}@O{hd~F Hw`^02eE{|@B.;??.;?!N޷IZ}յQ(XFҦV>g'JNjn*pF|DBb@_@?cLo@d:k+D"J>P -1OSM n 럆L<_ї0 X=RIz}bh WW Mouse MDblClickTbŽiI[_"tbŽiI[_"$Input stateInput state NO7*-$7z^drAE7z^drAEKeyfilterIn(Key control flow in mIo`'ǾpTmIo`'ǾpKeyfilterOut*Key control flow out ڻ4W}@O{$(XFҦV"(XFҦV>g'JNjn*pFB@CX@>@?mIo`'Ǿp7z^drAE bŽiI[_"wI}gIWGestureWGA^ֵ WGA^ֵ InputFilterInput filters C`N,n<%C`N,n<%ControlOut&Control activation*⸄BxɜJK@B>y⸄BxɜJK@B>yGestureGesture output Է`HgC:MU"k1<:KU~k1<:KU~ActiveGesture active 0(4W}@O{$lK E/&R6LE2Data(XFҦVLE2Data, 1"-1OSM n"lK E/&R6>g'JNjn*pFCC`@T@?⸄BxɜJK@B>y4W}@O{(XFҦV>g'JNjn*pF*DCb@@T@?k1<:KU~ C`N,n<%WGA^ֵ -1OSM n 럆L<_ї0A^[Lۇ~8L;W$Look at SelectionոV*!JLոV*!JLConntrolInControl inucT @daucT @daCommand&Command to execute9Lg x\9Lg x\Undo commandUndo commandJAQH\ 8JAQH\ 8$$Widget parameters2Hidden widget parameters WAMydY_$X4W}@O{$(XFҦV"9Lg x\(XFҦV>g'JNjn*pF|D@?JAQH\ 8ucT @daHRsTool.LookAtSelection('%WIN_ID%');ոV*!JL48@J g'JNjn*pnBC`@0@2|=Bynj|?z@Hoۙ>?ceZU@䑧r[җJs@ |+NewCommand*//november 2010 changes // fixed to work with a single edge selection // fixed to work with encapsulated objects //january 2012 use number of valid selected nodes for average, single edge bug // //recursive search for Selection Connectors // Execute // Called to execute the command function Execute(params) { // // note need to disconnect/reconnect to update widget to use code changes here // //System.Trace("zoom to sel"); bbox = System.CreateDO("Common Data Package/Number Array Data"); objloc = System.CreateDO("Math Package/Point Data"); camloc = System.CreateDO("Math Package/Point Data"); unitvec = System.CreateDO("Math Package/Point Data"); tempvec = System.CreateDO("Math Package/Point Data"); //initial location for center of zoom(lookat location) objloc.x = 0; objloc.y = 0; objloc.z = 0; xmin = 10000; xmax = -10000; ymin = 10000; ymax = -10000; zmin = 10000; zmax = -10000; vertcnt = 0; edgecnt = 0; tricnt = 0; facetri = 0; sel = Node.Selection(); //list of selected nodes numsel = Node.SelectionLength(sel); // number of selected nodes size = 0;//initial bounding size numvalid = numsel;//jan 2012 firstNode = Node.SelectionGetAt(sel, 0); if(Node.ConExists(sel,"Selection")) { System.Trace("pe mode active"); //get the mesh and read it's selection data - IRdMeshSelection themesh = Node.Value(sel,"Mesh"); seldata = System.CreateDO('Space 3D Package/Selection Data'); seldata = Node.Value(sel,"Selection"); vertcnt = seldata.GetNumSelectedVertices(); //vertex count objloc.x = 0; objloc.y = 0; objloc.z = 0; //process point edit selection //nov 2010 //if(vertcnt > 2) if(vertcnt >= 2) { theMatrix = System.CreateDO('Math Package/Matrix Float Data'); theMatrix = Node.Value(sel,"WldMatrix"); dV = System.CreateDO("Space 3D Package/Vertex Stream Data"); dV = themesh.GetVertices(); thePoint = System.CreateDO('Math Package/Point Data'); newPoint = System.CreateDO('Math Package/Point Data'); for(j=0;j<vertcnt;j++) { vertind = seldata.GetSelectedVertexIndex(j); xval = dV.x(vertind); yval = dV.y(vertind); zval = dV.z(vertind); //transform the point to world space //note: may need some pivot adjustment thePoint.x = xval; thePoint.y = yval; thePoint.z = zval; newPoint = theMatrix.TransformPoint(thePoint); xval = newPoint.x; yval = newPoint.y; zval = newPoint.z; objloc.x = objloc.x + xval ; objloc.y = objloc.y + yval ; objloc.z = objloc.z + zval ; xmin = Math.min(xval, xmin); ymin = Math.min(yval, ymin); zmin = Math.min(zval, zmin); xmax = Math.max(xval, xmax); ymax = Math.max(yval, ymax); zmax = Math.max(zval, zmax); } } } //process object selection else { for (i = 0; i < numsel; i++) { curNode = Node.SelectionGetAt(sel, i); //nov 2010 //if(Node.IsRenderable(curNode)) if(Node.ConExists(curNode,"WldMatrix") && Node.SubObjectCount(curNode) > 1) { //System.Trace("is renderable"); bbox = Space.GetBoundingBox(curNode); tempvec = Space.GetCenter(curNode, true); objloc.x = objloc.x + tempvec.x ; objloc.y = objloc.y + tempvec.y ; objloc.z = objloc.z + tempvec.z ; //[xmin, xmax, ymin, ymax, zmin, zmax] xminc = bbox.GetAt(0); xmaxc = bbox.GetAt(1); yminc = bbox.GetAt(2); ymaxc = bbox.GetAt(3); zminc = bbox.GetAt(4); zmaxc = bbox.GetAt(5); xmin = Math.min(xminc, xmin); ymin = Math.min(yminc, ymin); zmin = Math.min(zminc, zmin); xmax = Math.max(xmaxc, xmax); ymax = Math.max(ymaxc, ymax); zmax = Math.max(zmaxc, zmax); } else numvalid--; } } dx = xmax - xmin; dy = ymax - ymin; dz = zmax - zmin; size = Math.max(dx, dy, dz); //size = dz;//try dz only if(size>0.0001) { //get average center of selected objects //Jan 2012 //if(vertcnt > 2) numsel = vertcnt; if(vertcnt >= 2) numvalid = vertcnt; objloc.x = objloc.x / numvalid; objloc.y = objloc.y / numvalid; objloc.z = objloc.z / numvalid; numcam = Node.SubObjectCount("/D3DView"); for(i=0;i<numcam;i++) { cam = Node.SubObject("/D3DView",i); fov = Node.Value("D3DView/" + cam,"FOV"); camtype = Node.Value("D3DView/" + cam,"CameraType"); //d3dview camera fov is half actual value //choosing a camera view not same as the d3dview camera node if(camtype!=0) { newfov = 10*2*Math.atan(size/(2*500));//cam dist always 500 for ortho, 10 is a magic number Node.Value("D3DView/" + cam,"FOV") = newfov ; } else { ddist = size / (2 * Math.tan(fov/2)); //ddist = size / (2 * Math.tan(fov)); // //get unit vector camera to object camloc.x = Node.Value("D3DView/" + cam,"tx"); camloc.y = Node.Value("D3DView/" + cam,"ty"); camloc.z = Node.Value("D3DView/" + cam,"tz"); tempvec.x = objloc.x - camloc.x ; tempvec.y = objloc.y - camloc.y ; tempvec.z = objloc.z - camloc.z ; tempvec.Normalize(); tempvec.x = objloc.x - tempvec.x * ddist; tempvec.y = objloc.y - tempvec.y * ddist; tempvec.z = objloc.z - tempvec.z * ddist; Node.Value("D3DView/" + cam,"tx") = tempvec.x ; Node.Value("D3DView/" + cam,"ty") = tempvec.y ; Node.Value("D3DView/" + cam,"tz") = tempvec.z ; } } } } NScript Object Package/jScript language{k=U${k {k4W}@O{(XFҦV>g'JNjn*pnDCb@H@2|=Bynj|?z@Hoۙ>?J@#QL>g'JNjn*pnBB`@T@2|=Bynj|?z@Hoۙ>?-1OSM n 럆L<_ї0MT^RwL~YYT>g'JNjn*pnCB`@0@2|=Bynj|?z@Hoۙ>?z@HoQ:A5J6dTCtrl state bŽiI[_"p$`7z^drAE`mIo`'ǾpP (XFҦV"޻4W}@O{$(XFҦV>g'JNjn*pFBCX@1@?mIo`'ǾpbŽiI[_"7z^drAE  /K.c';N,One from three selectԨP)=FCBTP)=FCBA>Key control flow out, A output xըT+N:H|GTtT+N:H|GTB>Key control flow out, B output @ܻo9 7+H -@NTo9 7+H -@NA+BBKey control flow out, A+B output @ڻEg@B.1c|#tEg@B.1c|#A input"A selector input Ԩxը@ܻ ,bM:3Z0t,bM:3Z0B input"B selector input Ԩxը@ܻ(XFҦV"LB4W}@O{$P)=FCBT+N:H|GT(XFҦV>g'JNjn*pFCCX@>@?Eg@B.1c|# ,bM:3Z0 o9 7+H -@NđwI}gy"k1<:KU~Ǩ4W}@O{$lK E/&R6LE2Data(XFҦVLE2Data, 1"-1OSM n"lK E/&R6>g'JNjn*pFCC`@T@?⸄BxɜJK@B>y4W}@O{(XFҦV>g'JNjn*pF(DjCb@@T@?C`N,n<%k1<:KU~ WGA^ֵ -1OSM n 럆L<_ї0đA^[Lۇ~8̳R&Look at Selection2XԨոV*!JLucT @da9Lg x\JAQH\ 8$`4W}@O{$(XFҦV"9Lg x\(XFҦV>g'JNjn*pFDCX@>@?JAQH\ 8ucT @daHRsTool.LookAtSelection('%WIN_ID%');ոV*!JL48@J g'JNjn*pnBC`@0@2|=Bynj|?z@Hoۙ>?IɛK$ceZU@䑧r[җJs@ NewCommand // Execute // Called to execute the command function Execute(params) { // TODO: put your action code here tvertcnt = 0; tedgecnt = 0; ttricnt = 0; tfacetri = 0; sel = Node.Selection(); //list of selected nodes numsel = Node.SelectionLength(sel); // number of selected nodes size = 0;//initial bounding size //check for point edit mode on first selected object firstNode = Node.SelectionGetAt(sel, 0); if(Node.ConExists(sel,"Selection")) { //System.Trace("pe mode active"); //get the mesh and read it's selection data - IRdMeshSelection themesh = Node.Value(sel,"Mesh"); seldata = System.CreateDO('Space 3D Package/Selection Data'); seldata = Node.Value(sel,"Selection"); tvertcnt = seldata.GetNumSelectedVertices(); //vertex count tedgecnt = seldata.GetNumSelectedEdges(); //edge count - will be one for outer edge and 2 for when select shared edge of 2 polygons ttricnt = seldata.GetNumSelectedTriangles(); //triangle count tfacetri = seldata.GetNumSelectedFaceTriangles();//face triangle - number of triangles in the selected polygons } params.ConValue("vertcnt") = tvertcnt; params.ConValue("edgecnt") = tedgecnt; params.ConValue("tricnt") = ttricnt; params.ConValue("facetri") = tfacetri; } NScript Object Package/jScript language|K>intvertcntJph6HDPo intedgecntZ;RJW07inttricntIɛK$intfacetriMwF;ؚؗ4W}@O{Jph6HDPo (XFҦV>g'JNjn*pn|DCb@@\@2|=Bynj|?z@Hoۙ>?J@#QL>g'JNjn*pnBB`@T@2|=Bynj|?z@Hoۙ>?-1OSM n 럆L<_ї0Z;RJW07MT^RwL~YYT>g'JNjn*pnCB`@0@2|=Bynj|?z@Hoۙ>?z@Ho48@J g'JNjn*pnBC`@0@2|=Bynj|?z@Hoۙ>?ceZU@䑧r[җJs@ NewCommandt// Execute // Called to execute the command function Execute(params) { var edgecnt = params.ConValue('edgecnt'); var tricnt = params.ConValue('tricnt'); var facetri = params.ConValue('facetri'); // TODO: put your action code here //if selection mode is edge, faces or triangles convert to vertex mode if(edgecnt > 0 || tricnt > 0 || facetri > 0) { Node.Value('/Preferences/Mesh Editor Settings','PE selection mode') = 'vertex'; MeshModifiers.ActivatePointEditWidget('','','Default'); MeshModifiers.ConvertSelection('',''); } } NScript Object Package/jScript language~൱D@ j#^cintedgecnt7_cOȗinttricntJvFintfacetri"R2@MsSu"R2@MsSu4W}@O{(XFҦV>g'JNjn*pnDCb@@X@2|=Bynj|?z@Hoۙ>?JvFJ@#QL>g'JNjn*pnBB`@T@2|=Bynj|?z@Hoۙ>?-1OSM n 럆L<_ї07_cOȗMT^RwL~YYT>g'JNjn*pnCB`@0@2|=Bynj|?z@Hoۙ>?z@Ho48@J g'JNjn*pnBC`@0@2|=Bynj|?z@Hoۙ>?ceZU@䑧r[җJs@ NewCommand8// Execute // Called to execute the command function Execute(params) { var edgecnt = params.ConValue('edgecnt'); var tricnt = params.ConValue('tricnt'); var facetri = params.ConValue('facetri'); // TODO: put your action code here //convert point edit selection back to original type(or close to it) if(edgecnt > 0 || tricnt > 0 || facetri > 0) { if(edgecnt > 0) Node.Value('/Preferences/Mesh Editor Settings','PE selection mode') = 'face edge'; if(tricnt > 0) Node.Value('/Preferences/Mesh Editor Settings','PE selection mode') = 'triangle'; if(facetri > 0) Node.Value('/Preferences/Mesh Editor Settings','PE selection mode') = 'face'; MeshModifiers.ActivatePointEditWidget('','','Default'); MeshModifiers.ConvertSelection('',''); } } NScript Object Package/jScript language!intedgecnt7_cOȗinttricntJvFintfacetri"R2@MsSu4W}@O{"R2@MsSu(XFҦV>g'JNjn*pnDCb@@X@2|=Bynj|?z@Hoۙ>?JvFJ@#QL>g'JNjn*pnBB`@T@2|=Bynj|?z@Hoۙ>?-1OSM n 럆L<_ї0MT^RwL~YYT>g'JNjn*pnCB`@0@2|=Bynj|?z@Hoۙ>?7_cOȗz@Hoͤ*EgbĬuRjScript object2AEHM'ceZU@䑧r%q4W}@O{$(XFҦV#.;]kI 忞@"-1OSM n#2AEHM'>g'JNjn*pFBC`@0@?ceZU@䑧r[җJs@ NewObject.// OnComputeOutputs // Called to compute values of all output connectors function OnComputeOutputs(params) { // TODO: put your computation here } NScript Object Package/jScript languagecTr4W}@O{(XFҦV>g'JNjn*pFD}}Look at and Zoom to selectionZ`Ez]UO GFʠN= `00}}January 23 2009Z`Ez]UO GFʠN=` 1}}by Clinton ReeseZ`Ez]UO+BgBAShift State8BbŽiI[_"p$`7z^drAE`mIo`'ǾpPݫ(XFҦV"P4W}@O{$(XFҦV>g'JNjn*pF\BCb@H@?mIo`'Ǿp7z^drAE bŽiI[_" /K.c';z.One from three select2ŢP)=FCBP@{@@T+N:H|GTpX=o9 7+H -@NP?@Eg@B.1c|#pŢ@X=ݫ,bM:3Z0pŢ@X=(XFҦV"04W}@O{$P)=FCBT+N:H|GT(XFҦV>g'JNjn*pFCCb@@X@?Eg@B.1c|#,bM:3Z0 o9 7+H -@NwI}glGesture, 2?WGA^ֵ ԣC`N,n<%PTV⸄BxɜJK@B>y"k1<:KU~4W}@O{$lK E/&R6LE2Data(XFҦVLE2Data, 1"-1OSM n"lK E/&R6>g'JNjn*pFCC`@T@?⸄BxɜJK@B>y4W}@O{(XFҦV>g'JNjn*pF@$DCb@@T@?k1<:KU~ C`N,n<%WGA^ֵ -1OSM n 럆L<_ї048@J g'JNjn*pnBC`@0@2|=Bynj|?z@Hoۙ>?ceZU@䑧r[җJs@ NewCommand// Execute // Called to execute the command function Execute(params) { // // note need to disconnect/reconnect to update widget to use code changes here // System.Trace("start zoom all"); bbox = System.CreateDO("Common Data Package/Number Array Data"); objloc = System.CreateDO("Math Package/Point Data"); camloc = System.CreateDO("Math Package/Point Data"); unitvec = System.CreateDO("Math Package/Point Data"); tempvec = System.CreateDO("Math Package/Point Data"); //initial location for center of zoom(lookat location) objloc.x = 0; objloc.y = 0; objloc.z = 0; xmin = 10000; xmax = -10000; ymin = 10000; ymax = -10000; zmin = 10000; zmax = -10000; size = 0;//initial bounding size scene = Space.CurrentScene(); num = Node.SubObjectCount(scene); numvalid = num; for (i = 0; i < num; i++) { curNode = scene + "/" + Node.SubObject(scene,i); if(Node.ConExists(curNode,"WldMatrix") && Node.SubObjectCount(curNode) > 1) { bbox = Space.GetBoundingBox(curNode); tempvec = Space.GetCenter(curNode, true); objloc.x = objloc.x + tempvec.x ; objloc.y = objloc.y + tempvec.y ; objloc.z = objloc.z + tempvec.z ; //[xmin, xmax, ymin, ymax, zmin, zmax] xminc = bbox.GetAt(0); xmaxc = bbox.GetAt(1); yminc = bbox.GetAt(2); ymaxc = bbox.GetAt(3); zminc = bbox.GetAt(4); zmaxc = bbox.GetAt(5); xmin = Math.min(xminc, xmin); ymin = Math.min(yminc, ymin); zmin = Math.min(zminc, zmin); xmax = Math.max(xmaxc, xmax); ymax = Math.max(ymaxc, ymax); zmax = Math.max(zmaxc, zmax); } else numvalid--; } dx = xmax - xmin; dy = ymax - ymin; dz = zmax - zmin; size = Math.max(dx, dy, dz); if(size>0.0001) { //get average center of selected objects //note does not take into account objloc.x = objloc.x / numvalid ; objloc.y = objloc.y / numvalid ; objloc.z = objloc.z / numvalid ; numcam = Node.SubObjectCount("/D3DView"); for(i=0;i<numcam;i++) { cam = Node.SubObject("/D3DView",i); fov = Node.Value("D3DView/" + cam,"FOV"); camtype = Node.Value("D3DView/" + cam,"CameraType"); //d3dview camera fov is half actual value //choosing a camera view not same as the d3dview camera node if(camtype!=0) { newfov = 10*2*Math.atan(size/(2*500));//cam dist always 500 for ortho, 10 is a magic number Node.Value("D3DView/" + cam,"FOV") = newfov ; } else { ddist = size / (2 * Math.tan(fov/2)); //get unit vector camera to object camloc.x = Node.Value("D3DView/" + cam,"tx"); camloc.y = Node.Value("D3DView/" + cam,"ty"); camloc.z = Node.Value("D3DView/" + cam,"tz"); tempvec.x = objloc.x - camloc.x ; tempvec.y = objloc.y - camloc.y ; tempvec.z = objloc.z - camloc.z ; tempvec.Normalize(); tempvec.x = objloc.x - tempvec.x * ddist; tempvec.y = objloc.y - tempvec.y * ddist; tempvec.z = objloc.z - tempvec.z * ddist; Node.Value("D3DView/" + cam,"tx") = tempvec.x ; Node.Value("D3DView/" + cam,"ty") = tempvec.y ; Node.Value("D3DView/" + cam,"tz") = tempvec.z ; } } } } NScript Object Package/jScript language$>4W}@O{(XFҦV>g'JNjn*pnVDCb@H@2|=Bynj|?z@Hoۙ>?J@#QL>g'JNjn*pnBB`@T@2|=Bynj|?z@Hoۙ>?-1OSM n 럆L<_ї0MT^RwL~YYT>g'JNjn*pnCB`@0@2|=Bynj|?z@Hoۙ>?z@HoA^[Lۇ~8$GJ&Look at Selection3(RոV*!JLucT @da9Lg x\JAQH\ 8$xD4W}@O{$(XFҦV"9Lg x\(XFҦV>g'JNjn*pF|D Db@@P@?JAQH\ 8ucT @daHRsTool.LookAtSelection('%WIN_ID%');ոV*!JL8ʯȥJH|o7 gH]kDwP1W`d8pM*#ͺO2/tfѭ8Lwb"qJ"