// vim: shiftwidth=4 tabstop=4 noexpandtab package main // representation of a three-dimensional point in space type Point struct { scalars [3]float32 // x = scalars[0], y = scalars[1], z = scalars[2] } // a triangle consists of three points type Triangle struct { points [3]*Point } // a surface is made of a slice of triangles type Surface struct { triangles []*Triangle }