zAxis = zAxis.negate();
Vector3D xAxis = yAxis.crossProduct(zAxis).toUnitVector();
double rotationX = asin(-xAxis.getZ());
double rotationZ = atan2( -xAxis.rotateOverX(rotationX).getY() / cos(rotationX), xAxis.rotateOverX(rotationX).getX() / cos(rotationX));
double rotationY = atan2( -yAxis.rotateOverX(rotationX).getZ() / cos(rotationX), zAxis.rotateOverX(rotationX).getZ() / cos(rotationX));
this.agent.rotationX = Angles.normalize(rotationX);
this.agent.rotationY = Angles.normalize(rotationY);
this.agent.rotationZ = Angles.normalize(rotationZ);
Log.log(AGENT_MODEL, "My rotation: [%.2f,%.2f,%.2f]", rotationX, rotationY, rotationZ);