public CadMesh Load(string fname, double scale) { TotalPointCount = 0; TotalFaceCount = 0; CadMesh mesh = new CadMesh(10, 10); StreamReader reader = new StreamReader(fname); string L1; string L2; DxfState state = DxfState.STATE_NONE; int valCnt = 0; double[] val = new double[3]; int code; VertexList pointList = new VertexList(); while (!reader.EndOfStream) { L1 = reader.ReadLine(); L2 = reader.ReadLine(); code = Int32.Parse(L1); L2 = L2.Trim(); if (code == 0) { if (L2 == "3DFACE") { state = DxfState.STATE_3DFACE; valCnt = 0; } if (pointList.Count > 0) { AddFace(mesh, pointList); TotalFaceCount++; pointList.Clear(); } if (valCnt != 0) { state = 0; } } if (state == DxfState.STATE_3DFACE) { if (code < 10) { continue; } val[valCnt] = Double.Parse(L2) * scale; valCnt++; if (valCnt >= 3) { pointList.Add(CadVertex.Create(val[2], val[1], val[0])); valCnt = 0; TotalPointCount++; } continue; } } return(mesh); }