code: PointL buildPathPortion(final Projection pProjection,
  							final PointL pOffset,
  							final boolean pStorePoints){
  		final int size = mOriginalPoints.size();
  		if (size < 2) { // nothing to paint
  			return pOffset;
  		}
          computeProjected(pProjection);
          computeDistances();
  		final PointL offset;
  		if (pOffset != null) {
  			offset = pOffset;
  		} else {
  			offset = new PointL();
  			getBestOffset(pProjection, offset);
  		}
  		mSegmentClipper.init();
  		clipAndStore(pProjection, offset, true, pStorePoints, mSegmentClipper);
  		mSegmentClipper.end();
  		mPath.close();
  		return offset;
  	}
docs: Feed the path with the segments corresponding to the GeoPoint pairs
  projected using pProjection and clipped into a "reasonable" clip area
  In most cases (Polygon without holes, Polyline) the offset parameter will be null.
  In the case of a Polygon with holes, the first path will use a null offset.
  Then this method will return the pixel offset computed for this path so that
  the path is in the best possible place on the map:
  the center of all pixels is as close to the screen center as possible
  Then, this computed offset must be injected into the buildPathPortion for each hole,
  in order to have the main polygon and its holes at the same place on the map.
  @return the initial offset if not null, or the computed offset