protected override void initContour()
{
int nVertices = 22;
contour[0] = new Vector2[nVertices];
contour[1] = new Vector2[nVertices];
float minSeparation = 0.001f;
float lw = t2 / 2f; // L section Width
// First L
contour[0][0] = new Vector2(dis / 2.0f + minSeparation, t3 / 2.0f);
contour[0][1] = new Vector2(contour[0][0].X, 0f);
contour[0][2] = new Vector2(contour[0][1].X + tw, 0f);
contour[0][3] = new Vector2(contour[0][2].X, (t3 - tf) / 2.0f);
contour[0][4] = new Vector2(contour[0][3].X, t3 - tf);
contour[0][5] = new Vector2(contour[0][2].X + lw / 2.0f, contour[0][4].Y);
contour[0][6] = new Vector2(contour[0][2].X + lw, contour[0][5].Y);
contour[0][7] = new Vector2(contour[0][2].X + lw, contour[0][5].Y + tf);
contour[0][8] = new Vector2(contour[0][0].X + (tw + lw) / 2.0f, contour[0][7].Y);
contour[0][9] = new Vector2(contour[0][0].X, contour[0][8].Y);
contour[0][10] = contour[0][0];
#region Legacy
//contour[0][0] = new Microsoft.DirectX.Vector2(dis / 2.0f, 0);
//contour[0][1] = new Microsoft.DirectX.Vector2(contour[0][0].X + tw, 0);
//contour[0][2] = new Microsoft.DirectX.Vector2(contour[0][1].X, (t3 - tf) / 2.0f);
//contour[0][3] = new Microsoft.DirectX.Vector2(contour[0][1].X, t3 - tf);
//contour[0][4] = new Microsoft.DirectX.Vector2((t2 + dis / 2.0f + tw) / 2.0f, t3 - tf);
//contour[0][5] = new Microsoft.DirectX.Vector2((t2 + dis / 2.0f), t3 - tf);
//contour[0][6] = new Microsoft.DirectX.Vector2(t2 + dis / 2.0f, t3);
//contour[0][7] = new Microsoft.DirectX.Vector2((t2 + dis / 2.0f) / 2.0f, t3);
//contour[0][8] = new Microsoft.DirectX.Vector2(dis / 2.0f, t3);
//contour[0][9] = new Microsoft.DirectX.Vector2(dis / 2.0f, t3 / 2.0f);
#endregion
// Second L
contour[0][11] = new Vector2(-contour[0][10].X, contour[0][10].Y);
contour[0][12] = new Vector2(-contour[0][9].X, contour[0][9].Y);
contour[0][13] = new Vector2(-contour[0][8].X, contour[0][8].Y);
contour[0][14] = new Vector2(-contour[0][7].X, contour[0][7].Y);
contour[0][15] = new Vector2(-contour[0][6].X, contour[0][6].Y);
contour[0][16] = new Vector2(-contour[0][5].X, contour[0][5].Y);
contour[0][17] = new Vector2(-contour[0][4].X, contour[0][4].Y);
contour[0][18] = new Vector2(-contour[0][3].X, contour[0][3].Y);
contour[0][19] = new Vector2(-contour[0][2].X, contour[0][2].Y);
contour[0][20] = new Vector2(-contour[0][1].X, contour[0][1].Y);
contour[0][21] = new Vector2(-contour[0][0].X, contour[0][0].Y);
float a1 = t3 * tw;
float a2 = (t2 - tw) * tf;
float cgy = (a1 * (t3 / 2.0f) + a2 * ((t3 + tf) / 2.0f)) / (a1 + a2);
for (int i = 0; i < nVertices; i++)
contour[0][i].Y -= cgy;
// Start first L
contour[1][0] = new Vector2(-1, 0);
contour[1][1] = new Vector2(0, -1);
contour[1][2] = new Vector2(1, 0);
contour[1][3] = new Vector2(1, 0);
contour[1][4] = new Vector2(0, -1);
contour[1][5] = new Vector2(0, -1);
contour[1][6] = new Vector2(1, 0);
contour[1][7] = new Vector2(0, 1);
contour[1][8] = new Vector2(0, 1);
contour[1][9] = new Vector2(-1, 0);
contour[1][10] = new Vector2(-1, 0);
// Start second L
contour[1][11] = new Vector2(1, 0);
contour[1][12] = new Vector2(0, 1);
contour[1][13] = new Vector2(0, 1);
contour[1][14] = new Vector2(-1, 0);
contour[1][15] = new Vector2(0, -1);
contour[1][16] = new Vector2(0, -1);
contour[1][17] = new Vector2(-1, 0);
contour[1][18] = new Vector2(-1, 0);
contour[1][19] = new Vector2(0, -1);
contour[1][20] = new Vector2(1, 0);
contour[1][21] = new Vector2(1, 0);
buildHighStressCover();
UpdateData();
}