package matrix
import "kaijuengine.com/matrix"
Constants
Mat3Row0
iota
Mat3Row1
Mat3Row2
Mat3Col0
iota
Mat3Col1
Mat3Col2
Mat3x0y0
x0y0_3
Mat3x1y0
x1y0_3
Mat3x2y0
x2y0_3
Mat3x0y1
x0y1_3
Mat3x1y1
x1y1_3
Mat3x2y1
x2y1_3
Mat3x0y2
x0y2_3
Mat3x1y2
x1y2_3
Mat3x2y2
x2y2_3
Mat4Row0
iota
Mat4Row1
Mat4Row2
Mat4Row3
Mat4Col0
iota
Mat4Col1
Mat4Col2
Mat4Col3
Mat4x0y0
x0y0
Mat4x1y0
x1y0
Mat4x2y0
x2y0
Mat4x3y0
x3y0
Mat4x0y1
x0y1
Mat4x1y1
x1y1
Mat4x2y1
x2y1
Mat4x3y1
x3y1
Mat4x0y2
x0y2
Mat4x1y2
x1y2
Mat4x2y2
x2y2
Mat4x3y2
x3y2
Mat4x0y3
x0y3
Mat4x1y3
x1y3
Mat4x2y3
x2y3
Mat4x3y3
x3y3
"transform"
"transformReset"
Functions
Abs[T tNumber]
func Abs[T tNumber](x T) T
AbsInt
Acos[T tNumber]
func Acos[T tNumber](x T) T
Approx[T tNumber]
func Approx[T tNumber](a, b T) bool
ApproxTo[T tNumber]
func ApproxTo[T tNumber](a, b, tolerance T) bool
Asin[T tNumber]
func Asin[T tNumber](x T) T
Atan[T tNumber]
func Atan[T tNumber](x T) T
Atan2[T tNumber]
func Atan2[T tNumber](y T, x T) T
Ceil[T tNumber]
func Ceil[T tNumber](x T) T
Cos[T tNumber]
func Cos[T tNumber](x T) T
Floor[T tNumber]
func Floor[T tNumber](x T) T
IsInf[T tNumber]
func IsInf[T tNumber](x T, sign int) bool
IsNaN[T tNumber]
func IsNaN[T tNumber](x T) bool
Lerp[T tNumber]
func Lerp[T tNumber](v0 T, v1 T, t T) T
Log2[T tNumber]
func Log2[T tNumber](x T) T
Mat3Approx
func Mat3Approx(a, b Mat3) bool
Mat3ApproxTo
func Mat3ApproxTo(a, b Mat3, delta Float) bool
Mat4Approx
func Mat4Approx(a, b Mat4) bool
Mat4ApproxTo
func Mat4ApproxTo(a, b Mat4, delta Float) bool
Mod[T tNumber]
func Mod[T tNumber](x T, y T) T
Pow[T tNumber]
func Pow[T tNumber](x T, y T) T
QuaternionApprox
func QuaternionApprox(a, b Quaternion) bool
Round[T tNumber]
func Round[T tNumber](x T) T
Sin[T tNumber]
func Sin[T tNumber](x T) T
Sqrt[T tNumber]
func Sqrt[T tNumber](x T) T
Tan[T tNumber]
func Tan[T tNumber](x T) T
Vec2Approx[T tNumber]
func Vec2Approx[T tNumber](a, b Vec2T[T]) bool
Vec2ApproxTo[T tNumber]
func Vec2ApproxTo[T tNumber](a, b Vec2T[T], delta T) bool
Vec2Dot[T tNumber]
func Vec2Dot[T tNumber](v, other Vec2T[T]) T
Vec2Nearly
func Vec2Nearly(a, b Vec2) bool
Vec2Roughly
func Vec2Roughly(a, b Vec2) bool
Vec3Approx[T tNumber]
func Vec3Approx[T tNumber](a, b Vec3T[T]) bool
Vec3ApproxTo[T tNumber]
func Vec3ApproxTo[T tNumber](a, b Vec3T[T], delta T) bool
Vec3Dot[T tNumber]
func Vec3Dot[T tNumber](v, other Vec3T[T]) T
Vec4Approx[T tNumber]
func Vec4Approx[T tNumber](a, b Vec4T[T]) bool
Vec4ApproxTo[T tNumber]
func Vec4ApproxTo[T tNumber](a, b Vec4T[T], delta T) bool
Vec4Dot[T tNumber]
func Vec4Dot[T tNumber](v, other Vec4T[T]) T
Vec4Roughly
func Vec4Roughly(a, b Vec4) bool
Types
Color
Vec4T[float32]
type Color Vec4T[float32]
ColorAqua
ColorAquamarine
func ColorAquamarine() Color
ColorAzure
ColorBeige
ColorBisque
ColorBlack
ColorBlanchedAlmond
func ColorBlanchedAlmond() Color
ColorBlue
ColorBlueViolet
func ColorBlueViolet() Color
ColorBrown
ColorBurlyWood
func ColorBurlyWood() Color
ColorCadetBlue
func ColorCadetBlue() Color
ColorChartreuse
func ColorChartreuse() Color
ColorChocolate
func ColorChocolate() Color
ColorClear
ColorCoral
ColorCornSilk
func ColorCornSilk() Color
ColorCornflowerBlue
func ColorCornflowerBlue() Color
ColorCrimson
func ColorCrimson() Color
ColorCyan
ColorDarkBG
ColorDarkBlue
func ColorDarkBlue() Color
ColorDarkCyan
func ColorDarkCyan() Color
ColorDarkGoldenrod
func ColorDarkGoldenrod() Color
ColorDarkGray
func ColorDarkGray() Color
ColorDarkGreen
func ColorDarkGreen() Color
ColorDarkKhaki
func ColorDarkKhaki() Color
ColorDarkMagenta
func ColorDarkMagenta() Color
ColorDarkModeGrayBG
func ColorDarkModeGrayBG() Color
ColorDarkModeGrayFG
func ColorDarkModeGrayFG() Color
ColorDarkOliveGreen
func ColorDarkOliveGreen() Color
ColorDarkOrange
func ColorDarkOrange() Color
ColorDarkOrchid
func ColorDarkOrchid() Color
ColorDarkRed
func ColorDarkRed() Color
ColorDarkSalmon
func ColorDarkSalmon() Color
ColorDarkSeaGreen
func ColorDarkSeaGreen() Color
ColorDarkSlateBlue
func ColorDarkSlateBlue() Color
ColorDarkSlateGray
func ColorDarkSlateGray() Color
ColorDarkTurquoise
func ColorDarkTurquoise() Color
ColorDarkViolet
func ColorDarkViolet() Color
ColorDeepPink
func ColorDeepPink() Color
ColorDeepSkyBlue
func ColorDeepSkyBlue() Color
ColorDimGray
func ColorDimGray() Color
ColorDodgerBlue
func ColorDodgerBlue() Color
ColorFirebrick
func ColorFirebrick() Color
ColorFloralWhite
func ColorFloralWhite() Color
ColorForestGreen
func ColorForestGreen() Color
ColorFromColor8
func ColorFromColor8(c Color8) Color
ColorFromHexString
func ColorFromHexString(str string) (Color, error)
ColorFromVec3
func ColorFromVec3(v Vec3) Color
ColorFromVec4
func ColorFromVec4(v Vec4) Color
ColorFuchsia
func ColorFuchsia() Color
ColorGainsboro
func ColorGainsboro() Color
ColorGhostWhite
func ColorGhostWhite() Color
ColorGold
ColorGoldenrod
func ColorGoldenrod() Color
ColorGray
ColorGreen
ColorGreenYellow
func ColorGreenYellow() Color
ColorHoneydew
func ColorHoneydew() Color
ColorHotPink
func ColorHotPink() Color
ColorIndianRed
func ColorIndianRed() Color
ColorIndigo
ColorIvory
ColorKhaki
ColorLavender
func ColorLavender() Color
ColorLavenderBlush
func ColorLavenderBlush() Color
ColorLawnGreen
func ColorLawnGreen() Color
ColorLemonChiffon
func ColorLemonChiffon() Color
ColorLightBlue
func ColorLightBlue() Color
ColorLightCoral
func ColorLightCoral() Color
ColorLightCyan
func ColorLightCyan() Color
ColorLightGoldenrodYellow
func ColorLightGoldenrodYellow() Color
ColorLightGreen
func ColorLightGreen() Color
ColorLightGrey
func ColorLightGrey() Color
ColorLightPink
func ColorLightPink() Color
ColorLightSalmon
func ColorLightSalmon() Color
ColorLightSeaGreen
func ColorLightSeaGreen() Color
ColorLightSkyBlue
func ColorLightSkyBlue() Color
ColorLightSlateGray
func ColorLightSlateGray() Color
ColorLightSteelBlue
func ColorLightSteelBlue() Color
ColorLightYellow
func ColorLightYellow() Color
ColorLime
ColorLimeGreen
func ColorLimeGreen() Color
ColorLinen
ColorMagenta
func ColorMagenta() Color
ColorMaroon
ColorMediumAquamarine
func ColorMediumAquamarine() Color
ColorMediumBlue
func ColorMediumBlue() Color
ColorMediumOrchid
func ColorMediumOrchid() Color
ColorMediumPurple
func ColorMediumPurple() Color
ColorMediumSeaGreen
func ColorMediumSeaGreen() Color
ColorMediumSlateBlue
func ColorMediumSlateBlue() Color
ColorMediumSpringGreen
func ColorMediumSpringGreen() Color
ColorMediumTurquoise
func ColorMediumTurquoise() Color
ColorMediumVioletRed
func ColorMediumVioletRed() Color
ColorMidnightBlue
func ColorMidnightBlue() Color
ColorMintCream
func ColorMintCream() Color
ColorMistyRose
func ColorMistyRose() Color
ColorMix
func ColorMix(lhs, rhs Color, amount float32) Color
ColorMoccasin
func ColorMoccasin() Color
ColorNavajoWhite
func ColorNavajoWhite() Color
ColorNavy
ColorOldLace
func ColorOldLace() Color
ColorOlive
ColorOliveDrab
func ColorOliveDrab() Color
ColorOrange
ColorOrangeRed
func ColorOrangeRed() Color
ColorOrchid
ColorOver
func ColorOver(src, dst Color) Color
ColorOver alpha-composites src "over" dst using straight (non-premultiplied)
alpha and returns the result as a straight-alpha color. This is the standard
Porter-Duff "over" operator:
A_out = src.A + dst.A(1-src.A)
RGB_out = (src.RGBsrc.A + dst.RGBdst.A(1-src.A)) / A_out
When dst is opaque (the common case for calculated/"used" UI colors) the
result is opaque and is exactly what src looks like painted on top of dst.
If both src and dst are effectively transparent the result is transparent
(RGB carried from src so a sensible hue remains for later compositing).
ColorPaleGoldenrod
func ColorPaleGoldenrod() Color
ColorPaleGreen
func ColorPaleGreen() Color
ColorPaleTurquoise
func ColorPaleTurquoise() Color
ColorPaleVioletred
func ColorPaleVioletred() Color
ColorPapayaWhip
func ColorPapayaWhip() Color
ColorPeachPuff
func ColorPeachPuff() Color
ColorPeru
ColorPink
ColorPlum
ColorPowderBlue
func ColorPowderBlue() Color
ColorPurple
ColorRGBAInt
func ColorRGBAInt(r, g, b, a int) Color
ColorRGBInt
func ColorRGBInt(r, g, b int) Color
ColorRed
ColorRosyBrown
func ColorRosyBrown() Color
ColorRoyalBlue
func ColorRoyalBlue() Color
ColorSaddleBrown
func ColorSaddleBrown() Color
ColorSalmon
ColorSandyBrown
func ColorSandyBrown() Color
ColorSeaGreen
func ColorSeaGreen() Color
ColorSeashell
func ColorSeashell() Color
ColorSienna
ColorSilver
ColorSky
ColorSkyBlue
func ColorSkyBlue() Color
ColorSlateBlue
func ColorSlateBlue() Color
ColorSlateGray
func ColorSlateGray() Color
ColorSlateGrey
func ColorSlateGrey() Color
ColorSnow
ColorSpringGreen
func ColorSpringGreen() Color
ColorSteelBlue
func ColorSteelBlue() Color
ColorTan
ColorTeal
ColorThistle
func ColorThistle() Color
ColorTomato
ColorTransparent
func ColorTransparent() Color
ColorTurquoise
func ColorTurquoise() Color
ColorViolet
ColorWheat
ColorWhite
ColorWhiteSmoke
func ColorWhiteSmoke() Color
ColorYellow
ColorYellowGreen
func ColorYellowGreen() Color
ColorZero
NewColor
func NewColor(r, g, b, a float32) Color
OklabToColor
func OklabToColor(l, a, b, alpha float32) Color
https://bottosson.github.io/posts/oklab/#converting-from-linear-srgb-to-oklab
OklchToColor
func OklchToColor(l, c, h, alpha float32) Color
https://bottosson.github.io/posts/oklab/#the-oklab-color-space h (hue) is in
degrees
Color.A
func (c Color) A() float32
Color.AsColor8
func (c Color) AsColor8() Color8
Color.B
func (c Color) B() float32
Color.Equals
func (lhs Color) Equals(rhs Color) bool
Color.G
func (c Color) G() float32
Color.Hex
func (c Color) Hex() string
Color.Inverted
func (c *Color) Inverted() Color
Color.IsZero
func (c Color) IsZero() bool
Color.MultiplyAssign
func (c *Color) MultiplyAssign(other Color)
Color.PA
func (c *Color) PA() *float32
Color.PB
func (c *Color) PB() *float32
Color.PG
func (c *Color) PG() *float32
Color.PR
func (c *Color) PR() *float32
Color.R
func (c Color) R() float32
Color.RGBA
func (c Color) RGBA() (float32, float32, float32, float32)
Color.ScaleWithoutAlpha
func (c Color) ScaleWithoutAlpha(scale float32) Color
Color.SetA
func (c *Color) SetA(a float32)
Color.SetB
func (c *Color) SetB(b float32)
Color.SetG
func (c *Color) SetG(g float32)
Color.SetR
func (c *Color) SetR(r float32)
Color8
[4]uint8
Color8FromBytes
func Color8FromBytes(bytes []byte) Color8
Color8FromColor
func Color8FromColor(c Color) Color8
Color8FromHexString
func Color8FromHexString(str string) (Color8, error)
NewColor8
func NewColor8(r, g, b, a uint8) Color8
Color8.A
func (c Color8) A() uint8
Color8.AsColor
func (c Color8) AsColor() Color
Color8.B
func (c Color8) B() uint8
Color8.Equal
func (c Color8) Equal(rhs Color8) bool
Color8.G
func (c Color8) G() uint8
Color8.Hex
func (c Color8) Hex() string
Color8.PA
func (c *Color8) PA() *uint8
Color8.PB
func (c *Color8) PB() *uint8
Color8.PG
func (c *Color8) PG() *uint8
Color8.PR
func (c *Color8) PR() *uint8
Color8.R
func (c Color8) R() uint8
Color8.RGBA
func (c Color8) RGBA() (uint8, uint8, uint8, uint8)
Color8.SetA
func (c *Color8) SetA(a uint8)
Color8.SetB
func (c *Color8) SetB(b uint8)
Color8.SetG
func (c *Color8) SetG(g uint8)
Color8.SetR
func (c *Color8) SetR(r uint8)
Color8.Similar
func (lhs Color8) Similar(rhs Color8, tolerance uint8) bool
Color8.ToUintRaw
func (c Color8) ToUintRaw() uint32
ColorComponent
int
type ColorComponent = int
const (
R ColorComponent = iota
G
B
A
)
Float
float32
Clamp[T tNumber]
func Clamp[T tNumber](current, minimum, maximum T) Float
Deg2Rad[T tNumber]
func Deg2Rad[T tNumber](degree T) Float
Inf
Mat3Determinant
func Mat3Determinant(m Mat3) Float
NaN
Rad2Deg[T tNumber]
func Rad2Deg[T tNumber](radian T) Float
Mat3
[9]Float
Mat3FromMat4
func Mat3FromMat4(m Mat4) Mat3
Mat3FromSlice
func Mat3FromSlice(a []Float) Mat3
Mat3FromVec3
func Mat3FromVec3(v Vec3) Mat3
Mat3Identity
Mat3Multiply
func Mat3Multiply(a, b Mat3) Mat3
Mat3Zero
NewMat3
Mat3.Add
func (m Mat3) Add(rhs Mat3) Mat3
Mat3.AddAssign
func (m *Mat3) AddAssign(rhs Mat3)
Mat3.At
func (m Mat3) At(rowIndex, colIndex int) Float
Mat3.ColumnVector
func (m Mat3) ColumnVector(col int) Vec3
Mat3.Determinant
func (m Mat3) Determinant() Float
Mat3.Equals
func (m Mat3) Equals(other Mat3) bool
Mat3.Inverse
Mat3.Inverted
func (m Mat3) Inverted() Mat3
Mat3.IsIdentity
func (m Mat3) IsIdentity() bool
Mat3.Multiply
func (m Mat3) Multiply(rhs Mat3) Mat3
Mat3.MultiplyAssign
func (m *Mat3) MultiplyAssign(rhs Mat3)
Mat3.MultiplyVec3
func (m Mat3) MultiplyVec3(v Vec3) Vec3
Mat3.Negate
func (m Mat3) Negate() Mat3
Mat3.NegateAssign
func (m *Mat3) NegateAssign()
Mat3.Reset
Mat3.RowVector
func (m Mat3) RowVector(row int) Vec3
Mat3.Scale
func (m Mat3) Scale(s Float) Mat3
Mat3.ScaleAssign
func (m *Mat3) ScaleAssign(s Float)
Mat3.Subtract
func (m Mat3) Subtract(rhs Mat3) Mat3
Mat3.SubtractAssign
func (m *Mat3) SubtractAssign(rhs Mat3)
Mat3.ToMat4
func (m Mat3) ToMat4() Mat4
Mat3.Transpose
func (m Mat3) Transpose() Mat3
Mat3.TransposeAssign
func (m *Mat3) TransposeAssign()
Mat3.Zero
Mat4
[16]Float
Mat4FromSlice
func Mat4FromSlice(a []Float) Mat4
Mat4Identity
Mat4LookAt
func Mat4LookAt(eye, center, up Vec3) Mat4
Mat4Multiply
func Mat4Multiply(a, b Mat4) Mat4
Mat4Zero
NewMat4
Mat4.AddAssign
func (m *Mat4) AddAssign(rhs Mat4)
Mat4.At
func (m Mat4) At(rowIndex, colIndex int) Float
Mat4.ColumnVector
func (m Mat4) ColumnVector(col int) Vec4
Mat4.Equals
func (m Mat4) Equals(other Mat4) bool
func (m Mat4) ExtractPosition() Vec3
func (m Mat4) ExtractRotation() Quaternion
func (m Mat4) ExtractScale() Vec3
Mat4.Forward
func (m Mat4) Forward() Vec3
Mat4.Inverse
Mat4.Inverted
func (m Mat4) Inverted() Mat4
Mat4.IsIdentity
func (m Mat4) IsIdentity() bool
Mat4.LookAt
func (m *Mat4) LookAt(eye, center, up Vec3)
Mat4.Mat3
func (m *Mat4) Mat3() Mat3
Mat4.Mat4ProjToVulkan
func (m Mat4) Mat4ProjToVulkan() Mat4
Mat4.Mat4Project
func (m Mat4) Mat4Project(pos Vec3, viewport Vec4) Vec3
Mat4.Mat4UnProject
func (m Mat4) Mat4UnProject(p Vec3, invViewProj Mat4, viewport Vec4) Vec3
Mat4.MultiplyAssign
func (a *Mat4) MultiplyAssign(b Mat4)
Mat4.NegateAssign
func (m *Mat4) NegateAssign()
Mat4.Orthographic
func (m *Mat4) Orthographic(left, right, bottom, top, near, far Float)
Mat4.Perspective
func (m *Mat4) Perspective(fovy, aspect, nearVal, farVal Float)
Mat4.Reset
Mat4.Right
func (m Mat4) Right() Vec3
Mat4.Rotate
func (m *Mat4) Rotate(rotate Vec3)
Mat4.RotateAngles
func (m *Mat4) RotateAngles(axis Vec3, angle Float)
Mat4.RotateX
func (m *Mat4) RotateX(angles Float)
Mat4.RotateY
func (m *Mat4) RotateY(angles Float)
Mat4.RotateZ
func (m *Mat4) RotateZ(angles Float)
Mat4.RowVector
func (m Mat4) RowVector(row int) Vec4
Mat4.Scale
func (m *Mat4) Scale(scale Vec3)
Mat4.SetTranslation
func (m *Mat4) SetTranslation(translation Vec3)
Mat4.SubtractAssign
func (m *Mat4) SubtractAssign(rhs Mat4)
Mat4.ToQuaternion
func (m Mat4) ToQuaternion() Quaternion
func (m Mat4) TransformPoint(point Vec3) Vec3
Mat4.Translate
func (m *Mat4) Translate(translation Vec3)
Mat4.Transpose
func (m Mat4) Transpose() Mat4
Mat4.TransposeAssign
func (m *Mat4) TransposeAssign()
Mat4.Up
Mat4.Zero
Quaternion
[4]Float
NewQuaternion
func NewQuaternion(w, x, y, z Float) Quaternion
QuatAngleBetween
func QuatAngleBetween(lhs, rhs Vec3) Quaternion
QuaternionAxisAngle
func QuaternionAxisAngle(axis Vec3, angle Float) Quaternion
QuaternionFromArray
func QuaternionFromArray(xyzw [4]Float) Quaternion
QuaternionFromEuler
func QuaternionFromEuler(v Vec3) Quaternion
QuaternionFromMat4
func QuaternionFromMat4(m Mat4) Quaternion
QuaternionFromSlice
func QuaternionFromSlice(xyzw []Float) Quaternion
QuaternionFromVec4
func QuaternionFromVec4(v Vec4) Quaternion
QuaternionFromXYZW
func QuaternionFromXYZW(xyzw [4]Float) Quaternion
QuaternionFromXYZWSlice
func QuaternionFromXYZWSlice(xyzw []Float) Quaternion
QuaternionIdentity
func QuaternionIdentity() Quaternion
QuaternionLerp
func QuaternionLerp(from, to Quaternion, factor Float) Quaternion
QuaternionLookAt
func QuaternionLookAt(from, to Vec3) Quaternion
QuaternionSlerp
func QuaternionSlerp(from, to Quaternion, factor Float) Quaternion
Quaternion.AddAssign
func (q *Quaternion) AddAssign(rhs Quaternion)
Quaternion.Conjugate
func (q *Quaternion) Conjugate()
Quaternion.Inverse
func (q *Quaternion) Inverse()
Quaternion.IsZero
func (q Quaternion) IsZero() bool
Quaternion.Multiply
func (q Quaternion) Multiply(rhs Quaternion) Quaternion
Quaternion.MultiplyAssign
func (q *Quaternion) MultiplyAssign(rhs Quaternion)
Quaternion.MultiplyVec3
func (q Quaternion) MultiplyVec3(rhs Vec3) Vec3
Quaternion.Normal
func (q Quaternion) Normal() Quaternion
Quaternion.Normalize
func (q *Quaternion) Normalize()
Quaternion.Rotate
func (q Quaternion) Rotate(v Vec3) Vec3
Rotate transforms a vector by this quaternion.
Quaternion.ToEuler
func (q Quaternion) ToEuler() Vec3
Quaternion.ToMat4
func (q Quaternion) ToMat4() Mat4
Quaternion.W
func (q Quaternion) W() Float
Quaternion.X
func (q Quaternion) X() Float
Quaternion.Y
func (q Quaternion) Y() Float
Quaternion.Z
func (q Quaternion) Z() Float
QuaternionComponent
int
type QuaternionComponent = int
const (
Qw QuaternionComponent = iota
Qx
Qy
Qz
)
struct
type Transform struct {
// Has unexported fields.
}
func (t *Transform) AddPosition(add Vec3)
func (t *Transform) AddRotation(add Vec3)
func (t *Transform) AddScale(add Vec3)
func (t *Transform) ContainsPoint(point Vec3) bool
func (t *Transform) ContainsPoint2D(point Vec2) bool
uses centered coordinates
func (t *Transform) Copy(other Transform)
func (t *Transform) Forward() Vec3
func (t *Transform) Initialize(workGroup *concurrent.WorkGroup)
func (t *Transform) InverseWorldMatrix() Mat4
func (t *Transform) IsDirty() bool
func (t *Transform) LocalPosition() Vec3
func (t *Transform) LookAt(point Vec3)
func (t *Transform) Matrix() Mat4
func (t *Transform) Parent() *Transform
func (t *Transform) Position() Vec3
func (t *Transform) ResetDirty()
func (t *Transform) Right() Vec3
func (t *Transform) Rotation() Vec3
func (t *Transform) Scale() Vec3
func (t *Transform) ScaleWithoutChildren(scale Vec3)
ScaleWithoutChildren will scale a transform without changing the world scale
of the children of this transform. That is to say, it will update all the
child transform scales to return to their original world scale after scaling
this transform.
func (t *Transform) SetChildrenOrdered()
func (t *Transform) SetChildrenUnordered()
func (t *Transform) SetDirty()
func (t *Transform) SetLocalPosition(position Vec3)
func (t *Transform) SetParent(parent *Transform)
func (t *Transform) SetPosition(position Vec3)
func (t *Transform) SetRotation(rotation Vec3)
func (t *Transform) SetScale(scale Vec3)
func (t *Transform) SetWorldPosition(position Vec3)
func (t *Transform) SetWorldRotation(rotation Vec3)
func (t *Transform) SetWorldScale(scale Vec3)
func (t *Transform) SetupRawTransform()
func (t *Transform) Up() Vec3
func (t *Transform) WorldMatrix() Mat4
func (t *Transform) WorldPosition() Vec3
func (t *Transform) WorldRotation() Vec3
func (t *Transform) WorldScale() Vec3
func (t *Transform) WorldTransform() (Vec3, Vec3, Vec3)
Vec2
Vec2T[Float]
NewVec2[T1, T2 tNumber]
func NewVec2[T1, T2 tNumber](x T1, y T2) Vec2
Vec2Down
Vec2FromArray[T tNumber]
func Vec2FromArray[T tNumber](a [2]T) Vec2
Vec2FromSlice[T tNumber]
func Vec2FromSlice[T tNumber](a []T) Vec2
Vec2FromString
func Vec2FromString(str string) Vec2
Vec2Half
Vec2Inf
func Vec2Inf(sign int) Vec2
Vec2Largest
Vec2Left
Vec2Lerp
func Vec2Lerp(from, to Vec2, t Float) Vec2
Vec2Max
func Vec2Max(a, b Vec2) Vec2
Vec2Min
func Vec2Min(a, b Vec2) Vec2
Vec2MinAbs
func Vec2MinAbs(a, b Vec2) Vec2
Vec2NaN
Vec2One
Vec2Right
Vec2Up
Vec2Zero
Vec2T
[2]T
type Vec2T[T tNumber] [2]T
Vec2MaxAbs[T tNumber]
func Vec2MaxAbs[T tNumber](a, b Vec2T[T]) Vec2T[T]
Vec2T.Abs
func (v Vec2T[T]) Abs() Vec2T[T]
Vec2T.Add
func (v Vec2T[T]) Add(other Vec2T[T]) Vec2T[T]
Vec2T.AddAssign
func (v *Vec2T[T]) AddAssign(other Vec2T[T])
Vec2T.Angle
func (v Vec2T[T]) Angle(other Vec2T[T]) T
Vec2T.AsVec2i
func (v Vec2T[T]) AsVec2i() Vec2i
Vec2T.AsVec3
func (v Vec2T[T]) AsVec3() Vec3
Vec2T.Distance
func (v Vec2T[T]) Distance(other Vec2T[T]) T
Vec2T.Divide
func (v Vec2T[T]) Divide(other Vec2T[T]) Vec2T[T]
Vec2T.DivideAssign
func (v *Vec2T[T]) DivideAssign(other Vec2T[T])
Vec2T.Equals
func (v Vec2T[T]) Equals(other Vec2T[T]) bool
Vec2T.Height
func (v Vec2T[T]) Height() T
Vec2T.Inverse
func (v *Vec2T[T]) Inverse()
Vec2T.IsInf
func (v Vec2T[T]) IsInf(sign int) bool
Vec2T.IsNaN
func (v Vec2T[T]) IsNaN() bool
Vec2T.IsValidNonZero
func (v Vec2T[T]) IsValidNonZero() bool
Vec2T.IsZero
func (v Vec2T[T]) IsZero() bool
Vec2T.LargestAxis
func (v Vec2T[T]) LargestAxis() T
Vec2T.LargestAxisDelta
func (v Vec2T[T]) LargestAxisDelta() T
Vec2T.Length
func (v Vec2T[T]) Length() T
Vec2T.Multiply
func (v Vec2T[T]) Multiply(other Vec2T[T]) Vec2T[T]
Vec2T.MultiplyAssign
func (v *Vec2T[T]) MultiplyAssign(other Vec2T[T])
Vec2T.Negative
func (v Vec2T[T]) Negative() Vec2T[T]
Vec2T.Normal
func (v Vec2T[T]) Normal() Vec2T[T]
Vec2T.Normalize
func (v *Vec2T[T]) Normalize()
Vec2T.PX
func (v *Vec2T[T]) PX() *T
Vec2T.PY
func (v *Vec2T[T]) PY() *T
Vec2T.Scale
func (v Vec2T[T]) Scale(scalar T) Vec2T[T]
Vec2T.ScaleAssign
func (v *Vec2T[T]) ScaleAssign(scalar T)
Vec2T.SetHeight
func (v *Vec2T[T]) SetHeight(y T)
Vec2T.SetWidth
func (v *Vec2T[T]) SetWidth(x T)
Vec2T.SetX
func (v *Vec2T[T]) SetX(x T)
Vec2T.SetY
func (v *Vec2T[T]) SetY(y T)
Vec2T.Shrink
func (v Vec2T[T]) Shrink(scalar T) Vec2T[T]
Vec2T.ShrinkAssign
func (v *Vec2T[T]) ShrinkAssign(scalar T)
Vec2T.String
func (v Vec2T[T]) String() string
Vec2T.Subtract
func (v Vec2T[T]) Subtract(other Vec2T[T]) Vec2T[T]
Vec2T.SubtractAssign
func (v *Vec2T[T]) SubtractAssign(other Vec2T[T])
Vec2T.Width
func (v Vec2T[T]) Width() T
Vec2T.X
Vec2T.XY
func (v Vec2T[T]) XY() (T, T)
Vec2T.Y
Vec2i
[2]int32
Vec2i.Height
func (v Vec2i) Height() int32
Vec2i.SetHeight
func (v *Vec2i) SetHeight(height int32)
Vec2i.SetWidth
func (v *Vec2i) SetWidth(width int32)
Vec2i.SetX
func (v *Vec2i) SetX(x int32)
Vec2i.SetY
func (v *Vec2i) SetY(y int32)
Vec2i.Width
func (v Vec2i) Width() int32
Vec2i.X
Vec2i.Y
Vec3
Vec3T[Float]
Mat3MultiplyVec3
func Mat3MultiplyVec3(m Mat3, v Vec3) Vec3
Mat4ToScreenSpace
func Mat4ToScreenSpace(pos Vec3, view, projection Mat4, viewport Vec4) (Vec3, bool)
NewVec3[T1, T2, T3 tNumber]
func NewVec3[T1, T2, T3 tNumber](x T1, y T2, z T3) Vec3
NewVec3XYZ[T tNumber]
func NewVec3XYZ[T tNumber](xyz T) Vec3
Vec3Abs
func Vec3Abs(v Vec3) Vec3
Vec3Backward
Vec3Down
Vec3Forward
Vec3FromArray[T tNumber]
func Vec3FromArray[T tNumber](a [3]T) Vec3
Vec3FromSlice[T tNumber]
func Vec3FromSlice[T tNumber](a []T) Vec3
Vec3FromString
func Vec3FromString(str string) Vec3
Vec3Half
Vec3Inf
func Vec3Inf(sign int) Vec3
Vec3Largest
Vec3Left
Vec3Lerp
func Vec3Lerp(from, to Vec3, t Float) Vec3
Vec3Max
func Vec3Max(v ...Vec3) Vec3
Vec3MaxAbs
func Vec3MaxAbs(v ...Vec3) Vec3
Vec3Min
func Vec3Min(v ...Vec3) Vec3
Vec3MinAbs
func Vec3MinAbs(v ...Vec3) Vec3
Vec3NaN
Vec3One
Vec3Right
Vec3Up
Vec3Zero
Vec3MinMax
struct
type Vec3MinMax struct {
Min Vec3
Max Vec3
}
NewVec3MinMax
func NewVec3MinMax() Vec3MinMax
Vec3T
[3]T
type Vec3T[T tNumber] [3]T
Vec3Cross[T tNumber]
func Vec3Cross[T tNumber](v, other Vec3T[T]) Vec3T[T]
Vec3T.Abs
func (v Vec3T[T]) Abs() Vec3T[T]
Vec3T.Add
func (v Vec3T[T]) Add(other Vec3T[T]) Vec3T[T]
Vec3T.AddAssign
func (v *Vec3T[T]) AddAssign(other Vec3T[T])
Vec3T.AddX
func (v *Vec3T[T]) AddX(x T)
Vec3T.AddY
func (v *Vec3T[T]) AddY(y T)
Vec3T.AddZ
func (v *Vec3T[T]) AddZ(z T)
Vec3T.Angle
func (v Vec3T[T]) Angle(other Vec3T[T]) T
Vec3T.AsAligned16
func (v Vec3T[T]) AsAligned16() [4]Float
Vec3T.AsVec2
func (v Vec3T[T]) AsVec2() Vec2
Vec3T.AsVec3i
func (v Vec3T[T]) AsVec3i() Vec3i
Vec3T.AsVec4
func (v Vec3T[T]) AsVec4() Vec4
Vec3T.AsVec4WithW
func (v Vec3T[T]) AsVec4WithW(w T) Vec4
Vec3T.Cross
func (v Vec3T[T]) Cross(other Vec3T[T]) Vec3T[T]
Vec3T.Depth
func (v Vec3T[T]) Depth() T
Vec3T.Distance
func (v Vec3T[T]) Distance(other Vec3T[T]) T
Vec3T.Divide
func (v Vec3T[T]) Divide(other Vec3T[T]) Vec3T[T]
Vec3T.DivideAssign
func (v *Vec3T[T]) DivideAssign(other Vec3T[T])
Vec3T.Dot
func (v Vec3T[T]) Dot(other Vec3T[T]) T
Vec3T.Equals
func (v Vec3T[T]) Equals(other Vec3T[T]) bool
Vec3T.Height
func (v Vec3T[T]) Height() T
Vec3T.Inverse
func (v Vec3T[T]) Inverse() Vec3T[T]
Vec3T.InverseAssign
func (v *Vec3T[T]) InverseAssign()
Vec3T.IsInf
func (v Vec3T[T]) IsInf(sign int) bool
Vec3T.IsNaN
func (v Vec3T[T]) IsNaN() bool
Vec3T.IsZero
func (v Vec3T[T]) IsZero() bool
Vec3T.LargestAxis
func (v Vec3T[T]) LargestAxis() T
Vec3T.LargestAxisDelta
func (v Vec3T[T]) LargestAxisDelta() T
Vec3T.Length
func (v Vec3T[T]) Length() T
Vec3T.LengthSquared
func (v Vec3T[T]) LengthSquared() T
Vec3T.LongestAxis
func (v Vec3T[T]) LongestAxis() int
Vec3T.LongestAxisValue
func (v Vec3T[T]) LongestAxisValue() T
Vec3T.Multiply
func (v Vec3T[T]) Multiply(other Vec3T[T]) Vec3T[T]
Vec3T.MultiplyAssign
func (v *Vec3T[T]) MultiplyAssign(other Vec3T[T])
Vec3T.MultiplyMat3
func (v Vec3T[T]) MultiplyMat3(rhs Mat3) Vec3T[T]
Vec3T.Negative
func (v Vec3T[T]) Negative() Vec3T[T]
Vec3T.NegativeAssign
func (v *Vec3T[T]) NegativeAssign()
Vec3T.Normal
func (v Vec3T[T]) Normal() Vec3T[T]
Vec3T.Normalize
func (v *Vec3T[T]) Normalize()
Vec3T.Orthogonal
func (v Vec3T[T]) Orthogonal() Vec3T[T]
Vec3T.PX
func (v *Vec3T[T]) PX() *T
Vec3T.PY
func (v *Vec3T[T]) PY() *T
Vec3T.PZ
func (v *Vec3T[T]) PZ() *T
Vec3T.Scale
func (v Vec3T[T]) Scale(scalar T) Vec3T[T]
Vec3T.ScaleAssign
func (v *Vec3T[T]) ScaleAssign(scalar T)
Vec3T.ScaleX
func (v *Vec3T[T]) ScaleX(s T)
Vec3T.ScaleY
func (v *Vec3T[T]) ScaleY(s T)
Vec3T.ScaleZ
func (v *Vec3T[T]) ScaleZ(s T)
Vec3T.SetX
func (v *Vec3T[T]) SetX(x T)
Vec3T.SetY
func (v *Vec3T[T]) SetY(y T)
Vec3T.SetZ
func (v *Vec3T[T]) SetZ(z T)
Vec3T.Shrink
func (v Vec3T[T]) Shrink(scalar T) Vec3T[T]
Vec3T.ShrinkAssign
func (v *Vec3T[T]) ShrinkAssign(scalar T)
Vec3T.SignedAngle
func (v Vec3T[T]) SignedAngle(other Vec3T[T], axis Vec3T[T]) T
SignedAngle returns the signed angle (in radians) from v to other around the
given axis. The sign is positive for counterclockwise rotation when looking
along the axis direction. Assumes non-zero vectors; returns 0 if v or other
is zero-length or they are equal. For best precision, normalize v, other,
and axis before calling if they aren't already.
Vec3T.SquareDistance
func (v Vec3T[T]) SquareDistance(b Vec3T[T]) T
Vec3T.String
func (v Vec3T[T]) String() string
Vec3T.Subtract
func (v Vec3T[T]) Subtract(other Vec3T[T]) Vec3T[T]
Vec3T.SubtractAssign
func (v *Vec3T[T]) SubtractAssign(other Vec3T[T])
Vec3T.Width
func (v Vec3T[T]) Width() T
Vec3T.X
Vec3T.XY
func (v Vec3T[T]) XY() Vec2
Vec3T.XYZ
func (v Vec3T[T]) XYZ() (T, T, T)
Vec3T.XZ
func (v Vec3T[T]) XZ() Vec2
Vec3T.Y
Vec3T.Z
Vec3i
[3]int32
Vec3i.Depth
func (v Vec3i) Depth() int32
Vec3i.Height
func (v Vec3i) Height() int32
Vec3i.SetDepth
func (v *Vec3i) SetDepth(depth int32)
Vec3i.SetHeight
func (v *Vec3i) SetHeight(height int32)
Vec3i.SetWidth
func (v *Vec3i) SetWidth(width int32)
Vec3i.SetX
func (v *Vec3i) SetX(x int32)
Vec3i.SetY
func (v *Vec3i) SetY(y int32)
Vec3i.SetZ
func (v *Vec3i) SetZ(z int32)
Vec3i.Width
func (v Vec3i) Width() int32
Vec3i.X
Vec3i.Y
Vec3i.Z
Vec4
Vec4T[Float]
Mat4MultiplyVec4
func Mat4MultiplyVec4(a Mat4, b Vec4) Vec4
NewVec4[T1, T2, T3, T4 tNumber]
func NewVec4[T1, T2, T3, T4 tNumber](x T1, y T2, z T3, w T4) Vec4
Vec4Area[T tNumber]
func Vec4Area[T tNumber](xa, ya, xb, yb T) Vec4
Vec4FromArray[T tNumber]
func Vec4FromArray[T tNumber](a [4]T) Vec4
Vec4FromSlice[T tNumber]
func Vec4FromSlice[T tNumber](a []T) Vec4
Vec4FromString
func Vec4FromString(str string) Vec4
Vec4Half
Vec4Largest
Vec4MultiplyMat4
func Vec4MultiplyMat4(v Vec4, m Mat4) Vec4
Vec4One
Vec4Zero
Vec4T
[4]T
type Vec4T[T tNumber] [4]T
Vec4Lerp[T tNumber]
func Vec4Lerp[T tNumber](from, to Vec4T[T], t T) Vec4T[T]
Vec4Max[T tNumber]
func Vec4Max[T tNumber](a, b Vec4T[T]) Vec4T[T]
Vec4MaxAbs[T tNumber]
func Vec4MaxAbs[T tNumber](a, b Vec4T[T]) Vec4T[T]
Vec4Min[T tNumber]
func Vec4Min[T tNumber](a, b Vec4T[T]) Vec4T[T]
Vec4MinAbs[T tNumber]
func Vec4MinAbs[T tNumber](a, b Vec4T[T]) Vec4T[T]
Vec4T.Abs
func (v Vec4T[T]) Abs() Vec4T[T]
Vec4T.Add
func (v Vec4T[T]) Add(other Vec4T[T]) Vec4T[T]
Vec4T.AddAssign
func (v *Vec4T[T]) AddAssign(other Vec4T[T])
Vec4T.Angle
func (v Vec4T[T]) Angle(other Vec4T[T]) T
Vec4T.AreaContains
func (v Vec4T[T]) AreaContains(x, y Float) bool
Vec4T.AsVec3
func (v Vec4T[T]) AsVec3() Vec3
Vec4T.AsVec4i
func (v Vec4T[T]) AsVec4i() Vec4i
Vec4T.Bottom
func (v Vec4T[T]) Bottom() T
Vec4T.BoxContains
func (v Vec4T[T]) BoxContains(x, y Float) bool
Vec4T.Distance
func (v Vec4T[T]) Distance(other Vec4T[T]) T
Vec4T.Divide
func (v Vec4T[T]) Divide(other Vec4T[T]) Vec4T[T]
Vec4T.DivideAssign
func (v *Vec4T[T]) DivideAssign(other Vec4T[T])
Vec4T.Equals
func (v Vec4T[T]) Equals(other Vec4T[T]) bool
Vec4T.Height
func (v Vec4T[T]) Height() T
Vec4T.Horizontal
func (v Vec4T[T]) Horizontal() T
Vec4T.Inverse
func (v *Vec4T[T]) Inverse()
Vec4T.LargestAxis
func (v Vec4T[T]) LargestAxis() T
Vec4T.LargestAxisDelta
func (v Vec4T[T]) LargestAxisDelta() T
Vec4T.Left
func (v Vec4T[T]) Left() T
Vec4T.Length
func (v Vec4T[T]) Length() T
Vec4T.Multiply
func (v Vec4T[T]) Multiply(other Vec4T[T]) Vec4T[T]
Vec4T.MultiplyAssign
func (v *Vec4T[T]) MultiplyAssign(other Vec4T[T])
Vec4T.Negative
func (v Vec4T[T]) Negative() Vec4T[T]
Vec4T.Normal
func (v Vec4T[T]) Normal() Vec4T[T]
Vec4T.Normalize
func (v *Vec4T[T]) Normalize()
Vec4T.PW
func (v *Vec4T[T]) PW() *T
Vec4T.PX
func (v *Vec4T[T]) PX() *T
Vec4T.PY
func (v *Vec4T[T]) PY() *T
Vec4T.PZ
func (v *Vec4T[T]) PZ() *T
Vec4T.Right
func (v Vec4T[T]) Right() T
Vec4T.Scale
func (v Vec4T[T]) Scale(scalar T) Vec4T[T]
Vec4T.ScaleAssign
func (v *Vec4T[T]) ScaleAssign(scalar T)
Vec4T.ScreenAreaContains
func (v Vec4T[T]) ScreenAreaContains(x, y Float) bool
Vec4T.SetBottom
func (v *Vec4T[T]) SetBottom(w T)
Vec4T.SetHeight
func (v *Vec4T[T]) SetHeight(w T)
Vec4T.SetLeft
func (v *Vec4T[T]) SetLeft(x T)
Vec4T.SetRight
func (v *Vec4T[T]) SetRight(z T)
Vec4T.SetTop
func (v *Vec4T[T]) SetTop(y T)
Vec4T.SetW
func (v *Vec4T[T]) SetW(w T)
Vec4T.SetWidth
func (v *Vec4T[T]) SetWidth(z T)
Vec4T.SetX
func (v *Vec4T[T]) SetX(x T)
Vec4T.SetY
func (v *Vec4T[T]) SetY(y T)
Vec4T.SetZ
func (v *Vec4T[T]) SetZ(z T)
Vec4T.Shrink
func (v Vec4T[T]) Shrink(scalar T) Vec4T[T]
Vec4T.ShrinkAssign
func (v *Vec4T[T]) ShrinkAssign(scalar T)
Vec4T.String
func (v Vec4T[T]) String() string
Vec4T.Subtract
func (v Vec4T[T]) Subtract(other Vec4T[T]) Vec4T[T]
Vec4T.SubtractAssign
func (v *Vec4T[T]) SubtractAssign(other Vec4T[T])
Vec4T.Top
func (v Vec4T[T]) Top() T
Vec4T.Vertical
func (v Vec4T[T]) Vertical() T
Vec4T.W
Vec4T.Width
func (v Vec4T[T]) Width() T
Vec4T.X
Vec4T.XYZW
func (v Vec4T[T]) XYZW() (T, T, T, T)
Vec4T.Y
Vec4T.Z
Vec4i
[4]int32
Vec4i.Height
func (v Vec4i) Height() int32
Vec4i.W
Vec4i.Width
func (v Vec4i) Width() int32
Vec4i.X
Vec4i.Y
Vec4i.Z
VectorComponent
int
type VectorComponent = int
const (
Vx VectorComponent = iota
Vy
Vz
Vw
)