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