void HatchShingle(CGContext context)
{
var hatchWidth = getHatchWidth (hatchStyle);
var hatchHeight = getHatchHeight (hatchStyle);
var lineWidth = getLineWidth (hatchStyle);
initializeContext(context, hatchHeight, false);
/* draw background */
drawBackground (context, backColor, hatchWidth, hatchHeight);
/* draw lines in the foreground color */
context.SetFillColor(foreColor.ToCGColor());
context.SetStrokeColor(foreColor.ToCGColor());
context.SetLineWidth(lineWidth);
context.SetLineCap(CGLineCap.Square);
float halfMe = hatchWidth / 2.0f;
// We are basically going to draw a lamda sign
// Draw base
context.MoveTo(0,0);
context.AddLineToPoint(halfMe,halfMe-HALF_PIXEL_Y);
context.AddLineToPoint(hatchWidth, HALF_PIXEL_Y);
context.StrokePath();
// draw the first part of tail
context.MoveTo(halfMe + HALF_PIXEL_X, halfMe);
context.AddLineToPoint(halfMe + HALF_PIXEL_X, halfMe + 1);
context.StrokePath();
// now the last curl on the tail
CGRect rect = new CGRect (1,hatchHeight-1,1,1);
setPixels(context, rect);
rect.X += 1;
setPixels(context, rect);
rect.X += 1;
rect.Y -= 1;
setPixels(context, rect);
}