Versions in this module Expand all Collapse all v1 v1.2.0 Jan 27, 2024 Changes in this version type Mat2 + func (m Mat2) NumCols() int + func (m Mat2) NumRows() int type Mat2x3 + func (m Mat2x3) NumCols() int + func (m Mat2x3) NumRows() int type Mat2x4 + func (m Mat2x4) NumCols() int + func (m Mat2x4) NumRows() int type Mat3 + func (m Mat3) NumCols() int + func (m Mat3) NumRows() int type Mat3x2 + func (m Mat3x2) NumCols() int + func (m Mat3x2) NumRows() int type Mat3x4 + func (m Mat3x4) NumCols() int + func (m Mat3x4) NumRows() int type Mat4 + func (m Mat4) NumCols() int + func (m Mat4) NumRows() int type Mat4x2 + func (m Mat4x2) NumCols() int + func (m Mat4x2) NumRows() int type Mat4x3 + func (m Mat4x3) NumCols() int + func (m Mat4x3) NumRows() int v1.1.0 Apr 7, 2023 v1.0.0 Jul 13, 2019 Changes in this version + var Epsilon float32 = 1e-10 + var InfNeg = float32(math.Inf(-1)) + var InfPos = float32(math.Inf(1)) + var MaxValue = float32(math.MaxFloat32) + var MinNormal = float32(1.1754943508222875e-38) + var MinValue = float32(math.SmallestNonzeroFloat32) + var NaN = float32(math.NaN()) + func Abs(a float32) float32 + func CartesianToCylindical(coord Vec3) (rho, phi, z float32) + func CartesianToSpherical(coord Vec3) (r, theta, phi float32) + func Clamp(a, low, high float32) float32 + func ClampFunc(low, high float32) func(float32) float32 + func CopyMatMN(dst, src *MatMxN) + func CylindircalToSpherical(rho, phi, z float32) (r, theta, phi2 float32) + func DegToRad(angle float32) float32 + func DisableMemoryPooling() + func Extract3DScale(m Mat4) (x, y, z float32) + func ExtractMaxScale(m Mat4) float32 + func FloatEqual(a, b float32) bool + func FloatEqualFunc(epsilon float32) func(float32, float32) bool + func FloatEqualThreshold(a, b, epsilon float32) bool + func GLToScreenCoords(x, y float32, screenWidth, screenHeight int) (xOut, yOut int) + func IsClamped(a, low, high float32) bool + func RadToDeg(angle float32) float32 + func ReticulateSplines(ranges [][][2]float32, cPoints [][][]Vec2, withLlamas bool) + func Round(v float32, precision int) float32 + func ScreenToGLCoords(x, y int, screenWidth, screenHeight int) (xOut, yOut float32) + func SetMax(a, b *float32) + func SetMin(a, b *float32) + func SphericalToCylindrical(r, theta, phi float32) (rho, phi2, z float32) + type InferMatrixError struct + func (me InferMatrixError) Error() string + type Mat2 [4]float32 + func Diag2(v Vec2) Mat2 + func Ident2() Mat2 + func Mat2FromCols(col0, col1 Vec2) Mat2 + func Mat2FromRows(row0, row1 Vec2) Mat2 + func Rotate2D(angle float32) Mat2 + func (m *Mat2) Set(row, col int, value float32) + func (m *Mat2) SetCol(col int, v Vec2) + func (m *Mat2) SetRow(row int, v Vec2) + func (m Mat2) Abs() Mat2 + func (m Mat2) At(row, col int) float32 + func (m Mat2) Col(col int) Vec2 + func (m Mat2) Cols() (col0, col1 Vec2) + func (m Mat2) Det() float32 + func (m Mat2) Diag() Vec2 + func (m Mat2) Index(row, col int) int + func (m Mat2) Inv() Mat2 + func (m Mat2) Mat3() Mat3 + func (m Mat2) Mat4() Mat4 + func (m Mat2) Row(row int) Vec2 + func (m Mat2) Rows() (row0, row1 Vec2) + func (m Mat2) String() string + func (m Mat2) Trace() float32 + func (m1 Mat2) Add(m2 Mat2) Mat2 + func (m1 Mat2) ApproxEqual(m2 Mat2) bool + func (m1 Mat2) ApproxEqualThreshold(m2 Mat2, threshold float32) bool + func (m1 Mat2) ApproxFuncEqual(m2 Mat2, eq func(float32, float32) bool) bool + func (m1 Mat2) Mul(c float32) Mat2 + func (m1 Mat2) Mul2(m2 Mat2) Mat2 + func (m1 Mat2) Mul2x1(m2 Vec2) Vec2 + func (m1 Mat2) Mul2x3(m2 Mat2x3) Mat2x3 + func (m1 Mat2) Mul2x4(m2 Mat2x4) Mat2x4 + func (m1 Mat2) Sub(m2 Mat2) Mat2 + func (m1 Mat2) Transpose() Mat2 + type Mat2x3 [6]float32 + func Mat2x3FromCols(col0, col1, col2 Vec2) Mat2x3 + func Mat2x3FromRows(row0, row1 Vec3) Mat2x3 + func (m *Mat2x3) Set(row, col int, value float32) + func (m *Mat2x3) SetCol(col int, v Vec2) + func (m *Mat2x3) SetRow(row int, v Vec3) + func (m Mat2x3) Abs() Mat2x3 + func (m Mat2x3) At(row, col int) float32 + func (m Mat2x3) Col(col int) Vec2 + func (m Mat2x3) Cols() (col0, col1, col2 Vec2) + func (m Mat2x3) Index(row, col int) int + func (m Mat2x3) Row(row int) Vec3 + func (m Mat2x3) Rows() (row0, row1 Vec3) + func (m Mat2x3) String() string + func (m1 Mat2x3) Add(m2 Mat2x3) Mat2x3 + func (m1 Mat2x3) ApproxEqual(m2 Mat2x3) bool + func (m1 Mat2x3) ApproxEqualThreshold(m2 Mat2x3, threshold float32) bool + func (m1 Mat2x3) ApproxFuncEqual(m2 Mat2x3, eq func(float32, float32) bool) bool + func (m1 Mat2x3) Mul(c float32) Mat2x3 + func (m1 Mat2x3) Mul3(m2 Mat3) Mat2x3 + func (m1 Mat2x3) Mul3x1(m2 Vec3) Vec2 + func (m1 Mat2x3) Mul3x2(m2 Mat3x2) Mat2 + func (m1 Mat2x3) Mul3x4(m2 Mat3x4) Mat2x4 + func (m1 Mat2x3) Sub(m2 Mat2x3) Mat2x3 + func (m1 Mat2x3) Transpose() Mat3x2 + type Mat2x4 [8]float32 + func Mat2x4FromCols(col0, col1, col2, col3 Vec2) Mat2x4 + func Mat2x4FromRows(row0, row1 Vec4) Mat2x4 + func (m *Mat2x4) Set(row, col int, value float32) + func (m *Mat2x4) SetCol(col int, v Vec2) + func (m *Mat2x4) SetRow(row int, v Vec4) + func (m Mat2x4) Abs() Mat2x4 + func (m Mat2x4) At(row, col int) float32 + func (m Mat2x4) Col(col int) Vec2 + func (m Mat2x4) Cols() (col0, col1, col2, col3 Vec2) + func (m Mat2x4) Index(row, col int) int + func (m Mat2x4) Row(row int) Vec4 + func (m Mat2x4) Rows() (row0, row1 Vec4) + func (m Mat2x4) String() string + func (m1 Mat2x4) Add(m2 Mat2x4) Mat2x4 + func (m1 Mat2x4) ApproxEqual(m2 Mat2x4) bool + func (m1 Mat2x4) ApproxEqualThreshold(m2 Mat2x4, threshold float32) bool + func (m1 Mat2x4) ApproxFuncEqual(m2 Mat2x4, eq func(float32, float32) bool) bool + func (m1 Mat2x4) Mul(c float32) Mat2x4 + func (m1 Mat2x4) Mul4(m2 Mat4) Mat2x4 + func (m1 Mat2x4) Mul4x1(m2 Vec4) Vec2 + func (m1 Mat2x4) Mul4x2(m2 Mat4x2) Mat2 + func (m1 Mat2x4) Mul4x3(m2 Mat4x3) Mat2x3 + func (m1 Mat2x4) Sub(m2 Mat2x4) Mat2x4 + func (m1 Mat2x4) Transpose() Mat4x2 + type Mat3 f32.Mat3 + func Diag3(v Vec3) Mat3 + func HomogRotate2D(angle float32) Mat3 + func Ident3() Mat3 + func Mat3FromCols(col0, col1, col2 Vec3) Mat3 + func Mat3FromRows(row0, row1, row2 Vec3) Mat3 + func Mat4Normal(m Mat4) Mat3 + func Rotate3DX(angle float32) Mat3 + func Rotate3DY(angle float32) Mat3 + func Rotate3DZ(angle float32) Mat3 + func Scale2D(scaleX, scaleY float32) Mat3 + func ShearX2D(shear float32) Mat3 + func ShearY2D(shear float32) Mat3 + func Translate2D(Tx, Ty float32) Mat3 + func (m *Mat3) Set(row, col int, value float32) + func (m *Mat3) SetCol(col int, v Vec3) + func (m *Mat3) SetRow(row int, v Vec3) + func (m Mat3) Abs() Mat3 + func (m Mat3) At(row, col int) float32 + func (m Mat3) Col(col int) Vec3 + func (m Mat3) Cols() (col0, col1, col2 Vec3) + func (m Mat3) Det() float32 + func (m Mat3) Diag() Vec3 + func (m Mat3) Index(row, col int) int + func (m Mat3) Inv() Mat3 + func (m Mat3) Mat2() Mat2 + func (m Mat3) Mat4() Mat4 + func (m Mat3) Row(row int) Vec3 + func (m Mat3) Rows() (row0, row1, row2 Vec3) + func (m Mat3) String() string + func (m Mat3) Trace() float32 + func (m1 Mat3) Add(m2 Mat3) Mat3 + func (m1 Mat3) ApproxEqual(m2 Mat3) bool + func (m1 Mat3) ApproxEqualThreshold(m2 Mat3, threshold float32) bool + func (m1 Mat3) ApproxFuncEqual(m2 Mat3, eq func(float32, float32) bool) bool + func (m1 Mat3) Mul(c float32) Mat3 + func (m1 Mat3) Mul3(m2 Mat3) Mat3 + func (m1 Mat3) Mul3x1(m2 Vec3) Vec3 + func (m1 Mat3) Mul3x2(m2 Mat3x2) Mat3x2 + func (m1 Mat3) Mul3x4(m2 Mat3x4) Mat3x4 + func (m1 Mat3) Sub(m2 Mat3) Mat3 + func (m1 Mat3) Transpose() Mat3 + type Mat3x2 [6]float32 + func Mat3x2FromCols(col0, col1 Vec3) Mat3x2 + func Mat3x2FromRows(row0, row1, row2 Vec2) Mat3x2 + func (m *Mat3x2) Set(row, col int, value float32) + func (m *Mat3x2) SetCol(col int, v Vec3) + func (m *Mat3x2) SetRow(row int, v Vec2) + func (m Mat3x2) Abs() Mat3x2 + func (m Mat3x2) At(row, col int) float32 + func (m Mat3x2) Col(col int) Vec3 + func (m Mat3x2) Cols() (col0, col1 Vec3) + func (m Mat3x2) Index(row, col int) int + func (m Mat3x2) Row(row int) Vec2 + func (m Mat3x2) Rows() (row0, row1, row2 Vec2) + func (m Mat3x2) String() string + func (m1 Mat3x2) Add(m2 Mat3x2) Mat3x2 + func (m1 Mat3x2) ApproxEqual(m2 Mat3x2) bool + func (m1 Mat3x2) ApproxEqualThreshold(m2 Mat3x2, threshold float32) bool + func (m1 Mat3x2) ApproxFuncEqual(m2 Mat3x2, eq func(float32, float32) bool) bool + func (m1 Mat3x2) Mul(c float32) Mat3x2 + func (m1 Mat3x2) Mul2(m2 Mat2) Mat3x2 + func (m1 Mat3x2) Mul2x1(m2 Vec2) Vec3 + func (m1 Mat3x2) Mul2x3(m2 Mat2x3) Mat3 + func (m1 Mat3x2) Mul2x4(m2 Mat2x4) Mat3x4 + func (m1 Mat3x2) Sub(m2 Mat3x2) Mat3x2 + func (m1 Mat3x2) Transpose() Mat2x3 + type Mat3x4 [12]float32 + func Mat3x4FromCols(col0, col1, col2, col3 Vec3) Mat3x4 + func Mat3x4FromRows(row0, row1, row2 Vec4) Mat3x4 + func (m *Mat3x4) Set(row, col int, value float32) + func (m *Mat3x4) SetCol(col int, v Vec3) + func (m *Mat3x4) SetRow(row int, v Vec4) + func (m Mat3x4) Abs() Mat3x4 + func (m Mat3x4) At(row, col int) float32 + func (m Mat3x4) Col(col int) Vec3 + func (m Mat3x4) Cols() (col0, col1, col2, col3 Vec3) + func (m Mat3x4) Index(row, col int) int + func (m Mat3x4) Row(row int) Vec4 + func (m Mat3x4) Rows() (row0, row1, row2 Vec4) + func (m Mat3x4) String() string + func (m1 Mat3x4) Add(m2 Mat3x4) Mat3x4 + func (m1 Mat3x4) ApproxEqual(m2 Mat3x4) bool + func (m1 Mat3x4) ApproxEqualThreshold(m2 Mat3x4, threshold float32) bool + func (m1 Mat3x4) ApproxFuncEqual(m2 Mat3x4, eq func(float32, float32) bool) bool + func (m1 Mat3x4) Mul(c float32) Mat3x4 + func (m1 Mat3x4) Mul4(m2 Mat4) Mat3x4 + func (m1 Mat3x4) Mul4x1(m2 Vec4) Vec3 + func (m1 Mat3x4) Mul4x2(m2 Mat4x2) Mat3x2 + func (m1 Mat3x4) Mul4x3(m2 Mat4x3) Mat3 + func (m1 Mat3x4) Sub(m2 Mat3x4) Mat3x4 + func (m1 Mat3x4) Transpose() Mat4x3 + type Mat4 f32.Mat4 + func Diag4(v Vec4) Mat4 + func Frustum(left, right, bottom, top, near, far float32) Mat4 + func HomogRotate3D(angle float32, axis Vec3) Mat4 + func HomogRotate3DX(angle float32) Mat4 + func HomogRotate3DY(angle float32) Mat4 + func HomogRotate3DZ(angle float32) Mat4 + func Ident4() Mat4 + func LookAt(eyeX, eyeY, eyeZ, centerX, centerY, centerZ, upX, upY, upZ float32) Mat4 + func LookAtV(eye, center, up Vec3) Mat4 + func Mat4FromCols(col0, col1, col2, col3 Vec4) Mat4 + func Mat4FromRows(row0, row1, row2, row3 Vec4) Mat4 + func Ortho(left, right, bottom, top, near, far float32) Mat4 + func Ortho2D(left, right, bottom, top float32) Mat4 + func Perspective(fovy, aspect, near, far float32) Mat4 + func Scale3D(scaleX, scaleY, scaleZ float32) Mat4 + func ShearX3D(shearY, shearZ float32) Mat4 + func ShearY3D(shearX, shearZ float32) Mat4 + func ShearZ3D(shearX, shearY float32) Mat4 + func Translate3D(Tx, Ty, Tz float32) Mat4 + func (m *Mat4) Set(row, col int, value float32) + func (m *Mat4) SetCol(col int, v Vec4) + func (m *Mat4) SetRow(row int, v Vec4) + func (m Mat4) Abs() Mat4 + func (m Mat4) At(row, col int) float32 + func (m Mat4) Col(col int) Vec4 + func (m Mat4) Cols() (col0, col1, col2, col3 Vec4) + func (m Mat4) Det() float32 + func (m Mat4) Diag() Vec4 + func (m Mat4) Index(row, col int) int + func (m Mat4) Inv() Mat4 + func (m Mat4) Mat2() Mat2 + func (m Mat4) Mat3() Mat3 + func (m Mat4) Row(row int) Vec4 + func (m Mat4) Rows() (row0, row1, row2, row3 Vec4) + func (m Mat4) String() string + func (m Mat4) Trace() float32 + func (m1 Mat4) Add(m2 Mat4) Mat4 + func (m1 Mat4) ApproxEqual(m2 Mat4) bool + func (m1 Mat4) ApproxEqualThreshold(m2 Mat4, threshold float32) bool + func (m1 Mat4) ApproxFuncEqual(m2 Mat4, eq func(float32, float32) bool) bool + func (m1 Mat4) Mul(c float32) Mat4 + func (m1 Mat4) Mul4(m2 Mat4) Mat4 + func (m1 Mat4) Mul4x1(m2 Vec4) Vec4 + func (m1 Mat4) Mul4x2(m2 Mat4x2) Mat4x2 + func (m1 Mat4) Mul4x3(m2 Mat4x3) Mat4x3 + func (m1 Mat4) Sub(m2 Mat4) Mat4 + func (m1 Mat4) Transpose() Mat4 + type Mat4x2 [8]float32 + func Mat4x2FromCols(col0, col1 Vec4) Mat4x2 + func Mat4x2FromRows(row0, row1, row2, row3 Vec2) Mat4x2 + func (m *Mat4x2) Set(row, col int, value float32) + func (m *Mat4x2) SetCol(col int, v Vec4) + func (m *Mat4x2) SetRow(row int, v Vec2) + func (m Mat4x2) Abs() Mat4x2 + func (m Mat4x2) At(row, col int) float32 + func (m Mat4x2) Col(col int) Vec4 + func (m Mat4x2) Cols() (col0, col1 Vec4) + func (m Mat4x2) Index(row, col int) int + func (m Mat4x2) Row(row int) Vec2 + func (m Mat4x2) Rows() (row0, row1, row2, row3 Vec2) + func (m Mat4x2) String() string + func (m1 Mat4x2) Add(m2 Mat4x2) Mat4x2 + func (m1 Mat4x2) ApproxEqual(m2 Mat4x2) bool + func (m1 Mat4x2) ApproxEqualThreshold(m2 Mat4x2, threshold float32) bool + func (m1 Mat4x2) ApproxFuncEqual(m2 Mat4x2, eq func(float32, float32) bool) bool + func (m1 Mat4x2) Mul(c float32) Mat4x2 + func (m1 Mat4x2) Mul2(m2 Mat2) Mat4x2 + func (m1 Mat4x2) Mul2x1(m2 Vec2) Vec4 + func (m1 Mat4x2) Mul2x3(m2 Mat2x3) Mat4x3 + func (m1 Mat4x2) Mul2x4(m2 Mat2x4) Mat4 + func (m1 Mat4x2) Sub(m2 Mat4x2) Mat4x2 + func (m1 Mat4x2) Transpose() Mat2x4 + type Mat4x3 [12]float32 + func Mat4x3FromCols(col0, col1, col2 Vec4) Mat4x3 + func Mat4x3FromRows(row0, row1, row2, row3 Vec3) Mat4x3 + func (m *Mat4x3) Set(row, col int, value float32) + func (m *Mat4x3) SetCol(col int, v Vec4) + func (m *Mat4x3) SetRow(row int, v Vec3) + func (m Mat4x3) Abs() Mat4x3 + func (m Mat4x3) At(row, col int) float32 + func (m Mat4x3) Col(col int) Vec4 + func (m Mat4x3) Cols() (col0, col1, col2 Vec4) + func (m Mat4x3) Index(row, col int) int + func (m Mat4x3) Row(row int) Vec3 + func (m Mat4x3) Rows() (row0, row1, row2, row3 Vec3) + func (m Mat4x3) String() string + func (m1 Mat4x3) Add(m2 Mat4x3) Mat4x3 + func (m1 Mat4x3) ApproxEqual(m2 Mat4x3) bool + func (m1 Mat4x3) ApproxEqualThreshold(m2 Mat4x3, threshold float32) bool + func (m1 Mat4x3) ApproxFuncEqual(m2 Mat4x3, eq func(float32, float32) bool) bool + func (m1 Mat4x3) Mul(c float32) Mat4x3 + func (m1 Mat4x3) Mul3(m2 Mat3) Mat4x3 + func (m1 Mat4x3) Mul3x1(m2 Vec3) Vec4 + func (m1 Mat4x3) Mul3x2(m2 Mat3x2) Mat4x2 + func (m1 Mat4x3) Mul3x4(m2 Mat3x4) Mat4 + func (m1 Mat4x3) Sub(m2 Mat4x3) Mat4x3 + func (m1 Mat4x3) Transpose() Mat3x4 + type MatMxN struct + func DiagN(dst *MatMxN, diag *VecN) *MatMxN + func IdentN(dst *MatMxN, n int) *MatMxN + func NewMatrix(m, n int) (mat *MatMxN) + func NewMatrixFromData(src []float32, m, n int) *MatMxN + func (mat *MatMxN) Add(dst *MatMxN, addend *MatMxN) *MatMxN + func (mat *MatMxN) ApproxEqual(m2 *MatMxN) bool + func (mat *MatMxN) ApproxEqualFunc(m2 *MatMxN, comp func(float32, float32) bool) bool + func (mat *MatMxN) ApproxEqualThreshold(m2 *MatMxN, epsilon float32) bool + func (mat *MatMxN) At(row, col int) float32 + func (mat *MatMxN) InferMatrix(m interface{}) (*MatMxN, error) + func (mat *MatMxN) Mul(dst *MatMxN, c float32) *MatMxN + func (mat *MatMxN) MulMxN(dst *MatMxN, mul *MatMxN) *MatMxN + func (mat *MatMxN) MulNx1(dst, v *VecN) *VecN + func (mat *MatMxN) NumCols() int + func (mat *MatMxN) NumRowCols() (rows, cols int) + func (mat *MatMxN) NumRows() int + func (mat *MatMxN) Raw() []float32 + func (mat *MatMxN) Reshape(m, n int) *MatMxN + func (mat *MatMxN) Set(row, col int, val float32) + func (mat *MatMxN) Sub(dst *MatMxN, subtrahend *MatMxN) *MatMxN + func (mat *MatMxN) Trace() float32 + func (mat *MatMxN) Transpose(dst *MatMxN) (t *MatMxN) + func (mat *MatMxN) Zero(m, n int) + type NilMatrixError struct + func (me NilMatrixError) Error() string + type Quat struct + V Vec3 + W float32 + func AnglesToQuat(angle1, angle2, angle3 float32, order RotationOrder) Quat + func Mat4ToQuat(m Mat4) Quat + func QuatBetweenVectors(start, dest Vec3) Quat + func QuatIdent() Quat + func QuatLerp(q1, q2 Quat, amount float32) Quat + func QuatLookAtV(eye, center, up Vec3) Quat + func QuatNlerp(q1, q2 Quat, amount float32) Quat + func QuatRotate(angle float32, axis Vec3) Quat + func QuatSlerp(q1, q2 Quat, amount float32) Quat + func (q Quat) X() float32 + func (q Quat) Y() float32 + func (q Quat) Z() float32 + func (q1 Quat) Add(q2 Quat) Quat + func (q1 Quat) ApproxEqual(q2 Quat) bool + func (q1 Quat) ApproxEqualFunc(q2 Quat, f func(float32, float32) bool) bool + func (q1 Quat) ApproxEqualThreshold(q2 Quat, epsilon float32) bool + func (q1 Quat) Conjugate() Quat + func (q1 Quat) Dot(q2 Quat) float32 + func (q1 Quat) Inverse() Quat + func (q1 Quat) Len() float32 + func (q1 Quat) Mat4() Mat4 + func (q1 Quat) Mul(q2 Quat) Quat + func (q1 Quat) Norm() float32 + func (q1 Quat) Normalize() Quat + func (q1 Quat) OrientationEqual(q2 Quat) bool + func (q1 Quat) OrientationEqualThreshold(q2 Quat, epsilon float32) bool + func (q1 Quat) Rotate(v Vec3) Vec3 + func (q1 Quat) Scale(c float32) Quat + func (q1 Quat) Sub(q2 Quat) Quat + type RectangularMatrixError struct + func (mse RectangularMatrixError) Error() string + type RotationOrder int + const XYX + const XYZ + const XZX + const XZY + const YXY + const YXZ + const YZX + const YZY + const ZXY + const ZXZ + const ZYX + const ZYZ + type Vec2 f32.Vec2 + func BezierCurve2D(t float32, cPoints []Vec2) Vec2 + func BezierSplineInterpolate2D(t float32, ranges [][2]float32, cPoints [][]Vec2) Vec2 + func Circle(radiusX, radiusY float32, numSlices int) []Vec2 + func CubicBezierCurve2D(t float32, cPoint1, cPoint2, cPoint3, cPoint4 Vec2) Vec2 + func MakeBezierCurve2D(numPoints int, cPoints []Vec2) (line []Vec2) + func QuadraticBezierCurve2D(t float32, cPoint1, cPoint2, cPoint3 Vec2) Vec2 + func Rect(width, height float32) []Vec2 + func (v Vec2) Elem() (x, y float32) + func (v Vec2) Vec3(z float32) Vec3 + func (v Vec2) Vec4(z, w float32) Vec4 + func (v Vec2) X() float32 + func (v Vec2) Y() float32 + func (v1 Vec2) Add(v2 Vec2) Vec2 + func (v1 Vec2) ApproxEqual(v2 Vec2) bool + func (v1 Vec2) ApproxEqualThreshold(v2 Vec2, threshold float32) bool + func (v1 Vec2) ApproxFuncEqual(v2 Vec2, eq func(float32, float32) bool) bool + func (v1 Vec2) Dot(v2 Vec2) float32 + func (v1 Vec2) Len() float32 + func (v1 Vec2) LenSqr() float32 + func (v1 Vec2) Mul(c float32) Vec2 + func (v1 Vec2) Normalize() Vec2 + func (v1 Vec2) OuterProd2(v2 Vec2) Mat2 + func (v1 Vec2) OuterProd3(v2 Vec3) Mat2x3 + func (v1 Vec2) OuterProd4(v2 Vec4) Mat2x4 + func (v1 Vec2) Sub(v2 Vec2) Vec2 + type Vec3 f32.Vec3 + func BezierCurve3D(t float32, cPoints []Vec3) Vec3 + func BezierSplineInterpolate3D(t float32, ranges [][2]float32, cPoints [][]Vec3) Vec3 + func BezierSurface(u, v float32, cPoints [][]Vec3) Vec3 + func CubicBezierCurve3D(t float32, cPoint1, cPoint2, cPoint3, cPoint4 Vec3) Vec3 + func CylindricalToCartesian(rho, phi, z float32) Vec3 + func MakeBezierCurve3D(numPoints int, cPoints []Vec3) (line []Vec3) + func Project(obj Vec3, modelview, projection Mat4, initialX, initialY, width, height int) (win Vec3) + func QuadraticBezierCurve3D(t float32, cPoint1, cPoint2, cPoint3 Vec3) Vec3 + func SphericalToCartesian(r, theta, phi float32) Vec3 + func TransformCoordinate(v Vec3, m Mat4) Vec3 + func TransformNormal(v Vec3, m Mat4) Vec3 + func UnProject(win Vec3, modelview, projection Mat4, initialX, initialY, width, height int) (obj Vec3, err error) + func (v Vec3) Elem() (x, y, z float32) + func (v Vec3) Vec2() Vec2 + func (v Vec3) Vec4(w float32) Vec4 + func (v Vec3) X() float32 + func (v Vec3) Y() float32 + func (v Vec3) Z() float32 + func (v1 Vec3) Add(v2 Vec3) Vec3 + func (v1 Vec3) ApproxEqual(v2 Vec3) bool + func (v1 Vec3) ApproxEqualThreshold(v2 Vec3, threshold float32) bool + func (v1 Vec3) ApproxFuncEqual(v2 Vec3, eq func(float32, float32) bool) bool + func (v1 Vec3) Cross(v2 Vec3) Vec3 + func (v1 Vec3) Dot(v2 Vec3) float32 + func (v1 Vec3) Len() float32 + func (v1 Vec3) LenSqr() float32 + func (v1 Vec3) Mul(c float32) Vec3 + func (v1 Vec3) Normalize() Vec3 + func (v1 Vec3) OuterProd2(v2 Vec2) Mat3x2 + func (v1 Vec3) OuterProd3(v2 Vec3) Mat3 + func (v1 Vec3) OuterProd4(v2 Vec4) Mat3x4 + func (v1 Vec3) Sub(v2 Vec3) Vec3 + type Vec4 f32.Vec4 + func (v Vec4) Elem() (x, y, z, w float32) + func (v Vec4) Quat() Quat + func (v Vec4) Vec2() Vec2 + func (v Vec4) Vec3() Vec3 + func (v Vec4) W() float32 + func (v Vec4) X() float32 + func (v Vec4) Y() float32 + func (v Vec4) Z() float32 + func (v1 Vec4) Add(v2 Vec4) Vec4 + func (v1 Vec4) ApproxEqual(v2 Vec4) bool + func (v1 Vec4) ApproxEqualThreshold(v2 Vec4, threshold float32) bool + func (v1 Vec4) ApproxFuncEqual(v2 Vec4, eq func(float32, float32) bool) bool + func (v1 Vec4) Dot(v2 Vec4) float32 + func (v1 Vec4) Len() float32 + func (v1 Vec4) LenSqr() float32 + func (v1 Vec4) Mul(c float32) Vec4 + func (v1 Vec4) Normalize() Vec4 + func (v1 Vec4) OuterProd2(v2 Vec2) Mat4x2 + func (v1 Vec4) OuterProd3(v2 Vec3) Mat4x3 + func (v1 Vec4) OuterProd4(v2 Vec4) Mat4 + func (v1 Vec4) Sub(v2 Vec4) Vec4 + type VecN struct + func NewVecN(n int) *VecN + func NewVecNFromData(initial []float32) *VecN + func (vn *VecN) Add(dst *VecN, subtrahend *VecN) *VecN + func (vn *VecN) ApproxEqual(vn2 *VecN) bool + func (vn *VecN) ApproxEqualFunc(vn2 *VecN, comp func(float32, float32) bool) bool + func (vn *VecN) ApproxEqualThreshold(vn2 *VecN, epsilon float32) bool + func (vn *VecN) Cap() int + func (vn *VecN) Cross(dst *VecN, other *VecN) *VecN + func (vn *VecN) Dot(other *VecN) float32 + func (vn *VecN) Len() float32 + func (vn *VecN) LenSqr() float32 + func (vn *VecN) Mul(dst *VecN, c float32) *VecN + func (vn *VecN) Normalize(dst *VecN) *VecN + func (vn *VecN) OuterProd(dst *MatMxN, v2 *VecN) *MatMxN + func (vn *VecN) Resize(n int) *VecN + func (vn *VecN) Set(i int, val float32) + func (vn *VecN) SetBackingSlice(newSlice []float32) + func (vn *VecN) Size() int + func (vn *VecN) Sub(dst *VecN, addend *VecN) *VecN + func (vn *VecN) Vec2() Vec2 + func (vn *VecN) Vec3() Vec3 + func (vn *VecN) Vec4() Vec4 + func (vn *VecN) Zero(n int) + func (vn VecN) Get(i int) float32 + func (vn VecN) Raw() []float32