func (s *Solid) Measure() SolidMeasure {
	var measure SolidMeasure
	if len(s.Triangles) == 0 {
		return measure
	}
	a := &s.Triangles[0].Vertices[0]
	measure.Min = *a
	measure.Max = *a
	for _, triangle := range s.Triangles {
		for d := 0; d < 3; d++ {
			measure.Min[d] = min4(measure.Min[d], triangle.Vertices[0][d], triangle.Vertices[1][d], triangle.Vertices[2][d])
			measure.Max[d] = max4(measure.Max[d], triangle.Vertices[0][d], triangle.Vertices[1][d], triangle.Vertices[2][d])
		}
	}
	measure.Len = measure.Max.diff(measure.Min)
	return measure
}
Measure the dimensions of a solid in its own units
package stl
type Solid struct {
	BinaryHeader []byte
	Name string
	Triangles []Triangle
	IsAscii bool
}
func (s *Solid) SetName(name string) {
	s.Name = name
}
func (s *Solid) SetBinaryHeader(header []byte) {
	s.BinaryHeader = header
}
func (s *Solid) SetASCII(isASCII bool) {
	s.IsAscii = isASCII
}
func (s *Solid) SetTriangleCount(n uint32) {
	l := uint32(len(s.Triangles))
	c := uint32(cap(s.Triangles))
	if n < l {
		s.Triangles = s.Triangles[:n]
		return
	}
	if n <= c {
		return
	}
	oldTriangles := s.Triangles
	s.Triangles = make([]Triangle, l, n)
	if l > 0 {
		copy(s.Triangles[:l], oldTriangles)
	}
}
func (s *Solid) AppendTriangle(t Triangle) {
	s.Triangles = append(s.Triangles, t)
}
type SolidMeasure struct {
	Min Vec3
	Max Vec3
	Len Vec3
}