private void BuildVerticiesAndIndicies()
{
var tileId = TileIdentifier.DefaultTileIdentifier;
var tempVertices = new List<VertexPositionNormalColored>();
var tempIndices = new List<int>();
var offset = 0;
var baseXPos = TerrainConstants.CenterPoint - (tileId.TileX + 1)*TerrainConstants.TileSize;
var baseYPos = TerrainConstants.CenterPoint - (tileId.TileY + 1)*TerrainConstants.TileSize;
var baseZPos = -100.0f;
// The Bottom-Righthand corner of a Tile in WoW coords
var baseAxisVec = new Vector3(baseXPos, baseYPos, baseZPos);
//var baseAxisVec = new Vector3(0.0f);
// The Top-Lefthand corner of a Tile in WoW coords
var endAxisVec = baseAxisVec + new Vector3(TerrainConstants.TileSize*2);
PositionUtil.TransformWoWCoordsToXNACoords(ref baseAxisVec);
PositionUtil.TransformWoWCoordsToXNACoords(ref endAxisVec);
// The WoW X-axis drawn in XNA coords
tempVertices.Add(new VertexPositionNormalColored(baseAxisVec, Color.Red, Vector3.Up));
tempIndices.Add(0);
tempVertices.Add(new VertexPositionNormalColored(new Vector3(baseAxisVec.X, baseAxisVec.Y, endAxisVec.Z), Color.Red, Vector3.Up));
tempIndices.Add(1);
tempIndices.Add(0);
// The WoW Y-axis drawn in XNA coords
tempVertices.Add(new VertexPositionNormalColored(baseAxisVec, Color.White, Vector3.Up));
tempIndices.Add(2);
tempVertices.Add(new VertexPositionNormalColored(new Vector3(endAxisVec.X, baseAxisVec.Y, baseAxisVec.Z), Color.White, Vector3.Up));
tempIndices.Add(3);
tempIndices.Add(2);
// The WoW Z-axis
tempVertices.Add(new VertexPositionNormalColored(baseAxisVec, Color.Blue, Vector3.Up));
tempIndices.Add(4);
tempVertices.Add(new VertexPositionNormalColored(new Vector3(baseAxisVec.X, endAxisVec.Y, baseAxisVec.Z), Color.Blue, Vector3.Up));
tempIndices.Add(5);
tempIndices.Add(4);
_cachedIndices = tempIndices.ToArray();
_cachedVertices = tempVertices.ToArray();
_renderCached = true;
}