| // 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 r2 |
| |
| // Vec is a 2D vector. |
| type Vec struct { |
| X, Y 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 |
| 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 |
| return p |
| } |
| |
| // Scale returns the vector p scaled by f. |
| func (p Vec) Scale(f float64) Vec { |
| p.X *= f |
| p.Y *= f |
| return p |
| } |
| |
| // Box is a 2D bounding box. |
| type Box struct { |
| Min, Max Vec |
| } |