某言語のライブラリじゃないやつ。
ソースコード
staticVector3f[][]LoadStlFile(Streamstream){byte[]buff=newbyte[84];stream.Read(buff,0,84);stringanyText=Encoding.ASCII.GetString(buff,0,80);intnumOfPolygon=BitConverter.ToInt32(buff,80);Vector3f[][]polygons=newVector3f[numOfPolygon][];for(inti=0;i<numOfPolygon;i++){stream.Read(buff,0,50);polygons[i]=newVector3f[3]{newVector3f(BitConverter.ToSingle(buff,4*3),BitConverter.ToSingle(buff,4*4),BitConverter.ToSingle(buff,4*5)),newVector3f(BitConverter.ToSingle(buff,4*6),BitConverter.ToSingle(buff,4*7),BitConverter.ToSingle(buff,4*8)),newVector3f(BitConverter.ToSingle(buff,4*9),BitConverter.ToSingle(buff,4*10),BitConverter.ToSingle(buff,4*11)),};}return(polygons);}staticVector3f[][]LoadStlFile(stringpath){using(FileStreamfs=newFileStream(path,FileMode.Open,FileAccess.Read)){return(LoadStlFile(fs));}}任意の文字列と法線ベクトルは読み捨ててます。
戻り値は頂点のジャグ配列ですが、環境に合わせて煮るなり焼くなり好きにしろ。
エラーチェックとか一切やってないので気をつけてね。
参考
感想
なにゆえ1ポリ50バイト? 48ポリのほうがスッキリする気がする。