@Override public void start () { spawnWidth = spawnWidthValue.newLowValue(); spawnWidthDiff = spawnWidthValue.newHighValue(); if (!spawnWidthValue.isRelative()) spawnWidthDiff -= spawnWidth; spawnHeight = spawnHeightValue.newLowValue(); spawnHeightDiff = spawnHeightValue.newHighValue(); if (!spawnHeightValue.isRelative()) spawnHeightDiff -= spawnHeight; spawnDepth = spawnDepthValue.newLowValue(); spawnDepthDiff = spawnDepthValue.newHighValue(); if (!spawnDepthValue.isRelative()) spawnDepthDiff -= spawnDepth; }
@Override public void activateParticles (int startIndex, int count) { float start, diff; for (int i = startIndex * strengthChannel.strideSize, c = i + count * strengthChannel.strideSize; i < c; i += strengthChannel.strideSize) { start = strengthValue.newLowValue(); diff = strengthValue.newHighValue(); if (!strengthValue.isRelative()) diff -= start; strengthChannel.data[i + ParticleChannels.VelocityStrengthStartOffset] = start; strengthChannel.data[i + ParticleChannels.VelocityStrengthDiffOffset] = diff; } }
@Override public void activateParticles (int startIndex, int count) { float start, diff; for (int i = startIndex * strengthChannel.strideSize, c = i + count * strengthChannel.strideSize; i < c; i += strengthChannel.strideSize) { start = strengthValue.newLowValue(); diff = strengthValue.newHighValue(); if (!strengthValue.isRelative()) diff -= start; strengthChannel.data[i + ParticleChannels.VelocityStrengthStartOffset] = start; strengthChannel.data[i + ParticleChannels.VelocityStrengthDiffOffset] = diff; } }
@Override public void start () { spawnWidth = spawnWidthValue.newLowValue(); spawnWidthDiff = spawnWidthValue.newHighValue(); if (!spawnWidthValue.isRelative()) spawnWidthDiff -= spawnWidth; spawnHeight = spawnHeightValue.newLowValue(); spawnHeightDiff = spawnHeightValue.newHighValue(); if (!spawnHeightValue.isRelative()) spawnHeightDiff -= spawnHeight; spawnDepth = spawnDepthValue.newLowValue(); spawnDepthDiff = spawnDepthValue.newHighValue(); if (!spawnDepthValue.isRelative()) spawnDepthDiff -= spawnDepth; }
@Override public void activateParticles (int startIndex, int count) { for (int i = startIndex * colorChannel.strideSize, a = startIndex * alphaInterpolationChannel.strideSize, l = startIndex * lifeChannel.strideSize + ParticleChannels.LifePercentOffset, c = i + count * colorChannel.strideSize; i < c; i += colorChannel.strideSize, a += alphaInterpolationChannel.strideSize, l += lifeChannel.strideSize) { float alphaStart = alphaValue.newLowValue(); float alphaDiff = alphaValue.newHighValue() - alphaStart; colorValue.getColor(0, colorChannel.data, i); colorChannel.data[i + ParticleChannels.AlphaOffset] = alphaStart + alphaDiff * alphaValue.getScale(lifeChannel.data[l]); alphaInterpolationChannel.data[a + ParticleChannels.InterpolationStartOffset] = alphaStart; alphaInterpolationChannel.data[a + ParticleChannels.InterpolationDiffOffset] = alphaDiff; } }
@Override public void activateParticles (int startIndex, int count) { for (int i = startIndex * colorChannel.strideSize, a = startIndex * alphaInterpolationChannel.strideSize, l = startIndex * lifeChannel.strideSize + ParticleChannels.LifePercentOffset, c = i + count * colorChannel.strideSize; i < c; i += colorChannel.strideSize, a += alphaInterpolationChannel.strideSize, l += lifeChannel.strideSize) { float alphaStart = alphaValue.newLowValue(); float alphaDiff = alphaValue.newHighValue() - alphaStart; colorValue.getColor(0, colorChannel.data, i); colorChannel.data[i + ParticleChannels.AlphaOffset] = alphaStart + alphaDiff * alphaValue.getScale(lifeChannel.data[l]); alphaInterpolationChannel.data[a + ParticleChannels.InterpolationStartOffset] = alphaStart; alphaInterpolationChannel.data[a + ParticleChannels.InterpolationDiffOffset] = alphaDiff; } }
@Override public void activateParticles (int startIndex, int count) { super.activateParticles(startIndex, count); float start, diff; for (int i = startIndex * angularChannel.strideSize, c = i + count * angularChannel.strideSize; i < c; i += angularChannel.strideSize) { // Theta start = thetaValue.newLowValue(); diff = thetaValue.newHighValue(); if (!thetaValue.isRelative()) diff -= start; angularChannel.data[i + ParticleChannels.VelocityThetaStartOffset] = start; angularChannel.data[i + ParticleChannels.VelocityThetaDiffOffset] = diff; // Phi start = phiValue.newLowValue(); diff = phiValue.newHighValue(); if (!phiValue.isRelative()) diff -= start; angularChannel.data[i + ParticleChannels.VelocityPhiStartOffset] = start; angularChannel.data[i + ParticleChannels.VelocityPhiDiffOffset] = diff; } }
@Override public void activateParticles (int startIndex, int count) { super.activateParticles(startIndex, count); float start, diff; for (int i = startIndex * angularChannel.strideSize, c = i + count * angularChannel.strideSize; i < c; i += angularChannel.strideSize) { // Theta start = thetaValue.newLowValue(); diff = thetaValue.newHighValue(); if (!thetaValue.isRelative()) diff -= start; angularChannel.data[i + ParticleChannels.VelocityThetaStartOffset] = start; angularChannel.data[i + ParticleChannels.VelocityThetaDiffOffset] = diff; // Phi start = phiValue.newLowValue(); diff = phiValue.newHighValue(); if (!phiValue.isRelative()) diff -= start; angularChannel.data[i + ParticleChannels.VelocityPhiStartOffset] = start; angularChannel.data[i + ParticleChannels.VelocityPhiDiffOffset] = diff; } }
@Override public void start () { delay = delayValue.active ? delayValue.newLowValue() : 0; delayTimer = 0; durationTimer = 0f; duration = durationValue.newLowValue(); percent = durationTimer / (float)duration; emission = (int)emissionValue.newLowValue(); emissionDiff = (int)emissionValue.newHighValue(); if (!emissionValue.isRelative()) emissionDiff -= emission; life = (int)lifeValue.newLowValue(); lifeDiff = (int)lifeValue.newHighValue(); if (!lifeValue.isRelative()) lifeDiff -= life; lifeOffset = lifeOffsetValue.active ? (int)lifeOffsetValue.newLowValue() : 0; lifeOffsetDiff = (int)lifeOffsetValue.newHighValue(); if (!lifeOffsetValue.isRelative()) lifeOffsetDiff -= lifeOffset; }
@Override public void activateParticles (int startIndex, int count) { if (value.isRelative()) { for (int i = startIndex * valueChannel.strideSize, a = startIndex * interpolationChannel.strideSize, c = i + count * valueChannel.strideSize; i < c; i += valueChannel.strideSize, a += interpolationChannel.strideSize) { float start = value.newLowValue() * controller.scale.x; float diff = value.newHighValue() * controller.scale.x; interpolationChannel.data[a + ParticleChannels.InterpolationStartOffset] = start; interpolationChannel.data[a + ParticleChannels.InterpolationDiffOffset] = diff; valueChannel.data[i] = start + diff * value.getScale(0); } } else { for (int i = startIndex * valueChannel.strideSize, a = startIndex * interpolationChannel.strideSize, c = i + count * valueChannel.strideSize; i < c; i += valueChannel.strideSize, a += interpolationChannel.strideSize) { float start = value.newLowValue() * controller.scale.x; float diff = value.newHighValue() * controller.scale.x - start; interpolationChannel.data[a + ParticleChannels.InterpolationStartOffset] = start; interpolationChannel.data[a + ParticleChannels.InterpolationDiffOffset] = diff; valueChannel.data[i] = start + diff * value.getScale(0); } } }
@Override public void start () { delay = delayValue.active ? delayValue.newLowValue() : 0; delayTimer = 0; durationTimer = 0f; duration = durationValue.newLowValue(); percent = durationTimer / (float)duration; emission = (int)emissionValue.newLowValue(); emissionDiff = (int)emissionValue.newHighValue(); if (!emissionValue.isRelative()) emissionDiff -= emission; life = (int)lifeValue.newLowValue(); lifeDiff = (int)lifeValue.newHighValue(); if (!lifeValue.isRelative()) lifeDiff -= life; lifeOffset = lifeOffsetValue.active ? (int)lifeOffsetValue.newLowValue() : 0; lifeOffsetDiff = (int)lifeOffsetValue.newHighValue(); if (!lifeOffsetValue.isRelative()) lifeOffsetDiff -= lifeOffset; }
@Override public void activateParticles (int startIndex, int count) { if (!value.isRelative()) { for (int i = startIndex * valueChannel.strideSize, a = startIndex * interpolationChannel.strideSize, c = i + count * valueChannel.strideSize; i < c; i += valueChannel.strideSize, a += interpolationChannel.strideSize) { float start = value.newLowValue(); float diff = value.newHighValue() - start; interpolationChannel.data[a + ParticleChannels.InterpolationStartOffset] = start; interpolationChannel.data[a + ParticleChannels.InterpolationDiffOffset] = diff; valueChannel.data[i] = start + diff * value.getScale(0); } } else { for (int i = startIndex * valueChannel.strideSize, a = startIndex * interpolationChannel.strideSize, c = i + count * valueChannel.strideSize; i < c; i += valueChannel.strideSize, a += interpolationChannel.strideSize) { float start = value.newLowValue(); float diff = value.newHighValue(); interpolationChannel.data[a + ParticleChannels.InterpolationStartOffset] = start; interpolationChannel.data[a + ParticleChannels.InterpolationDiffOffset] = diff; valueChannel.data[i] = start + diff * value.getScale(0); } } }
@Override public void activateParticles (int startIndex, int count) { if (!value.isRelative()) { for (int i = startIndex * valueChannel.strideSize, a = startIndex * interpolationChannel.strideSize, c = i + count * valueChannel.strideSize; i < c; i += valueChannel.strideSize, a += interpolationChannel.strideSize) { float start = value.newLowValue(); float diff = value.newHighValue() - start; interpolationChannel.data[a + ParticleChannels.InterpolationStartOffset] = start; interpolationChannel.data[a + ParticleChannels.InterpolationDiffOffset] = diff; valueChannel.data[i] = start + diff * value.getScale(0); } } else { for (int i = startIndex * valueChannel.strideSize, a = startIndex * interpolationChannel.strideSize, c = i + count * valueChannel.strideSize; i < c; i += valueChannel.strideSize, a += interpolationChannel.strideSize) { float start = value.newLowValue(); float diff = value.newHighValue(); interpolationChannel.data[a + ParticleChannels.InterpolationStartOffset] = start; interpolationChannel.data[a + ParticleChannels.InterpolationDiffOffset] = diff; valueChannel.data[i] = start + diff * value.getScale(0); } } }
@Override public void activateParticles (int startIndex, int count) { if (value.isRelative()) { for (int i = startIndex * valueChannel.strideSize, a = startIndex * interpolationChannel.strideSize, c = i + count * valueChannel.strideSize; i < c; i += valueChannel.strideSize, a += interpolationChannel.strideSize) { float start = value.newLowValue() * controller.scale.x; float diff = value.newHighValue() * controller.scale.x; interpolationChannel.data[a + ParticleChannels.InterpolationStartOffset] = start; interpolationChannel.data[a + ParticleChannels.InterpolationDiffOffset] = diff; valueChannel.data[i] = start + diff * value.getScale(0); } } else { for (int i = startIndex * valueChannel.strideSize, a = startIndex * interpolationChannel.strideSize, c = i + count * valueChannel.strideSize; i < c; i += valueChannel.strideSize, a += interpolationChannel.strideSize) { float start = value.newLowValue() * controller.scale.x; float diff = value.newHighValue() * controller.scale.x - start; interpolationChannel.data[a + ParticleChannels.InterpolationStartOffset] = start; interpolationChannel.data[a + ParticleChannels.InterpolationDiffOffset] = diff; valueChannel.data[i] = start + diff * value.getScale(0); } } }
@Override public void activateParticles (int startIndex, int count) { float start, diff; for (int i = startIndex * strengthChannel.strideSize, c = i + count * strengthChannel.strideSize; i < c; i += strengthChannel.strideSize) { start = strengthValue.newLowValue(); diff = strengthValue.newHighValue(); if (!strengthValue.isRelative()) diff -= start; strengthChannel.data[i + ParticleChannels.VelocityStrengthStartOffset] = start; strengthChannel.data[i + ParticleChannels.VelocityStrengthDiffOffset] = diff; } }
@Override public void start () { spawnWidth = spawnWidthValue.newLowValue(); spawnWidthDiff = spawnWidthValue.newHighValue(); if (!spawnWidthValue.isRelative()) spawnWidthDiff -= spawnWidth; spawnHeight = spawnHeightValue.newLowValue(); spawnHeightDiff = spawnHeightValue.newHighValue(); if (!spawnHeightValue.isRelative()) spawnHeightDiff -= spawnHeight; spawnDepth = spawnDepthValue.newLowValue(); spawnDepthDiff = spawnDepthValue.newHighValue(); if (!spawnDepthValue.isRelative()) spawnDepthDiff -= spawnDepth; }
@Override public void activateParticles (int startIndex, int count) { for (int i = startIndex * colorChannel.strideSize, a = startIndex * alphaInterpolationChannel.strideSize, l = startIndex * lifeChannel.strideSize + ParticleChannels.LifePercentOffset, c = i + count * colorChannel.strideSize; i < c; i += colorChannel.strideSize, a += alphaInterpolationChannel.strideSize, l += lifeChannel.strideSize) { float alphaStart = alphaValue.newLowValue(); float alphaDiff = alphaValue.newHighValue() - alphaStart; colorValue.getColor(0, colorChannel.data, i); colorChannel.data[i + ParticleChannels.AlphaOffset] = alphaStart + alphaDiff * alphaValue.getScale(lifeChannel.data[l]); alphaInterpolationChannel.data[a + ParticleChannels.InterpolationStartOffset] = alphaStart; alphaInterpolationChannel.data[a + ParticleChannels.InterpolationDiffOffset] = alphaDiff; } }
@Override public void start () { delay = delayValue.active ? delayValue.newLowValue() : 0; delayTimer = 0; durationTimer = 0f; duration = durationValue.newLowValue(); percent = durationTimer / (float)duration; emission = (int)emissionValue.newLowValue(); emissionDiff = (int)emissionValue.newHighValue(); if (!emissionValue.isRelative()) emissionDiff -= emission; life = (int)lifeValue.newLowValue(); lifeDiff = (int)lifeValue.newHighValue(); if (!lifeValue.isRelative()) lifeDiff -= life; lifeOffset = lifeOffsetValue.active ? (int)lifeOffsetValue.newLowValue() : 0; lifeOffsetDiff = (int)lifeOffsetValue.newHighValue(); if (!lifeOffsetValue.isRelative()) lifeOffsetDiff -= lifeOffset; }
@Override public void activateParticles (int startIndex, int count) { super.activateParticles(startIndex, count); float start, diff; for (int i = startIndex * angularChannel.strideSize, c = i + count * angularChannel.strideSize; i < c; i += angularChannel.strideSize) { // Theta start = thetaValue.newLowValue(); diff = thetaValue.newHighValue(); if (!thetaValue.isRelative()) diff -= start; angularChannel.data[i + ParticleChannels.VelocityThetaStartOffset] = start; angularChannel.data[i + ParticleChannels.VelocityThetaDiffOffset] = diff; // Phi start = phiValue.newLowValue(); diff = phiValue.newHighValue(); if (!phiValue.isRelative()) diff -= start; angularChannel.data[i + ParticleChannels.VelocityPhiStartOffset] = start; angularChannel.data[i + ParticleChannels.VelocityPhiDiffOffset] = diff; } }
@Override public void activateParticles (int startIndex, int count) { if (value.isRelative()) { for (int i = startIndex * valueChannel.strideSize, a = startIndex * interpolationChannel.strideSize, c = i + count * valueChannel.strideSize; i < c; i += valueChannel.strideSize, a += interpolationChannel.strideSize) { float start = value.newLowValue() * controller.scale.x; float diff = value.newHighValue() * controller.scale.x; interpolationChannel.data[a + ParticleChannels.InterpolationStartOffset] = start; interpolationChannel.data[a + ParticleChannels.InterpolationDiffOffset] = diff; valueChannel.data[i] = start + diff * value.getScale(0); } } else { for (int i = startIndex * valueChannel.strideSize, a = startIndex * interpolationChannel.strideSize, c = i + count * valueChannel.strideSize; i < c; i += valueChannel.strideSize, a += interpolationChannel.strideSize) { float start = value.newLowValue() * controller.scale.x; float diff = value.newHighValue() * controller.scale.x - start; interpolationChannel.data[a + ParticleChannels.InterpolationStartOffset] = start; interpolationChannel.data[a + ParticleChannels.InterpolationDiffOffset] = diff; valueChannel.data[i] = start + diff * value.getScale(0); } } }