public void updateGeometricState(float time, boolean initiator) {
    super.updateGeometricState(time, initiator);
    if (isRotateWithScene()) {
      if (emitType == EmitType.Geometry && getGeometry() != null) {
        getGeometry().getWorldRotation().mult(emissionDirection, worldEmit);
      } else {
        worldRotation.mult(emissionDirection, worldEmit);
      }
    } else worldEmit.set(emissionDirection);

    if (particlesInWorldCoords) {
      emitterTransform.set(worldRotation, worldTranslation.divide(worldScale));

      originCenter.set(worldTranslation).addLocal(originOffset);

      getWorldTranslation().set(0, 0, 0);
      getWorldRotation().set(0, 0, 0, 1);
    } else {
      originCenter.set(originOffset);
    }
  }