gH]kDwP&trueSpaceBeta 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"q!܂dKu=|z8install unselectable scripts.;]kI 忞@.;]kI 忞@"SubObject*Encapsulated objects"nНxxx0xLhs4W}@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*pFCr@@Z@Bh?vRm)EC!a<System.Alert("hello there!");-1OSM n 럆L<_ї6DefaultOˁ CRih[  8|}}LActivity.Run('%THIS_NAME%' + "/doIt")8install buttons and scriptsZ`Ez]UOOˁ CRih[ 88|}}PActivity.Run('%THIS_NAME%' + "/unDoIt")uninstallZ`Ez]UO GFʠN=8H8|,}} version 2.1Z`Ez]UO}} zFAa|say hellol Ģ7 `._E#ބ6gCustomFrame((o.;]kI 忞@"n4W}@O{$*O΢C}*O΢C} WinIDWindow IDm-pϗO 0)t-pϗO 0)PositionShelf Position mz!OHwc(m(m>-MD'zZt>-MD'zZRectangle"Screen Rectangle THj6F 2s*lRÒGbDeC tRÒGbDeC  WidthWindow width(m(l[FB%n*jt[FB%n*jHeightWindow height(m [GDJM [GDJMMin Width$Min. Window width%]GJ7ψ%]GJ7ψMin Height&Min. Window height^^Dy^^DyMax Width$Max. Window widthv43N tv43N tMax Height&Max. Window height~൱D@ j#^c~൱D@ j#^cMaximized(Window Is Maximized 9@'s9@'sRootNodeRootNode{Q !aOt {Q !aOt  TitleTitle Text6*Mv46*Mv4View Index$View window indexf$I `7f$I `7Frame TypeFrame Typej^G@!,j^G@!,"ViewersViewers array 2bOdA)f "I)LL !I)LL ! Def1D Default 1D GUID8M0cry8M0cry Def2D Default 2D GUIDF L$3F L$3 Def3D Default 3D GUIDobFFJL}obFFJL}SnappedTo$Snapped To WindowBXPjKɸtEBXPjKɸtE SnappedToTarget@Snapped To Window Target CornerkJHx(V@WkJHx(V@W SnappedToSource@Snapped To Window Source CornerKTLA7~fKTLA7~f"SnappedToOffsetX6Snapped To Window Offset XK8Y8O#=gtMK8Y8O#=gtM"SnappedToOffsetY6Snapped To Window Offset Ymk~_Lb.mk~_Lb.SnappedToWidth0Snapped To Window Width|7EId |7EId  SnappedToHeight2Snapped To Window HeightKXtO LKXtO L,StartSnappedToOffsetXBStart Snapped To Window Offset XVG))jHETVG))jHET,StartSnappedToOffsetYBStart Snapped To Window Offset Y?V{N7l?V{N7lSnappedToRatio,Snapped To Ratio Mode 86*n^HD9t 86*n^HD9t OwnedByOwned By|_ D|_ DTabsAsButtons Tabs As Buttons _N>G1_N>G1HiddenHidden Flag \q^2FII3w\q^2FII3wPreference,View Preference Panel >=жaMpT>=жaMpT&HideDockedTitlebarJHide Title bar when window is docked N'D)L-N'D)L-MinimizedBHJWindow Is Minimized into Blue Handle ϕ`&FSx9wϕ`&FSx9wSizeLockPrevent horizontal and/or vertical size change. 0x01 - horizontal, 0x02 - vertical˽OS˽OSDispTitleText,Display Titlebar Text Ī8mݧC>!7Ī8mݧC>!7SmallerTabs*Display smaller Tabs (XFҦV"&|_ DkJHx(V@WBXPjKɸtEmk~_Lb.8M0cryN{485B725E-A69D-4AD5-A876-B3BBA72D2C0A}[FB%n*j\q^2FII3wK8Y8O#=gtM6*Mv4 [GDJMRÒGbDeC 1f$I `7{Q !aOt Ī8mݧC>!7obFFJL}I)LL !v43N t (XFҦV>g'JNjn*pFB BX@1@?^^Dy_N>G19@'s*O΢C}N{5FDDFE6E-518F-464A-B4B9-8D24B556E36C}˽OS-pϗO 0)mz!OHwc ϕ`&FSx9w>=жaMpTF L$3j^G@!,2bOdA)f 6^r[HJv-, ^r[HJv-, %]GJ7ψ>-MD'zZKXtO L?V{N7l VG))jHET~൱D@ j#^cN'D)L-86*n^HD9t |7EId KTLA7~f^r[HJv-, tToolbar.;]kI 忞@"4W}@O{$n_<&KES Qn_<&KES Q NameItem nameo(K ]p do(K ]p dHelpTextHelp text8Cechg8Cechg RowsToolbar RowsNL {NL {$Dimension$Toolbar dimension$Z_IFL!OSZ_IFL!OSHorizontal Horizontal Flag .S)A2UЍc.S)A2UЍcIsSubToolbar$IsSubToolbar Flag =JM@hM Q3=JM@hM Q3IsImportant2IsImportant Toolbar Flag .UuwO e.UuwO eIDToolbar ID'0#ԪC'X/9}'0#ԪC'X/9}$ IndexItem Index$_N>G1JdWJc~JdWJc~PrototypePrototype name<9BH@b\<9BH@b\IsMinimizedPTrue/False flag if toolbar is minimized m O1Wwm O1Ww$IsAspectT(Aspect Toolbar Flag $(XFҦV".UuwO e'0#ԪC'X/9}m O1Ww=JM@hM Q3 (XFҦV>g'JNjn*pFBCb@ f@?_N>G1Z_IFL!OS NL {JdWJc~8Cechg.S)A2UЍc n_<&KES Qo(K ]p d<9BH@b\ R/$ķKniaWlockButton'0#ԪC'X/9}]8teO?s]8teO?s"MaxItemTxtHeight.Maximal item text size% sH?DC sH?DCTagTag%IlfāA>ˁwIlfāA>ˁwTagAliasTag Alias%/ru|GF0/ru|GF0AgentIDUpdate agentID(XFҦVLE2Data, 1"-1OSM n".;]kI 忞@"Нx4W}@O{$n_<&KES Qo(K ]p dQm6l3Ll/V^Qm6l3Ll/V^CommandAction commandN="QEj%:N="QEj%:RClickCommand,RClick Action Command$ܿORE bi$ܿORE biPreview2D8Item preview 2D resource id*S]?G[~x;*S]?G[~x;Preview3D8Item preview 3D resource idSr)B8Sr)B8Package"Package class idDNOQsP'ѭDNOQsP'ѭBitmap.Item preview 3D bitmap eSBgciDsL[wiDsL[wRadio Group(Radio buttons group4E*4E*ControlID2D&User Control ID 2Dh>ǑJ]@<h>ǑJ]@<ControlID3D&User Control ID 3D+fyOA7XC+fyOA7XC MaxItemBmpWidth2Maximal item bitmap sizeTl@fC.^&GZTl@fC.^&GZ"MaxItemBmpHeight2Maximal item bitmap sizeh0OY~ C h0OY~ C  MaxItemTxtWidth.Maximal item text size%?Aυ D)7t?Aυ D)7tGrayPercentxGray icon about specified percents if it is not highlighted][D+Iv(][D+Iv( MenuAct As Menu 8{Nm(!8{Nm(!IsMenuButtonIs Menu Button ko6ǑJ]@<N{2BBC850E-6EEF-4364-9265-A4A606AE464B}N="QEj%:UserInterface.OpenToolPanelViewEx2("" , "" ,"/Scripts/CustomCommands/unSelectable", 3, 1, 0);$ܿORE bi//ru|GF0N{00000000-0000-0000-0000-000000000000}+fyOA7XC(XFҦV>g'JNjn*pFBBb@v@p8B?8{Nm(!][D+Iv(ko6ˁw?Aυ D)7tUTl@fC.^&GZo(K ]p ddlock an object for selection - rt click for panel]8teO?s.;]kI 忞@Sr)B8-1OSM n 럆L<_ї0DNOQsP'ѭeSBgc \C:\Users\Clint\Pictures\lockIconPhotoshop.bmpԿVw{J%SyZ xkLSgc}ٷe YƖ%ÖRڂʖ].Y1C"j`9=9X,TQ"TrQ@1^Rq*x!d:[9sr88/Bb)VPry T*כ`YR(JZnnʺrCccmj2 ~ɲ gYYtkkUoO<"FGt=sרTy;|KfJGy#6v5"슌ʕ hiiK4RSw}f뼀J bD碢 \8pMuff0"..n(Tw[ǹa0NGj)FCn 5͸yLze/_ѨښfrhLho?'F[|uuK]ׯ 専'lXm]ĝ;0%O['8ޞqy3pVmuf!޾:&wOw ;J*%%1heyںsm6)u&G뷽#mHͩ^7 6[~ >ƇW&e389CƖQ_x YFU5oSRk9duAE!C@FY,w!CRᆴ]p͐\kꍳQ.AC} Cvzd`BrI^;a,m'~ ۬S@=unΒf7 8fvC;E -B%yU$27BݤNH98sz9盳FmwgES/uAHK8Z9@? rAzjAsDyg'JNjn*pceZU@䑧rceZU@䑧r$_scriptData*Internal Script data [җJs@ %x4W}@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(); button1 = "lockButton"; //button2 = "lassoSelectButton"; theScript = "unSelectable"; theWidget = "Select"; //theWidget2 = "PE lasso select"; theWidgetPath = "/Widgets/Edit/Default context"; // if(Node.Exists("/Project/Windows Manager Space/CustomFrame/Toolbar/" + button1)) { replaceLeft = System.Question(button1 + " button already exists in the toolbar. Would you like to replace it?"); if(replaceLeft) Node.Delete("/Project/Windows Manager Space/CustomFrame/Toolbar/" + button1); else return; } //if(Node.Exists("/Project/Windows Manager Space/CustomFrame/Toolbar/" + button2)) //{ // replaceLeft = System.Question(button2 + " button already exists in the toolbar. Would you like to replace it?"); // if(replaceLeft) // Node.Delete("/Project/Windows Manager Space/CustomFrame/Toolbar/" + button2); // else // return; //} //check for and create customframe if(!Node.Exists("/Project/Windows Manager Space/CustomFrame")) Node.Copy(owner + "/CustomFrame","/Project/Windows Manager Space"); //copy buttons to custom frame oldButt = Node.Copy(owner + "/" + button1,"/Project/Windows Manager Space/CustomFrame/Toolbar"); //oldButt = Node.Copy(owner + "/" + button2,"/Project/Windows Manager Space/CustomFrame/Toolbar"); //copy script to custom commands //create CustomCommands if(!Node.Exists("/Scripts/CustomCommands")) { temp = Node.Create("Kernel Package/Object","/Scripts"); custcom = Node.Rename(temp,"CustomCommands"); } if(Node.Exists("/Scripts/CustomCommands/" + theScript)) { replaceLeft = System.Question(theScript + " script already exists. Would you like to replace it?"); if(replaceLeft) Node.Delete("/Scripts/CustomCommands/" + theScript); else return; } Node.Copy(owner + "/" + theScript,"/Scripts/CustomCommands"); //replacing base widgets for point edit rectangle select and lasso select //backup the originals if not already backedup if(!Node.Exists(theWidgetPath + "/" + theWidget + "ORIGINAL")) { //disconnect it Node.Disconnect(theWidgetPath + "/World origin docking", "World center", 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 + "/World origin docking", "World center", theWidgetPath + "/" + theWidget, "DockingPosition"); //second widget backup the originals if not already backedup //if(!Node.Exists(theWidgetPath + "/" + theWidget2 + "ORIGINAL")) //{ // //rename the widget node // Node.Rename(theWidgetPath + "/" + theWidget2, theWidget2+"ORIGINAL"); //} //else //{ // Node.Delete(theWidgetPath + "/" + theWidget2);//delete non-original //} //copy replacement widget node //Node.Copy(owner + "/" + theWidget2, theWidgetPath); //activate it WindowsManager.Activate(); WindowsManager.UpdateWindowsStructure(); //reset the toolbar //1D Aspect WindowsManager.SetWindowAspect('/Project/Windows Manager Space/CustomFrame', 1); //2D Aspect WindowsManager.SetWindowAspect('/Project/Windows Manager Space/CustomFrame', 2); } NScript Object Package/jScript language~൱D,$$#^c4W}@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 unDoIt -1OSM n#2AEHM'ceZU@䑧r%x4W}@O{$(XFҦVLE2Data, 1#J@#QLLE2Data, 3MT^RwL~YYTLE2Data, 22|=Bynjz@Ho 2|=Bynj2AEHM'>g'JNjn*pnBC`@0@2|=Bynj|?z@Hoۙ>?ceZU@䑧r[җJs@ 0NewCommand// Execute // Called to execute the command function Execute(params) { // TODO: put your action code here owner = System.ThisOwner(); button1 = "lockButton"; //button2 = "lassoSelectButton"; theScript = "unSelectable"; theWidget = "Select"; //theWidget2 = "PE lasso select"; theWidgetPath = "/Widgets/Edit/Default context"; //remove buttons if(Node.Exists("/Project/Windows Manager Space/CustomFrame/Toolbar/" + button1)) { Node.Delete("/Project/Windows Manager Space/CustomFrame/Toolbar/" + button1); } //if(Node.Exists("/Project/Windows Manager Space/CustomFrame/Toolbar/" + button2)) //{ // Node.Delete("/Project/Windows Manager Space/CustomFrame/Toolbar/" + button2); //} //remove the script if(Node.Exists("/Scripts/CustomCommands/" + theScript)) { Node.Delete("/Scripts/CustomCommands/" + theScript); } //replace the Select node of the Default context with the original saved from previous install 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 + "/World origin docking", "World center", theWidgetPath + "/" + theWidget, "DockingPosition"); } //second custom widget revert to original //if(Node.Exists(theWidgetPath + "/" + theWidget2 + "ORIGINAL")) //{ // if(Node.Exists(theWidgetPath + "/" + theWidget2)) // Node.Delete(theWidgetPath + "/" + theWidget2); // widg = Node.Copy(theWidgetPath + "/" + theWidget2+"ORIGINAL", theWidgetPath); // Node.Rename(widg, theWidget2) //} //activate it WindowsManager.Activate(); WindowsManager.UpdateWindowsStructure(); //reset the toolbar //1D Aspect WindowsManager.SetWindowAspect('/Project/Windows Manager Space/CustomFrame', 1); //2D Aspect WindowsManager.SetWindowAspect('/Project/Windows Manager Space/CustomFrame', 2); } NScript Object Package/jScript language~൱Dk$#^c4W}@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=6Select x.;]kI 忞@#XK8;X?LL0x4W}@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*p`|oC3`|oC3 DockingPosition"Docking position \J C[>azM@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@?(XFҦV>g'JNjn*pFCCb@@@1C?azM@a>g'JNjn*pFC@C`@0@$B?啯]`O둒B>g'JNjn*pFC@C`@0@BB?՞'fA5-_9F*DI}58P>g'JNjn*pFC@C`@0@!?OCh}?d=>g'JNjn*pFC@C`@0@?`|oC3-1OSM n 럆L<_ї0.;]kI 忞@wI}g/Gesture xWGA^ֵ WGA^ֵ InputFilterInput filters C`N,n<%C`N,n<%ControlOut&Control activation⸄BxɜJK@B>y⸄BxɜJK@B>yGestureGesture output Է`HgC:MUxk1<:KU~k1<:KU~ActiveGesture active 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*pF5Cb@@T@?C`N,n<%k1<:KU~ WGA^ֵ -1OSM n 럆L<_ї0sN!{8E :Background widget controller !N޷IZ}յQ!N޷IZ}յQ DockingPosition"Docking position \J C[>k+D"J>Pk+D"J>PActive>True, it base widget is active xS: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#XK4W}@O{%(XFҦVLE2Data, 1#dCu繹NdCu繹NPriorityTool priority dCu繹NS:iD p\ohe}4W}@O{!N޷IZ}յQhd~F Hw`^02eE{|@B????(XFҦV>g'JNjn*pFCBb@_@?cLo@d:k+D"J>P -1OSM n 럆L<_ї0m0Mur^BJh Mouse LClickNbŽiI[_"tbŽiI[_"$Input stateInput state NO7*-%h87z^drAE7z^drAEKeyfilterIn(Key control flow in h8mIo`'ǾpTmIo`'ǾpKeyfilterOut*Key control flow out  x84W}@O{%(XFҦVLE2Data, 1#-1OSM n#4W}@O{(XFҦV>g'JNjn*pF) Cb@H@?mIo`'ǾpbŽiI[_"7z^drAE -1OSM n 럆L<_ї0+ Hq 2wSelect objectF b=C8llY;F b=C8llY;ConntrolInControl in;4W}@O{%(XFҦVLE2Data, 1#-1OSM n#PnUG/.nUG/.Select*Add obj to selection 00CH1~ܱ0CH1~ܱDeselect4Remove obj from selection ڜ߸BF’ڜ߸BF’"Enable highlight@Enable highlight during picking ڜ߸BF’ 4W}@O{(XFҦV>g'JNjn*pFB Cb@@T@?0CH1~ܱ F b=C8llY;-1OSM n 럆L<_ї0nUG/. +BgdĊShift StatebŽiI[_"p%7z^drAEmIo`'ǾpP04W}@O{%(XFҦVLE2Data, 1#-1OSM n#4W}@O{(XFҦV>g'JNjn*pFTNCb@H@?mIo`'Ǿp bŽiI[_"7z^drAE -1OSM n 럆L<_ї0Q:A5J6<Ctrl state`bŽiI[_"p$ 7z^drAE mIo`'ǾpPPX?4W}@O{$(XFҦV"(XFҦV>g'JNjn*pFx]CX@1@?mIo`'ǾpbŽiI[_"7z^drAE 4 J}bahĻSequenceʼnA;E\qe#ʼnA;E\qe#ControlInControl in5Kz!/5Kz!/ First8First action, button style.ݠ&8OwTu>Q&8OwTu>QSecondBSecond action, continuous style.L ^H-t2 ^H-t2EnabledEnable execution of first action. If disabled, action sequence is ignored. JAQH\ 8JAQH\ 8$$Widget parameters2Hidden widget parameters WAMydY_$(XFҦV"L4W}@O{$&8OwTu>QʼnA;E\qe#5Kz!/(XFҦV>g'JNjn*pFBCb@@T@?JAQH\ 8 ^H-t2A^[Lۇ~8tv,Simple Script CommandLոV*!JLոV*!JLConntrolInControl inucT @daucT @daCommand&Command to execute9Lg x\9Lg x\Undo commandUndo commandJAQH\ 8$(XFҦV"L4W}@O{$9Lg x\(XFҦV>g'JNjn*pFBCb@@P@?JAQH\ 8ucT @daActivity.Run("/Scripts/CustomCommands/unSelectable/deselectIt");ոV*!JL܂dKu=왠unSelectableL.;]kI 忞@"FK0KL`?Ǒ (O L4W}@O{$(XFҦV"-1OSM n"ZDԄ@"O7Ԅ@"O7Dundoit T5 (;M7S~;M7S~Dactive T0p ;M7S~ Ԅ@"O7 (XFҦV>g'JNjn*pFDBb@q@PAA?-1OSM n 럆L<_ї Default Notes GFʠN=08q}}vundoit - if checked and a locked item is selected it will undo the last operation resulting in the original selection.Z`Ez]UO GFʠN=0p8q}}if unchecked will create a new selection without any locked items. The original selection will be lost and there may be no selection at all.Z`Ez]UO GFʠN=p8qO}}.Lock It - lock the item from future selection.Z`Ez]UO GFʠN=8qG}}&Unlock It - remove the selection lock.Z`Ez]UO GFʠN=8qL}}+Unlock All - remove all locks in the scene.Z`Ez]UO GFʠN=8qV}}5Select Locked Nodes - might be useful for hide/unhideZ`Ez]UO GFʠN= 8q}}Only works with basic selection. It will not work with booleans, because the selected item will disappear from the scene before it can be checked.Z`Ez]UO GFʠN= 88qC}}"KEEP INACTIVE WHEN NOT BEING USED.Z`Ez]UOOˁ CRih[Xx}}PActivity.Run("%THIS_NAME%" + "/lockIt")Lock ItZ`Ez]UOOˁ CRih[x}}TActivity.Run("%THIS_NAME%" + "/unlockIt")Unlock ItZ`Ez]UOOˁ CRih[}}VActivity.Run("%THIS_NAME%" + "/unlockAll")Unlock AllZ`Ez]UO GFʠN=,}} version 2.1Z`Ez]UOOˁ CRih[}}^Activity.Run('%THIS_NAME%' + "/selectLocked");(Select Locked NodesZ`Ez]UO GFʠN=@1 }}Ԅ@"O7Z`Ez]UOͽ>fdN*5Ւh@, }}Ԅ@"O7Z`Ez]UO GFʠN=@ 1 }};M7S~Z`Ez]UOͽ>fdN*5Ւh@ , }};M7S~±Z`Ez]UO GFʠN= Psb )RMay interfere with scripts that use selection changes. Only activate when needed.ƄvR^I҂{iks}}}}Ģ7 48@J g'JNjn*pnBC`@0@2|=Bynj|?z@Hoۙ>?ceZU@䑧r[җJs@ NewCommand// lockIt // // November 24 2010 // // by Clinton Reese // www.clintons3d.com // // mark current selection as locked // // // Execute // Called to execute the command function Execute(params) { // get selection owner = System.ThisOwner(); sel = Node.Selection(); num = Node.SelectedCount(); for(i=0;i<num;i++) { cursel = Node.SelectionGetAt(sel,i); System.Trace(cursel); //valid scene object if(Node.ConExists(cursel,"WldMatrix")) { //copy selection locking node if does not exist if(!Node.ConExists(cursel,"UnSelectable")) { newnode = Node.Copy(owner + "/selectionLocking",cursel); Node.ExportConnector(newnode, "UnSelectable", "", 1, 1); } Node.Value(cursel,"UnSelectable") = true; } } } NScript Object Package/jScript language.Ė4W}@O{(XFҦV>g'JNjn*pnBB`@@P@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@ bNewCommand// unlockIt // // november 24 2010 // // by Clinton Reese // www.clintons3d.com // // remove items from selection locking // // // Execute // Called to execute the command function Execute(params) { // get selection owner = System.ThisOwner(); sel = Node.Selection(); num = Node.SelectedCount(); for(i=0;i<num;i++) { cursel = Node.SelectionGetAt(sel,i); System.Trace(cursel); //valid scene object with unselectable connector if(Node.ConExists(cursel,"WldMatrix")) if(Node.ConExists(cursel,"UnSelectable")) Node.Value(cursel,"UnSelectable") = false; } } NScript Object Package/jScript language~൱D@ j#^c4W}@O{(XFҦV>g'JNjn*pnC B`@@P@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ͤ*EgbĬD"selectionLocking2AEHM'ceZU@䑧r%L4W}@O{$(XFҦV#.;]kI 忞@"-1OSM n#%&Mb\cU%&Mb\cUDUnSelectable D2AEHM'>g'JNjn*pFBC`@0@?ceZU@䑧r[җJs@ NewObject// OnComputeOutputs // Called to compute values of all output connectors function OnComputeOutputs(params) { var UnSelectable = params.ConValue('UnSelectable'); // TODO: put your computation here } NScript Object Package/jScript language4hbooleanUnSelectable %&Mb\cU%&Mb\cU 4W}@O{(XFҦV>g'JNjn*pFC+Cb@@@?-1OSM n 럆L<_ї0.;]kI 忞@48@J g'JNjn*pnBC`@0@2|=Bynj|?z@Hoۙ>?ceZU@䑧r[җJs@ NewCommand" // unlockAll // // nov 24 2010 // // by Clinton Reese // www.clintons3d.com // // unlock all items from the locked selections // function ExploreNode(thePath) { //declare local variables for recusrsive calls var curIndex; var curnumObj; var childPath, MyObj; //valid scene object with unselectable connector and not the selectionLocking node(has no child) if(Node.ConExists(thePath,"WldMatrix")) if(Node.ConExists(thePath,"UnSelectable")) if(Node.SubObjectCount(thePath)>1) Node.Value(thePath,"UnSelectable") = false; //get first child curIndex = 0; curnumObj = Node.SubObjectCount(thePath); if(curnumObj > 0) { MyObj = Node.SubObject(thePath,0); childPath = thePath + "/" + MyObj; } //recursion runs here - get the next child while(curnumObj > 0) { ExploreNode(childPath); curIndex = curIndex + 1; if(curIndex < curnumObj) { MyObj = Node.SubObject(thePath, curIndex); childPath = thePath + "/" + MyObj; } else curnumObj = 0; } } // Called to execute the command function Execute(params) { scene = Space.CurrentScene(); //recursively search scene and set unlock selection ExploreNode(scene); // get selection owner = System.ThisOwner(); sel = Node.Selection(); num = Node.SelectedCount(); for(i=0;i<num;i++) { cursel = Node.SelectionGetAt(sel,i); System.Trace(cursel); } } NScript Object Package/jScript language~൱Dt} #^c4W}@O{(XFҦV>g'JNjn*pnB C`@@P@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@ NewCommand// Execute // Called to execute the command function Execute(params) { var undoOption = params.ConValue('undoOption'); // deselectNode = "/Scripts/CustomCommands/deselectIt"; // TODO: put your computation here if(Node.Exists(deselectNode)) { if(Node.ConExists(deselectNode ,"undoit")) { Node.Value(deselectNode,"undoit") = undoOption; } } } NScript Object Package/jScript language~൱DD#^cbooleanundoOption ^nԽBWx.Bf4W}@O{(XFҦV>g'JNjn*pnD@Bb@@P@2|=Bynj|?z@Hoۙ>?J@#QL>g'JNjn*pnBB`@T@2|=Bynj|?z@Hoۙ>?^nԽBWx.Bf -1OSM n 럆L<_їjControlOˁ CRih[ a8Activity.Run('%THIS_NAME%') StartZ`Ez]UOOˁ CRih[ 0a: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( // unlockAll // // nov 24 2010 // // by Clinton Reese // www.clintons3d.com // // unlock all items from the locked selections // function ExploreNode(thePath) { //declare local variables for recusrsive calls var curIndex; var curnumObj; var childPath, MyObj; //valid scene object with //unselectable connector and //not the selectionLocking node(has no child) //not selectable so add to selection list if(Node.ConExists(thePath,"WldMatrix")) if(Node.ConExists(thePath,"UnSelectable")) if(Node.SubObjectCount(thePath)>1) if(Node.Value(thePath,"UnSelectable")) { if(!firstOne) sel = sel + ";"; else firstOne = false; sel = sel + thePath; } //get first child curIndex = 0; curnumObj = Node.SubObjectCount(thePath); if(curnumObj > 0) { MyObj = Node.SubObject(thePath,0); childPath = thePath + "/" + MyObj; } //recursion runs here - get the next child while(curnumObj > 0) { ExploreNode(childPath); curIndex = curIndex + 1; if(curIndex < curnumObj) { MyObj = Node.SubObject(thePath, curIndex); childPath = thePath + "/" + MyObj; } else curnumObj = 0; } } // Called to execute the command function Execute(params) { scene = Space.CurrentScene(); sel = ""; firstOne = true; //recursively search scene and set unlock selection ExploreNode(scene); // get selection //owner = System.ThisOwner(); //sel = Node.Selection(); //num = Node.SelectedCount(); //for(i=0;i<num;i++) //{ // cursel = Node.SelectionGetAt(sel,i); // System.Trace(cursel); //} if(sel != "") Space.Select(sel); } NScript Object Package/jScript languageD'$4W}@O{(XFҦV>g'JNjn*pnBC`@@P@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ۙ>?Ԅ@"O7 ceZU@䑧r[җJs@ NewCommand //deselectIt // // November 24 2010 // // January 2 2011 - can interfere with scripts that use selection changes so add active // // Clinton Reese // www.clintons3d.com // // script placed in /Scripts/CustomCommands and run from a custom Select node in the widgets // /Widgets/Edit/Default context/Select // // // Execute // Called to execute the command function Execute(params) { var undoit = params.ConValue('undoit'); var active = params.ConValue('active'); if(!active) return; //undoit true - will go back to previous selection faster? but may miss some cases //undoit false - lose selection if only one item // TODO: put your action code here //System.Trace("deselect it"); //get list of selected nodes sel = Node.Selection(); num = Node.SelectedCount(); //if not empty list if(num > 0) { seltext = ""; for(i=0;i<num;i++) { //add to the selection unless unselectable is true addtosel = true; cursel = Node.SelectionGetAt(sel,i); if(Node.ConExists(cursel,"WldMatrix")) { // if(Node.ConExists(cursel,"UnSelectable")) { if(Node.Value(cursel,"UnSelectable") == true) { addtosel = false; } } } //check each and add to text list with ; delimiter if(addtosel) { if(i!=0) seltext = seltext + ";"; seltext = seltext + cursel; } else if(undoit ) { RsApp.Undo(); //System.Trace("yes undoit now"); return; } } //deselect then select with the new list Space.Unselect(); Space.Select(seltext); } } NScript Object Package/jScript languagebooleanundoit Ԅ@"O7booleanactive ;M7S~4W}@O{(XFҦV>g'JNjn*pnC|Cb@@X@2|=Bynj|?z@Hoۙ>?J@#QL>g'JNjn*pnBB`@T@2|=Bynj|?z@Hoۙ>?-1OSM n 럆L<_їjControlOˁ CRih[ a8Activity.Run('%THIS_NAME%') StartZ`Ez]UOOˁ CRih[ 0a:Activity.Stop('%THIS_NAME%') StopZ`Ez]UOMT^RwL~YYT>g'JNjn*pnCB`@0@2|=Bynj|?z@Hoۙ>?z@HoĢ7 8ʯȥJH|o7 gH]kDwP`d8pM*#ͺO2/tfѭ8Lwb"q!9