Skip to main content

Problem using PositionInterpolator and setTransformAxis

No replies
crainar
Offline
Joined: 2009-01-02

Hello all, I am using setTransformAxis in PositionInterpolator but when I change de Axis and launch animation the postion X,Y change. ¿Why?

This is a part of code:

This code move up and down and launch animation in Y axis:
private void muevoArribaAbajoCuboLanzador(float cuantoMuevo) {
// Comentada pero es buena.
//traslacion.setTranslation(new Vector3f(mueveX, mueveY, mueveZ)); // Esta es para Cubyland

// Pongo Eje Y para mover
//Transform3D yAxis = new Transform3D();
//yAxis.rotZ(-Math.PI/2.0f);
this.piTranslator.setTransformAxis(yAxis);

// Velocidad de la animacion
this.alpha.setIncreasingAlphaDuration(300);

// Paro la animacion
this.alpha.pause();
long timeElapsed = System.currentTimeMillis() - alpha.getStartTime();
alpha.setStartTime(alpha.getStartTime() + timeElapsed);
this.alpha.setTriggerTime(0);
this.piTranslator.setAlpha(alpha);

// Ubico el objeto en la posicion final de la animacion. **************
System.out.println("Down1:" + mueveX + " " + mueveY + " " + mueveZ);
//this.piTranslator.setStartPosition(mueveY); // Coloco el inicio de la animacion donde termino la otra
this.piTranslator.setStartPosition(mueveY); // Coloco el inicio de la animacion donde termino la otra
this.piTranslator.setEndPosition(mueveY + cuantoMuevo); // sumo X a la posicion final
//mueveY = mueveY + 0.20f;
mueveY = this.piTranslator.getEndPosition();
System.out.println("Down2:" + mueveX + " " + mueveY + " " + mueveZ);
// Coloco el objeto final.
//mueveY = mueveY - 0.20f;
//traslacion.setTranslation(new Vector3f(mueveX, mueveY, mueveZ));
// Fin paro animacion ***************************************************
// Activo la animacion
this.alpha.resume();
this.alpha.setLoopCount(1);
this.alpha.setStartTime(alpha.getStartTime()+1);
this.piTranslator.setAlpha(alpha);
// FIN // Activo la animacion
}

This code launch animation in X axis:
private void lanzoCubo(){

// Basado en el movimiento hacia arriba VK_UP.

// traslacion.setTranslation(new Vector3f(mueveX, mueveY, mueveZ));
traslacion.setTranslation(new Vector3f(0.0f, 0.0f, 0.0f));

// Coloco el cubo para lanzar la animacion.
this.traslacion.setTranslation(new Vector3f(mueveX, -mueveY, mueveZ));
this.tgCuboLanzador.setTransform(this.traslacion);

// Paro la animacion
this.alpha.setIncreasingAlphaDuration(100);
this.alpha.pause();
long timeElapsed = System.currentTimeMillis() - alpha.getStartTime();
this.alpha.setStartTime(alpha.getStartTime() + timeElapsed);
this.alpha.setTriggerTime(0);
// this.traslacion.rotZ. (this.xAxis);
this.piTranslator.setTransformAxis(xAxis); // Pongo en EjeX el movimiento
//this.piTranslator.setTransformAxis(traslacion); // Pongo en EjeX el movimiento
this.piTranslator.setAlpha(alpha);

// Ubico el objeto en la posicion final de la animacion. **************
System.out.println("LANZA1:" + mueveX + " " + mueveY + " " + mueveZ);
this.piTranslator.setStartPosition(0.0f); // Coloco el inicio de la animacion donde termino la otra
this.piTranslator.setEndPosition(0.6f); // sumo X a la posicion final
//mueveY = mueveY - 0.20f;
//mueveY = this.piTranslator.getEndPosition();
System.out.println("LANZA2:" + mueveX + " " + mueveY + " " + mueveZ);
// Coloco el objeto final.
//mueveY = mueveY - 0.20f;
//traslacion.setTranslation(new Vector3f(mueveX, mueveY, mueveZ));
// Fin paro animacion ***************************************************
// Activo la animacion
this.alpha.resume();
this.alpha.setLoopCount(1);
this.alpha.setStartTime(alpha.getStartTime()+1);
this.piTranslator.setAlpha(alpha);
// FIN // Activo la animacion

}

Regards all!!!