Source: extern/particles.js

  1. import register from "../util/register.js";
  2. import m_particles_fact from "../intern/particles.js";
  3. import m_print_fact from "../intern/print.js";
  4. /**
  5. * {@link https://www.blend4web.com/doc/en/particles.html|Particle system} API. Please note that particle emission itself is controlled by the {@link module:animation} module.
  6. * @module particles
  7. */
  8. function Particles(ns, exports) {
  9. var m_particles = m_particles_fact(ns);
  10. var m_print = m_print_fact(ns);
  11. /**
  12. * Set particle size.
  13. * @method module:particles.set_size
  14. * @param {Object3D} obj Emitter object.
  15. * @param {string} psys_name Particle system name.
  16. * @param {number} size Particle size.
  17. * @example var m_particles = require("particles");
  18. * var m_scenes = require("scenes");
  19. *
  20. * var cube = m_scenes.get_object_by_name("Cube");
  21. * m_particles.set_size(cube, "MyParticleSystem", 2.4);
  22. */
  23. exports.set_size = function(obj, psys_name, size) {
  24. if (!m_particles.obj_has_psys(obj, psys_name)) {
  25. m_print.error("set_size(): Object \"" + obj.name + "\" has not a particle system named \""
  26. + psys_name + "\"");
  27. return;
  28. }
  29. m_particles.set_size(obj, psys_name, size);
  30. }
  31. /**
  32. * Set particle normal factor.
  33. * @method module:particles.set_normal_factor
  34. * @param {Object3D} obj Emitter object.
  35. * @param {string} psys_name Particle system name.
  36. * @param {number} nfactor Particle normal factor.
  37. * @example var m_particles = require("particles");
  38. * var m_scenes = require("scenes");
  39. *
  40. * var cube = m_scenes.get_object_by_name("Cube");
  41. * m_particles.set_normal_factor(cube, "MyParticleSystem", 15);
  42. */
  43. exports.set_normal_factor = function(obj, psys_name, nfactor) {
  44. if (!m_particles.obj_has_psys(obj, psys_name)) {
  45. m_print.error("set_normal_factor(): Object \"" + obj.name + "\" has not a particle system named \""
  46. + psys_name + "\"");
  47. return;
  48. }
  49. m_particles.set_normal_factor(obj, psys_name, nfactor);
  50. }
  51. /**
  52. * Set particle number factor.
  53. * @method module:particles.set_factor
  54. * @param {Object3D} obj Emitter object.
  55. * @param {string} psys_name Particle system name.
  56. * @param {number} factor Particle number factor. A coefficient defining the
  57. * number of particles to be emitted. 1 - all particles, 0 - none.
  58. * @example var m_particles = require("particles");
  59. * var m_scenes = require("scenes");
  60. *
  61. * var cube = m_scenes.get_object_by_name("Cube");
  62. * m_particles.set_factor(cube, "MyParticleSystem", 0.3);
  63. */
  64. exports.set_factor = function(obj, psys_name, factor) {
  65. if (!m_particles.obj_has_psys(obj, psys_name)) {
  66. m_print.error("set_factor(): Object \"" + obj.name + "\" has not a particle system named \""
  67. + psys_name + "\"");
  68. return;
  69. }
  70. factor = Math.min(factor, 1);
  71. factor = Math.max(factor, 0);
  72. m_particles.set_factor(obj, psys_name, factor);
  73. }
  74. }
  75. var particles_factory = register("particles", Particles);
  76. export default particles_factory;