No, the lack of response comes from the fact that i have a day job...
Anyway, there is no problem with getTransformedCenter(). It gives you the transformed center. You logic implies that there are no rotations applied and that the object's center is exactly at (0,0,0). In any other case, this won't work. However, it doesn't have to, because this solution is more complicated than it has to be. If initialPosition is the particle's starting position, there a two better solutions for this:
// To setup the particle
this.setOrigin(initialPosition); //...no further translation needed
//...
public void returnToOrigin() {
this.clearTranslation();
}
or, if you don't want to use setOrigin()
// To setup the particle
this.translate(initialPosition);
//...
public void returnToOrigin() {
this.clearTranslation();
this.translate(initialPosition);
}