blob: 39c14c1aceb071801aafd921d8a8e9e11a3e2cca [file] [log] [blame]
// 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
}