// Copyright ©2019 The Gonum Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package r3 // Vec is a 3D vector. type Vec struct { X, Y, Z float64 } // Add returns the vector sum of p and q. func (p Vec) Add(q Vec) Vec { p.X += q.X p.Y += q.Y p.Z += q.Z return p } // Sub returns the vector sum of p and -q. func (p Vec) Sub(q Vec) Vec { p.X -= q.X p.Y -= q.Y p.Z -= q.Z return p } // Scale returns the vector p scaled by f. func (p Vec) Scale(f float64) Vec { p.X *= f p.Y *= f p.Z *= f return p } // Box is a 3D bounding box. type Box struct { Min, Max Vec }