Advertisement
Guest User

Untitled

a guest
Mar 31st, 2013
208
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // DAZ Studio version 4.5.1.56 filetype DAZ Script
  2.  
  3. //each time we press a "turn" button we rotate by this many degrees
  4. var  ROTATIONSTEP = 5;
  5. //each time we press a "tilt" button we rotate by this many degrees
  6. var  TILTSTEP = 5;
  7. //each time we press a "up/down" button we move by this many centimeters
  8. var ALTITUDESTEP = 50;
  9. //each time we press a "forth/back" button we move by this many centimeters
  10. var SPEED = 50;
  11.  
  12. var numselnodes = Scene.getNumSelectedNodes();
  13. var cam;
  14. var wDlg;
  15. var wRecordBtn;
  16. var butar = new Array();
  17. var butexts = new Array(
  18.     "&q\nUp", "&w\nForth", "&z\nDown",
  19.     "&a \nLeft", "&5\n-----", "&d\nRight",
  20.     "&e\nTilt Up", "&s\nBack", "&c\nTilt Dn"
  21.     );
  22. var butfuncs = new Array( bf7, bf8, bf9, bf4, bf5, bf6, bf1, bf2, bf3 );
  23. var wLblTilt;
  24. var wLblElevvar;
  25. var wLblHeading;
  26. var mytimer = 0;
  27. if( numselnodes > 0 )
  28. {
  29.     cam = Scene.getSelectedNode( 0 );
  30.     createdash();
  31.     wDlg.exec();
  32. }
  33. else
  34. {
  35.     MessageBox.critical("SELECT A CAMERA FIRST", "NOT FOUND", "OK");
  36. }
  37.  
  38. //===================================================
  39. //
  40. //===================================================
  41. function createdash()
  42. {
  43.     wDlg = new DzDialog;
  44.     wDlg.caption = "FlyCam";
  45.     var wDlgLyt = new DzVBoxLayout( wDlg );
  46.     wDlgLyt.autoAdd = true;
  47.     wDlgLyt.margin = 5;
  48.     wDlgLyt.spacing = 5;
  49.  
  50.     var wDashboardGB = new DzGroupBox( wDlg );
  51.     wDashboardGB.flat = true;
  52.     var wDashboardLyt = new DzGridLayout( wDashboardGB );
  53.     wDashboardLyt.margin = 5;
  54.     wDashboardLyt.spacing = 5;
  55.     var i;
  56.     for( i = 0; i < 9; i++ )
  57.     {
  58.         butar[ i ] = new DzPushButton( wDashboardGB );
  59.         butar[ i ].text = butexts[ i ];
  60.         //butar[ i ].alignment = AlignCenter;
  61.         butar[ i ].setFixedSize( 80, 64 );
  62.         wDashboardLyt.addWidget( butar[ i ], i / 3, i % 3 );
  63.         connect( butar[ i ], "pressed()", butfuncs[ i ] );
  64.        
  65.     }
  66.  
  67.     var ctl;
  68.     wLblTilt = new DzLabel( wDashboardGB );
  69.     ctl = cam.getXRotControl();
  70.     var xRot = ctl.getValue();
  71.     xRot = Math.floor( xRot );
  72.     wLblTilt.text = "Tilt: " + xRot + "°";
  73.     wDashboardLyt.addWidget( wLblTilt, i / 3, i % 3 );
  74.     ++i;
  75.  
  76.     wLblElev = new DzLabel( wDashboardGB );
  77.     ctl = cam.getYPosControl();
  78.     var yPos = ctl.getValue();
  79.     yPos = Math.floor( yPos );
  80.     wLblElev.text = "Altitude: " + yPos;
  81.     wDashboardLyt.addWidget( wLblElev, i / 3, i % 3 );
  82.     ++i;
  83.  
  84.     wLblHeading = new DzLabel( wDashboardGB );
  85.     ctl = cam.getYRotControl();
  86.     var yRot = ctl.getValue();
  87.     yRot = Math.floor( yRot );
  88.     wLblHeading.text = "Heading: " + yRot + "°";
  89.     wDashboardLyt.addWidget( wLblHeading, i / 3, i % 3 );
  90.  
  91.     var wDlgBtnsGB = new DzGroupBox( wDlg );
  92.     wDlgBtnsGB.flat = true;
  93.     var wDlgBtnsLyt = new DzGridLayout( wDlgBtnsGB );
  94.     wDlgBtnsLyt.margin = 5;
  95.     wDlgBtnsLyt.spacing = 5;
  96.     wDlgBtnsLyt.setColStretch( 1, 1 );
  97.  
  98.     //record button
  99.     wRecordBtn = new DzPushButton( wDlgBtnsGB );
  100.     wRecordBtn.text = "(&o) RecordStart";
  101.     wRecordBtn.minWidth = 80;
  102.     wRecordBtn.maxHeight = 20;
  103.     wDlgBtnsLyt.addWidget( wRecordBtn, 0, 2 );
  104.     connect( wRecordBtn, "pressed()", RecordStart );
  105.     var wCancelBtn = new DzPushButton( wDlgBtnsGB );
  106.  
  107.     //cancel button
  108.     wCancelBtn.text = "(&p) Exit";
  109.     wCancelBtn.minWidth = 80;
  110.     wCancelBtn.maxHeight = 20;
  111.     wDlg.setRejectButton( wCancelBtn );
  112.     wDlgBtnsLyt.addWidget( wCancelBtn, 0, 3 );
  113.  
  114.     wDlg.width = wDlg.minWidth > 400 ? wDlg.minWidth : 400;
  115.     wDlg.height = wDlg.minHeight;
  116. }
  117.  
  118. //===================================================
  119. //
  120. //===================================================
  121. function RecordStart()
  122. {
  123.     if( wRecordBtn.text == "RecordStop" )
  124.     {
  125.         killTimer( mytimer );
  126.         wRecordBtn.text = "RecordStart";
  127.     }
  128.     else
  129.     {
  130.         wRecordBtn.text = "RecordStop";
  131.         mytimer = startTimer( 1000, RecordNow );
  132.     }
  133.  
  134. }
  135.  
  136. //===================================================
  137. //
  138. //===================================================
  139. function RecordNow()
  140. {
  141.     Scene.setTime( Scene.getTime() + 4800 );
  142. }
  143.  
  144. //===================================================
  145. //
  146. //===================================================
  147. function MoveUpDn( dir )
  148. {
  149.     var ctl = cam.getYPosControl();
  150.     var yPos = ctl.getValue();
  151.     yPos += dir * ALTITUDESTEP;
  152.     ctl.setValue( yPos );
  153.     yPos = Math.floor( yPos );
  154.     wLblElev.text = "Altitude: " + yPos;
  155. }
  156.  
  157. //===================================================
  158. //
  159. //===================================================
  160. function TiltUpDn( dir )
  161. {
  162.     var xRot = cam.getXRotControl().getValue();
  163.     xRot += ( dir * TILTSTEP );
  164.     cam.getXRotControl().setValue( xRot );
  165.     xRot = Math.floor( xRot );
  166.     wLblTilt.text = "Tilt: " + xRot + "°";
  167. }
  168.  
  169. //===================================================
  170. //
  171. //===================================================
  172. function BackForth( dir )
  173. {
  174.     var headingZ = cam.getWSRot().getZAxis();
  175.     headingZ.x *= ( dir * -SPEED );
  176.     headingZ.y *= ( dir * -SPEED );
  177.     headingZ.z *= ( dir * -SPEED );
  178.     var ctl = cam.getXPosControl();
  179.     var xPos = ctl.getValue();
  180.     xPos += headingZ.x;
  181.     ctl.setValue( xPos );
  182.     var ctl = cam.getYPosControl();
  183.     var yPos = ctl.getValue();
  184.     yPos += headingZ.y;
  185.     ctl.setValue( yPos );
  186.     var ctl = cam.getZPosControl();
  187.     var zPos = ctl.getValue();
  188.     zPos += headingZ.z;
  189.     ctl.setValue( zPos );
  190. }
  191.  
  192. //===================================================
  193. //
  194. //===================================================
  195. function Turn( dir )
  196. {
  197.     var yRot = cam.getYRotControl().getValue();
  198.     yRot += ( dir * ROTATIONSTEP );
  199.     cam.getYRotControl().setValue( yRot );
  200.     yRot = Math.floor( yRot );
  201.     wLblHeading.text = "Heading: " + yRot + "°";
  202. }
  203.  
  204. //===================================================
  205. function bf7()
  206. {
  207.     MoveUpDn( +1 );
  208. }
  209.  
  210. //===================================================
  211. function bf8()
  212. {
  213.     BackForth( +1 );
  214. }
  215.  
  216. //===================================================
  217. function bf9()
  218. {
  219.     MoveUpDn( -1 );
  220. }
  221.  
  222. //===================================================
  223. function bf4()
  224. {
  225.     Turn( +1 );
  226. }
  227.  
  228. //===================================================
  229. function bf5()
  230. {
  231. }
  232.  
  233. //===================================================
  234. function bf6()
  235. {
  236.     Turn( -1 );
  237. }
  238.  
  239. //===================================================
  240. function bf1()
  241. {
  242.     TiltUpDn( +1 );
  243. }
  244.  
  245. //===================================================
  246. function bf2()
  247. {
  248.     BackForth( -1 );
  249. }
  250.  
  251. //===================================================
  252. function bf3()
  253. {
  254.     TiltUpDn( -1 );
  255. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement