index.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. //UI
  2. var gui = new dat.GUI();
  3. var options = {
  4. texture: "standard",
  5. mesh: "sphere",
  6. hemisphericLight: true,
  7. pointLight: false,
  8. directionalLight: false,
  9. castShadows: false,
  10. spotLight: false,
  11. fog: false,
  12. skybox: false,
  13. ascii: false,
  14. digitalRain: false
  15. }
  16. var registeredUIs = {};
  17. var textureui;
  18. window.registerColorPicker = function(texture, name, color, onChange, onSet) {
  19. if (!registeredUIs[texture]) {
  20. registeredUIs[texture] = [];
  21. }
  22. registeredUIs[texture].push({
  23. name: name,
  24. color: "#ff0000",
  25. onChange: onChange,
  26. onSet: onSet
  27. });
  28. };
  29. window.registerRangeUI = function(texture, name, minValue, maxValue, onChange, onSet) {
  30. if (!registeredUIs[texture]) {
  31. registeredUIs[texture] = [];
  32. }
  33. registeredUIs[texture].push({
  34. name: name,
  35. minValue: minValue,
  36. maxValue: maxValue,
  37. onChange: onChange,
  38. onSet: onSet
  39. });
  40. }
  41. var setUi = function(ui) {
  42. options[ui.name] = ui.onSet();
  43. if (ui.color) {
  44. textureui.addColor(options, ui.name).onChange(function(value) {
  45. ui.onChange(value);
  46. });
  47. } else {
  48. textureui.add(options, ui.name, ui.minValue, ui.maxValue).onChange(function(value) {
  49. ui.onChange(value);
  50. });
  51. }
  52. }
  53. window.enableTexture = function(texture) {
  54. if (textureui) {
  55. textureui.domElement.parentElement.removeChild(textureui.domElement);
  56. textureui = null;
  57. }
  58. if (registeredUIs[texture]) {
  59. textureui = new dat.GUI();
  60. for (var index = 0; index < registeredUIs[texture].length; index++) {
  61. var ui = registeredUIs[texture][index];
  62. setUi(ui);
  63. }
  64. }
  65. }