protected void updatePickGeometry() {
    // clean up any existing pick geometry
    if (pickGeometry != null) {
      pickGeometry.detach();
      pickGeometry = null;
    }

    // make sure we are pickable and ready to add geometry
    if (!isPickable() || avatarCharacter.getJScene() == null) {
      return;
    }

    if (avatarCharacter.getSkeleton() != null) {
      // use pick geometry for an IMI avatar
      boolean isMale = avatarCharacter.getCharacterParams().isMale();
      PickBox[] pickBoxes = getPickBoxes(isMale);

      pickGeometry = new ImiPickGeometry(cell.getName(), cell, AvatarImiJME.this, pickBoxes);
    } else if (avatarCharacter.getSimpleStaticGeometry() != null) {
      pickGeometry =
          new BasicPickGeometry(
              cell.getName(), cell, this, avatarCharacter.getSimpleStaticGeometry());
    }
  }