Documentation ¶
Overview ¶
Package vec3 contains a 3D float32 vector type T and functions.
Index ¶
- Variables
- func Angle(a, b *T) float32
- func Distance(a, b *T) float32
- func Dot(a, b *T) float32
- func SquareDistance(a, b *T) float32
- type Box
- type 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) float32
- func (vec *T) Invert() *T
- func (vec *T) Inverted() T
- func (vec *T) IsZero() bool
- func (vec *T) Length() float32
- func (vec *T) LengthSqr() float32
- 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) Rows() int
- func (vec *T) Scale(f float32) *T
- func (vec *T) Scaled(f float32) T
- func (vec *T) Size() int
- func (vec *T) Slice() []float32
- func (vec *T) String() string
- func (vec *T) Sub(v *T) *T
Constants ¶
This section is empty.
Variables ¶
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.MaxFloat32, -math.MaxFloat32, -math.MaxFloat32} // MaxVal holds a vector with the highest possible component values. MaxVal = T{+math.MaxFloat32, +math.MaxFloat32, +math.MaxFloat32} )
var ( // MaxBox holds a box that contains the entire R3 space that can be represented as vec3 MaxBox = Box{MinVal, MaxVal} )
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]float32
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.