private void setCellBlocked(
     final PartitionPatch patch, final int cellOffsetX, final int cellOffsetY) {
   final int dx = cellOffsetX + this.m_x;
   final int dy = cellOffsetY + this.m_y;
   for (int y = 0; y < 9; ++y) {
     for (int x = 0; x < 9; ++x) {
       if (patch == null || patch.isBlocked(x, y)) {
         this.setCellBlocked(x + dx, y + dy, true);
       }
     }
   }
 }
 @Override
 public void fromPatch(
     final PartitionPatch patchTopLeft,
     final PartitionPatch patchTopRight,
     final PartitionPatch patchBottomLeft,
     final PartitionPatch patchBottomRight) {
   final int cellOffsetX = 9;
   final int cellOffsetY = 9;
   this.setCellBlocked(patchTopLeft, 0, 0);
   this.setCellBlocked(patchTopRight, 9, 0);
   this.setCellBlocked(patchBottomLeft, 0, 9);
   this.setCellBlocked(patchBottomRight, 9, 9);
   this.m_altitudes =
       PartitionPatch.getMergedAltitudes(
           patchTopLeft, patchTopRight, patchBottomLeft, patchBottomRight);
   this.m_murFinInfo =
       PartitionPatch.getMergedMurFinInfo(
           patchTopLeft, patchTopRight, patchBottomLeft, patchBottomRight);
   this.m_miscProperties =
       PartitionPatch.getMergedMiscProperties(
           patchTopLeft, patchTopRight, patchBottomLeft, patchBottomRight);
 }