code: public boolean mapWorldToTarget()
      {
          GVRSkeleton	srcskel = mSourceSkeleton;
          GVRSkeleton	dstskel = mDestSkeleton;
  
          if ((dstskel == null) || (srcskel == null))
          {
              return false;
          }
          if (mBoneMap == null)
          {
              mBoneMap = makeBoneMap(srcskel, dstskel);
          }
          GVRPose srcpose = srcskel.getPose();
          GVRPose	dstpose = dstskel.getPose();
          Vector3f    v = new Vector3f();
          int			numsrcbones = srcpose.getNumBones();
          Matrix4f	mtx = new Matrix4f();
  
          srcpose.sync();
          srcpose.getWorldPosition(0, v);
          dstpose.setPosition(v.x, v.y, v.z);
          for (int i = 0; i < numsrcbones; ++i)
          {
              int	boneindex = mBoneMap[i];
  
              if (boneindex >= 0)
              {
                  srcpose.getWorldMatrix(i, mtx);
                  dstpose.setWorldMatrix(boneindex, mtx);
              }
          }
          dstpose.sync();
          return true;
      }
docs: Maps the pose of the source skeleton onto the destination skeleton in world space.
  <p>
  The world bone rotations of matching bones are copied.
  If the PoseMapper has a bone map, it is used to determine which bones
  of the source skeleton correspond to which bones in the destination skeleton.