private static void WriteTextureCoordinates(StreamWriter writer, List <SurfacePoint> points, BoundingBox boundingBox) { writer.WriteLine("# texture coordinates (u,v)"); foreach (var point in points) { writer.WriteLine("vt {0} {1}", boundingBox.NormalizeX(point.GridX), boundingBox.NormalizeY(point.GridY)); } writer.WriteLine(); }
private static List <List <Vertex> > GetRows(List <SurfacePoint> points, BoundingBox boundingBox) { var rows = new List <List <Vertex> >(); var lastY = float.MinValue; var row = new List <Vertex>(); foreach (var point in points) { var vertex = new Vertex { // Z is up //x = point.GridX, //y = point.GridY, //z = point.Height, //u = boundingBox.NormalizeX(point.GridX), //v = boundingBox.NormalizeY(point.GridY) // Y is up x = point.GridX, y = point.Height, z = point.GridY, u = boundingBox.NormalizeX(point.GridX), v = boundingBox.NormalizeY(point.GridY) }; if (lastY != point.GridY) { lastY = point.GridY; row = new List <Vertex>(); rows.Add(row); } row.Add(vertex); } return(rows); }