code: public boolean setWorldRotation(int boneindex, float x, float y, float z, float w)
      {
          if (mSkeleton.isLocked(boneindex))
          {
              return false;
          }
  
          Bone	bone = mBones[boneindex];
          bone.setWorldRotation(x, y, z, w);
          bone.Changed |= WORLD_ROT;
          if (mSkeleton.getParentBoneIndex(boneindex) < 0)
          {
              bone.LocalMatrix.set3x3(bone.WorldMatrix);
          }
          else
          {
              mNeedSync = true;
          }
          if (sDebug)
          {
              Log.d("BONE", "%s WorldRotation: rot = (%f, %f, %f, %f)",
                      mSkeleton.getBoneName(boneindex), x, y, z, w);
          }
          return true;
      }
docs: Sets the world rotation for the designated bone.
  <p>
  This function recomputes the local bone rotation and the world bone position.
  @param boneindex	zero based index of bone to set matrix for.
  @param x,y,z,w   quaternion with new rotation.
  @see #getWorldRotation
  @see #setLocalRotation
  @see #getWorldMatrix
  @see #getWorldPositions