|
@@ -896,6 +896,40 @@ public class ParticleEmitter extends Geometry {
|
|
|
vars.release();
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * Instantly emits available particles, up to num.
|
|
|
+ */
|
|
|
+ public void emitParticles(int num) {
|
|
|
+ // Force world transform to update
|
|
|
+ this.getWorldTransform();
|
|
|
+
|
|
|
+ TempVars vars = TempVars.get();
|
|
|
+
|
|
|
+ BoundingBox bbox = (BoundingBox) this.getMesh().getBound();
|
|
|
+
|
|
|
+ Vector3f min = vars.vect1;
|
|
|
+ Vector3f max = vars.vect2;
|
|
|
+
|
|
|
+ bbox.getMin(min);
|
|
|
+ bbox.getMax(max);
|
|
|
+
|
|
|
+ if (!Vector3f.isValidVector(min)) {
|
|
|
+ min.set(Vector3f.POSITIVE_INFINITY);
|
|
|
+ }
|
|
|
+ if (!Vector3f.isValidVector(max)) {
|
|
|
+ max.set(Vector3f.NEGATIVE_INFINITY);
|
|
|
+ }
|
|
|
+
|
|
|
+ for(int i=0;i<num;i++) {
|
|
|
+ if( emitParticle(min, max) == null ) break;
|
|
|
+ }
|
|
|
+
|
|
|
+ bbox.setMinMax(min, max);
|
|
|
+ this.setBoundRefresh();
|
|
|
+
|
|
|
+ vars.release();
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* Instantly kills all active particles, after this method is called, all
|
|
|
* particles will be dead and no longer visible.
|