docs: public void  inverse(GVRPose src)
      {
          if (getSkeleton() != src.getSkeleton())
              throw new IllegalArgumentException("GVRPose.copy: input pose is incompatible with this pose");
          src.sync();
          int numbones = getNumBones();
          Bone srcBone = src.mBones[0];
          Bone dstBone = mBones[0];
  
          mNeedSync = true;
          srcBone.WorldMatrix.invertAffine(dstBone.WorldMatrix);
          srcBone.LocalMatrix.set(dstBone.WorldMatrix);
          if (sDebug)
          {
              Log.d("BONE", "invert: %s %s", mSkeleton.getBoneName(0), dstBone.toString());
  
          }
          for (int i = 1; i < numbones; ++i)
          {
              srcBone = src.mBones[i];
              dstBone = mBones[i];
              srcBone.WorldMatrix.invertAffine(dstBone.WorldMatrix);
              dstBone.Changed = WORLD_ROT | WORLD_POS;
              if (sDebug)
              {
                  Log.d("BONE", "invert: %s %s", mSkeleton.getBoneName(i), dstBone.toString());
              }
          }
          sync();
      }