/** Sets the given transform matrix on each controller. */ public void setTransform (Matrix4 transform) { for (int i = 0, n = controllers.size; i < n; i++) controllers.get(i).setTransform(transform); }
/** Sets the given transform matrix on each controller. */ public void setTransform (Matrix4 transform) { for (int i = 0, n = controllers.size; i < n; i++) controllers.get(i).setTransform(transform); }
@Override public void update () { for (int i = 0, positionOffset = 0, c = controller.particles.size; i < c; ++i, positionOffset += positionChannel.strideSize) { ParticleController particleController = controllerChannel.data[i]; float scale = hasScale ? scaleChannel.data[i] : 1; float qx = 0, qy = 0, qz = 0, qw = 1; if (hasRotation) { int rotationOffset = i * rotationChannel.strideSize; qx = rotationChannel.data[rotationOffset + ParticleChannels.XOffset]; qy = rotationChannel.data[rotationOffset + ParticleChannels.YOffset]; qz = rotationChannel.data[rotationOffset + ParticleChannels.ZOffset]; qw = rotationChannel.data[rotationOffset + ParticleChannels.WOffset]; } particleController.setTransform(positionChannel.data[positionOffset + ParticleChannels.XOffset], positionChannel.data[positionOffset + ParticleChannels.YOffset], positionChannel.data[positionOffset + ParticleChannels.ZOffset], qx, qy, qz, qw, scale); particleController.update(); } }
@Override public void update () { for (int i = 0, positionOffset = 0, c = controller.particles.size; i < c; ++i, positionOffset += positionChannel.strideSize) { ParticleController particleController = controllerChannel.data[i]; float scale = hasScale ? scaleChannel.data[i] : 1; float qx = 0, qy = 0, qz = 0, qw = 1; if (hasRotation) { int rotationOffset = i * rotationChannel.strideSize; qx = rotationChannel.data[rotationOffset + ParticleChannels.XOffset]; qy = rotationChannel.data[rotationOffset + ParticleChannels.YOffset]; qz = rotationChannel.data[rotationOffset + ParticleChannels.ZOffset]; qw = rotationChannel.data[rotationOffset + ParticleChannels.WOffset]; } particleController.setTransform(positionChannel.data[positionOffset + ParticleChannels.XOffset], positionChannel.data[positionOffset + ParticleChannels.YOffset], positionChannel.data[positionOffset + ParticleChannels.ZOffset], qx, qy, qz, qw, scale); particleController.update(); } }
@Override public boolean act (float delta) { emitter.getTransform(tmpMatrix); tmpQuaternion.set(axis, angle*delta).toMatrix(tmpMatrix4.val); tmpMatrix4.mul(tmpMatrix); emitter.setTransform(tmpMatrix4); return false; } }
/** Sets the given transform matrix on each controller. */ public void setTransform (Matrix4 transform) { for (int i = 0, n = controllers.size; i < n; i++) controllers.get(i).setTransform(transform); }
@Override public void update () { for (int i = 0, positionOffset = 0, c = controller.particles.size; i < c; ++i, positionOffset += positionChannel.strideSize) { ParticleController particleController = controllerChannel.data[i]; float scale = hasScale ? scaleChannel.data[i] : 1; float qx = 0, qy = 0, qz = 0, qw = 1; if (hasRotation) { int rotationOffset = i * rotationChannel.strideSize; qx = rotationChannel.data[rotationOffset + ParticleChannels.XOffset]; qy = rotationChannel.data[rotationOffset + ParticleChannels.YOffset]; qz = rotationChannel.data[rotationOffset + ParticleChannels.ZOffset]; qw = rotationChannel.data[rotationOffset + ParticleChannels.WOffset]; } particleController.setTransform(positionChannel.data[positionOffset + ParticleChannels.XOffset], positionChannel.data[positionOffset + ParticleChannels.YOffset], positionChannel.data[positionOffset + ParticleChannels.ZOffset], qx, qy, qz, qw, scale); particleController.update(); } }