in unity/Assets/Scripts/pb_Stl/pb_Stl_Importer.cs [128:183]
private static List<Mesh> ImportAscii(string path) {
List<Facet> facets = new List<Facet>();
using (StreamReader sr = new StreamReader(path)) {
string line;
int state = EMPTY, vertex = 0;
Facet f = null;
bool exit = false;
while (sr.Peek() > 0 && !exit) {
line = sr.ReadLine().Trim();
int previousState = state;
state = ReadState(line);
switch (state) {
case SOLID:
continue;
case FACET:
f = new Facet();
f.normal = StringToVec3(line.Replace("facet normal ", ""));
break;
case OUTER:
vertex = 0;
break;
case VERTEX:
// maintain counter-clockwise orientation of vertices:
if (vertex == 0) f.a = StringToVec3(line.Replace("vertex ", ""));
else if (vertex == 2) f.c = StringToVec3(line.Replace("vertex ", ""));
else if (vertex == 1) f.b = StringToVec3(line.Replace("vertex ", ""));
vertex++;
break;
case ENDLOOP:
break;
case ENDFACET:
facets.Add(f);
break;
case ENDSOLID:
exit = true;
break;
case EMPTY:
default:
break;
}
}
}
return CreateMeshWithFacets(facets);
}