public void BuildFromGrid2(CartGridData pointStripList) { int minStripLen = GetMinStripLength(pointStripList); int id = 0; var vertexGrid = new PlyVertex[pointStripList.Count, minStripLen]; for (int i = 0; i < pointStripList.Count; i++) { for (int j = 0; j < minStripLen; j++) { vertexGrid[i, j] = new PlyVertex(pointStripList[i][j], id++); _vertices.Add(vertexGrid[i, j]); } } for (int i = 0; i < pointStripList.Count - 1; i++) { for (int j = 0; j < minStripLen - 1; j++) { var indices1 = new List <int>() { vertexGrid[i, j].ID, vertexGrid[i, j + 1].ID, vertexGrid[i + 1, j].ID }; _faces.Add(new PlyFace(indices1)); var indices2 = new List <int>() { vertexGrid[i, j + 1].ID, vertexGrid[i + 1, j + 1].ID, vertexGrid[i + 1, j].ID }; _faces.Add(new PlyFace(indices2)); } } }
public void CartDataTest_filenameok() { var filename = "filename1.csv"; var cd = new CartGridData(filename); Assert.AreEqual(filename, cd.FileName); }
public void CartDataTest_lengthok() { var filename = "filename1.csv"; var cd = new CartGridData(filename); var cart = new CartData(); cd.Add(cart); cd.Add(cart); cd.Add(cart); Assert.AreEqual(3, cd.Count); }
public void CartDataTest_Addrange() { var filename = "filename1.csv"; var cd = new CartGridData(filename); var cart = new CartData(); var list = new List <ICartData>(); list.Add(cart); list.Add(cart); list.Add(cart); cd.AddRange(list); Assert.AreEqual(3, cd.Count); }
int GetMinStripLength(CartGridData pointStripList) { int minStripLen = int.MaxValue; foreach (var strip in pointStripList) { if (strip.Count < minStripLen) { minStripLen = strip.Count; } } return(minStripLen); }
static void SavePly(CartGridData map, string fileName, IProgress <int> progress) { try { var outputFilename = BuildFileName(fileName, "", ".ply"); Debug.WriteLine("writing PLY file " + fileName); var plyF = new PlyFile(); plyF.BuildFromGrid2(map); plyF.SaveAscii(outputFilename); Debug.WriteLine("finished writing ply file"); } catch (Exception) { throw; } }
public void BuildFromGrid(CartGridData pointStripList) { Debug.WriteLine("building ply file"); //find minimum strip length int minStripLen = GetMinStripLength(pointStripList); //add triangles to list of faces var triList = new List <Triangle>(); for (int i = 0; i < pointStripList.Count - 1; i++) { for (int j = 0; j < minStripLen - 1; j++) { Triangle t1 = new Triangle(pointStripList[i][j], pointStripList[i][j + 1], pointStripList[i + 1][j]); Triangle t2 = new Triangle(pointStripList[i][j + 1], pointStripList[i + 1][j + 1], pointStripList[i + 1][j]); triList.Add(t1); triList.Add(t2); } } int vertCount = 0; foreach (var tri in triList) { var indexList = new List <int>(); foreach (var vt in tri.Vertices) { var plyvert = new PlyVertex(vt, tri.Normal); plyvert.ID = vertCount++; indexList.Add(plyvert.ID); _vertices.Add(plyvert); } var face = new PlyFace(indexList); _faces.Add(face); } Debug.WriteLine("triangles:{0} ", _faces.Count); Debug.WriteLine("Vertices:{0} ", _vertices.Count); }
public void BuildFromGrid(CartGridData pointStripList) { int maxCount = GetMinStripLength(pointStripList); for (int i = 0; i < pointStripList.Count - 1; i++) { for (int j = 0; j < maxCount - 1; j++) { var p1 = new Vector3(pointStripList[i][j]); var p2 = new Vector3(pointStripList[i][j + 1]); var p3 = new Vector3(pointStripList[i + 1][j]); var p4 = new Vector3(pointStripList[i + 1][j + 1]); var t1 = new Triangle(p1, p2, p3); var t2 = new Triangle(p2, p4, p3); this.Add(t1); this.Add(t2); } } getBoundingBox(); }
public CartGridDataSet(string filename) : base(filename) { CartGridData = new CartGridData(); }
public void CartDataTest_defCtor() { var cd = new CartGridData(); Assert.IsNotNull(cd); }