private void AddQuad(Voxel vx)
{
Vector2 a = vx.position;
Vector2 b = new Vector2(vx.opposite.x, a.y);
Vector2 c = new Vector2(a.x, vx.opposite.y);
Vector2 d = vx.opposite;
//Debug.Log ("a=" + a.ToString() + " d=" + d.ToString());
int vertexIndex = gen_vertices.Count;
gen_vertices.Add(a);
gen_vertices.Add(b);
gen_vertices.Add(c);
gen_vertices.Add(d);
gen_triangles.Add(vertexIndex);
gen_triangles.Add(vertexIndex + 2);
gen_triangles.Add(vertexIndex + 3);
gen_triangles.Add(vertexIndex);
gen_triangles.Add(vertexIndex + 3);
gen_triangles.Add(vertexIndex + 1);
}