void HatchDottedDiamond(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;
float quarter = halfMe / 2.0f;
// this is really just 6 dots that when tiled will
// create the effect we are looking for
CGRect rect = new CGRect (0,0,1,1);
setPixels(context, rect);
rect.Y = halfMe;
setPixels(context, rect);
rect.X = halfMe;
setPixels(context, rect);
rect.Y = 0;
setPixels(context, rect);
rect.X = quarter;
rect.Y = quarter;
setPixels(context, rect);
rect.X = halfMe + quarter;
rect.Y = halfMe + quarter;
setPixels(context, rect);
}