LightPropertiesForm.cs 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Windows.Forms;
  4. using Autodesk.Max;
  5. namespace Max2Babylon
  6. {
  7. public partial class LightPropertiesForm : Form
  8. {
  9. private readonly List<IINode> lights = new List<IINode>();
  10. public LightPropertiesForm()
  11. {
  12. InitializeComponent();
  13. }
  14. private void LightPropertiesForm_Load(object sender, EventArgs e)
  15. {
  16. for (var index = 0; index < Loader.Core.SelNodeCount; index++)
  17. {
  18. var node = Loader.Core.GetSelNode(index);
  19. if (node.ObjectRef != null && node.ObjectRef.Eval(0).Obj.SuperClassID == SClass_ID.Light)
  20. {
  21. lights.Add(node);
  22. }
  23. }
  24. Tools.PrepareCheckBox(chkNoExport, lights, "babylonjs_noexport");
  25. Tools.PrepareCheckBox(chkAutoAnimate, lights, "babylonjs_autoanimate");
  26. Tools.PrepareCheckBox(chkLoop, lights, "babylonjs_autoanimateloop");
  27. Tools.PrepareCheckBox(ckForceBackFaces, lights, "babylonjs_forcebackfaces");
  28. Tools.PrepareNumericUpDown(nupFrom, lights, "babylonjs_autoanimate_from");
  29. Tools.PrepareNumericUpDown(nupTo, lights, "babylonjs_autoanimate_to", 100.0f);
  30. Tools.PrepareNumericUpDown(nupBias, lights, "babylonjs_shadows_bias", 0.00005f);
  31. Tools.PrepareNumericUpDown(nupBlurScale, lights, "babylonjs_shadows_blurScale", 2);
  32. Tools.PrepareNumericUpDown(nupBlurBoxOffset, lights, "babylonjs_shadows_blurBoxOffset", 1);
  33. Tools.PrepareComboBox(cbCameraType, lights[0], "babylonjs_shadows_type", "Blurred ESM");
  34. }
  35. private void butOK_Click(object sender, EventArgs e)
  36. {
  37. Tools.UpdateCheckBox(chkNoExport, lights, "babylonjs_noexport");
  38. Tools.UpdateCheckBox(chkAutoAnimate, lights, "babylonjs_autoanimate");
  39. Tools.UpdateCheckBox(chkLoop, lights, "babylonjs_autoanimateloop");
  40. Tools.UpdateCheckBox(ckForceBackFaces, lights, "babylonjs_forcebackfaces");
  41. Tools.UpdateNumericUpDown(nupFrom, lights, "babylonjs_autoanimate_from");
  42. Tools.UpdateNumericUpDown(nupTo, lights, "babylonjs_autoanimate_to");
  43. Tools.UpdateNumericUpDown(nupBias, lights, "babylonjs_shadows_bias");
  44. Tools.UpdateNumericUpDown(nupBlurScale, lights, "babylonjs_shadows_blurScale");
  45. Tools.UpdateNumericUpDown(nupBlurBoxOffset, lights, "babylonjs_shadows_blurBoxOffset");
  46. Tools.UpdateComboBox(cbCameraType, lights, "babylonjs_shadows_type");
  47. }
  48. private void chkAutoAnimate_CheckedChanged(object sender, EventArgs e)
  49. {
  50. grpAutoAnimate.Enabled = chkAutoAnimate.Checked;
  51. }
  52. private void cbCameraType_SelectedIndexChanged(object sender, EventArgs e)
  53. {
  54. grpBlurInfo.Enabled = (cbCameraType.SelectedIndex == 3);
  55. }
  56. }
  57. }