コード例 #1
0
ファイル: md3convert.go プロジェクト: nilium/go-md3
func surfaceTriangleList(surf *md3.Surface, baseVertex int, output chan<- surfaceStringPair) {
	var err error
	buffer := new(bytes.Buffer)
	triCount := surf.NumTriangles()
	for triIndex := 0; triIndex < triCount; triIndex++ {
		tri := surf.Triangle(triIndex)
		if *swapYZ {
			_, err = fmt.Fprintf(buffer, "f %[1]d/%[1]d/%[1]d %[2]d/%[2]d/%[2]d %[3]d/%[3]d/%[3]d\n",
				baseVertex+int(tri.A), baseVertex+int(tri.B), baseVertex+int(tri.C))
		} else {
			_, err = fmt.Fprintf(buffer, "f %[3]d/%[3]d/%[3]d %[2]d/%[2]d/%[2]d %[1]d/%[1]d/%[1]d\n",
				baseVertex+int(tri.A), baseVertex+int(tri.B), baseVertex+int(tri.C))
		}
		if err != nil {
			panic(err)
		}
	}

	output <- surfaceStringPair{surf, buffer.String()}
}