Documentation ¶
Overview ¶
Package vec3 contains a 3D float64 vector type T and functions.
Index ¶
- Variables
- func Angle(a, b *T) float64
- func Distance(a, b *T) float64
- func Dot(a, b *T) float64
- func PointSegmentDistance(p1 *T, x1 *T, x2 *T) float64
- func SquareDistance(a, b *T) float64
- type Box
- func (box *Box) Array() *[6]float64
- func (box *Box) Center() T
- func (box *Box) Contains(t *Box) bool
- func (box *Box) ContainsPoint(p *T) bool
- func (box *Box) Diagonal() T
- func (box *Box) Extend(other *T)
- func (box *Box) Intersects(other *Box) bool
- func (box *Box) Join(other *Box)
- func (box *Box) Slice() []float64
- func (box *Box) String() string
- type T
- func Add(a, b *T) T
- func Cross(a, b *T) T
- func From(other generic.T) T
- func Interpolate(a, b *T, t float64) T
- func Max(a, b *T) T
- func Min(a, b *T) T
- func Mul(a, b *T) T
- func Parse(s string) (r T, err error)
- func PointSegmentVerticalPoint(p1 *T, x1 *T, x2 *T) *T
- func Rotated(vec *T, axis *T, rad float64) *T
- func Sub(a, b *T) T
- func (vec *T) Abs() *T
- func (vec *T) Absed() T
- func (vec *T) Add(v *T) *T
- func (vec *T) Clamp(min, max *T) *T
- func (vec *T) Clamp01() *T
- func (vec *T) Clamped(min, max *T) T
- func (vec *T) Clamped01() T
- func (vec *T) Cols() int
- func (vec *T) Get(col, row int) float64
- func (vec *T) Invert() *T
- func (vec *T) Inverted() T
- func (vec *T) IsZero() bool
- func (vec *T) Length() float64
- func (vec *T) LengthSqr() float64
- func (vec *T) Mul(v *T) *T
- func (vec *T) Normal() T
- func (vec *T) Normalize() *T
- func (vec *T) Normalized() T
- func (vec *T) ProjectOnPlane(planeNormal *T) *T
- func (vec *T) ProjectOnVector(vector *T) *T
- func (vec *T) Rows() int
- func (vec *T) Scale(f float64) *T
- func (vec *T) Scaled(f float64) T
- func (vec *T) SetMax(c T)
- func (vec *T) SetMin(c T)
- func (vec *T) Size() int
- func (vec *T) Slice() []float64
- func (vec *T) String() string
- func (vec *T) Sub(v *T) *T
Constants ¶
This section is empty.
Variables ¶
var ( // MaxBox holds a box that contains the entire R3 space that can be represented as vec3 MaxBox = Box{MinVal, MaxVal} MinBox = Box{MaxVal, MinVal} )
var ( // Zero holds a zero vector. Zero = T{} // UnitX holds a vector with X set to one. UnitX = T{1, 0, 0} // UnitY holds a vector with Y set to one. UnitY = T{0, 1, 0} // UnitZ holds a vector with Z set to one. UnitZ = T{0, 0, 1} // UnitXYZ holds a vector with X, Y, Z set to one. UnitXYZ = T{1, 1, 1} // Red holds the color red. Red = T{1, 0, 0} // Green holds the color green. Green = T{0, 1, 0} // Blue holds the color black. Blue = T{0, 0, 1} // Black holds the color black. Black = T{0, 0, 0} // White holds the color white. White = T{1, 1, 1} // MinVal holds a vector with the smallest possible component values. MinVal = T{-math.MaxFloat64, -math.MaxFloat64, -math.MaxFloat64} // MaxVal holds a vector with the highest possible component values. MaxVal = T{+math.MaxFloat64, +math.MaxFloat64, +math.MaxFloat64} )
Functions ¶
Types ¶
type Box ¶
Box is a coordinate system aligned 3D box defined by a Min and Max vector.
func (*Box) ContainsPoint ¶
ContainsPoint returns if a point is contained within the box.
func (*Box) Intersects ¶
Intersects returns true if this and the given box intersect. For an explanation of the algorithm, see http://rbrundritt.wordpress.com/2009/10/03/determining-if-two-bounding-boxes-overlap/
type T ¶
type T [3]float64
T represents a 3D vector.
func Interpolate ¶
Interpolate interpolates between a and b at t (0,1).
func (*T) Clamped ¶
Clamped returns a copy of the vector with the components clamped to be in the range of min to max.
func (*T) Clamped01 ¶
Clamped01 returns a copy of the vector with the components clamped to be in the range of 0 to 1.
func (*T) LengthSqr ¶
LengthSqr returns the squared length of the vector. See also Length and Normalize.
func (*T) Normalized ¶
Normalized returns a unit length normalized copy of the vector.