anchor.diff:                  yCurr := NaN;
                   for point in part.points do
                   begin
  -                  // recalc coordinates relative to extent
                     xPrev := xCurr;
                     yPrev := yCurr;
                     xCurr := (point.X-aExtent.XMin)/aPixelWidth;
  
positive.code:                       yd := {(1+}widthR*capacityFactor{)}*yn/pointDist;
  
                        polyPoints := [xPrev, yPrev, xCurr, yCurr, xCurr-xd, yCurr-yd, xPrev-xd, yPrev-yd];
                        polygon := ConstructPolygon(polyPoints);
  
                        DrawFillPolygon(colorsR, aBitmap, polygon);
                      end;
  
negative.code:   curScenarioGeometryObject: TSliceGeometryPolygonLRObject;
  
    xDCommon, yDCommon, xDExtra, yDExtra: Double;
    isCommonPoly: Boolean;
  begin
    widthL := Double.NaN;
    widthR := Double.NaN;
    Result := gtsFailed;
    if Assigned(fPalette) then
    begin
      aBitmap.Canvas.BeginScene;
      try
        aBitmap.Canvas.Clear(0);
        aBitmap.Canvas.Fill.Kind := TBrushKind.Solid;
        capacityFactor := IfThen((aExtent.YMax <> aExtent.YMin), 0.001/Abs(aExtent.YMax-aExtent.YMin), 0);
        bufferExtent := aExtent.Inflate(1.3);
        fCurrentSlice.fDataLock.BeginRead;
        fRefSlice.fDataLock.BeginRead;
        try
  