math

package
v0.0.0-...-311b70d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 5, 2018 License: BSD-3-Clause Imports: 2 Imported by: 0

Documentation

Index

Constants

View Source
const MaxInt = int(MaxUint >> 1)
View Source
const MaxUint = ^uint(0)
View Source
const MinInt = -(MaxInt - 1)
View Source
const MinUint = 0
View Source
const Pi = float32(math.Pi)
View Source
const TwoPi = Pi * 2.0

Variables

View Source
var MaxSize = Size{0x40000000, 0x40000000} // Picked to avoid integer overflows

Functions

func Absf

func Absf(v float32) float32

func Acosf

func Acosf(v float32) float32

func Asinf

func Asinf(v float32) float32

func Atanf

func Atanf(v float32) float32

func Clamp

func Clamp(x, min, max int) int

func Clampf

func Clampf(x, min, max float32) float32

func Cosf

func Cosf(v float32) float32

func D2R

func D2R(r float32) float32

func Lerp

func Lerp(a, b int, s float32) int

func Lerpf

func Lerpf(a, b float32, s float32) float32

func Max

func Max(values ...int) int

func Maxf

func Maxf(values ...float32) float32

func Min

func Min(values ...int) int

func Minf

func Minf(values ...float32) float32

func Mod

func Mod(a, b int) int

func Powf

func Powf(v, e float32) float32

func R2D

func R2D(r float32) float32

func Ramp

func Ramp(s float32, a, b float32) float32

func RampSat

func RampSat(s float32, a, b float32) float32

func Round

func Round(v float32) int

func Saturate

func Saturate(x float32) float32

func Sinf

func Sinf(v float32) float32

func SmoothStep

func SmoothStep(s float32, a, b float32) float32

func Sqrtf

func Sqrtf(v float32) float32

func Tanf

func Tanf(v float32) float32

Types

type Mat2

type Mat2 [4]float32

╭ ╮ │ M₀ M₁ │ │ M₂ M₃ │ ╰ ╯

var Mat2Ident Mat2 = CreateMat2(1, 0, 0, 1)

func CreateMat2

func CreateMat2(r0c0, r0c1, r1c0, r1c1 float32) Mat2

func CreateMat2FromRows

func CreateMat2FromRows(r0, r1 Vec2) Mat2

╭ ╮ │ R₀ │ │ R₁ │ ╰ ╯

func DivM2S

func DivM2S(m Mat2, s float32) Mat2

func (Mat2) Invert

func (m Mat2) Invert() Mat2

func (Mat2) Row

func (m Mat2) Row(i int) Vec2

func (Mat2) Rows

func (m Mat2) Rows() (r0, r1 Vec2)

func (Mat2) String

func (m Mat2) String() string

func (Mat2) Transpose

func (m Mat2) Transpose() Mat2

type Mat3

type Mat3 [9]float32

A 3x3 matrix:

╭          ╮
│ M₀ M₁ M₂ │
│ M₃ M₄ M₅ │
│ M₆ M₇ M₈ │
╰          ╯
var Mat3Ident Mat3 = CreateMat3(1, 0, 0, 0, 1, 0, 0, 0, 1)

func CreateMat3

func CreateMat3(r0c0, r0c1, r0c2, r1c0, r1c1, r1c2, r2c0, r2c1, r2c2 float32) Mat3

func CreateMat3FromRows

func CreateMat3FromRows(r0, r1, r2 Vec3) Mat3

Build a 3x3 matrix from 3 row vectors

╭    ╮
│ R₀ │
│ R₁ │
│ R₂ │
╰    ╯

func CreateMat3PositionToBarycentric

func CreateMat3PositionToBarycentric(a, b, c Vec2) Mat3
   A
  ╱ ╲
 ╱___╲
B     C

[V₀, V₁, V₂] * M = [λ₀, λ₁, 1] λ₂ = 1 - (λ₀ + λ₁)

[V₀, V₁, V₂] = A • λ₀ + B • λ₁ + C • λ₂

A * M = (1, 0, 1) B * M = (0, 1, 1) C * M = (0, 0, 1)

func (Mat3) DivS

func (m Mat3) DivS(s float32) Mat3

func (Mat3) Invert

func (m Mat3) Invert() Mat3

func (Mat3) Row

func (m Mat3) Row(i int) Vec3

func (Mat3) Rows

func (m Mat3) Rows() (r0, r1, r2 Vec3)

func (Mat3) String

func (m Mat3) String() string

func (Mat3) Transpose

func (m Mat3) Transpose() Mat3

type Point

type Point struct {
	X, Y int
}
var ZeroPoint Point

func NewPoint

func NewPoint(X, Y int) Point

func (Point) Add

func (p Point) Add(o Point) Point

func (Point) AddX

func (p Point) AddX(o int) Point

func (Point) AddY

func (p Point) AddY(o int) Point

func (Point) Clamp

func (p Point) Clamp(min, max Point) Point

func (Point) Dot

func (p Point) Dot(o Point) int

func (Point) Len

func (p Point) Len() float32

func (Point) Max

func (p Point) Max(o Point) Point

func (Point) Min

func (p Point) Min(o Point) Point

func (Point) Neg

func (p Point) Neg() Point

func (Point) Remap

func (p Point) Remap(from, to Rect) Point

func (Point) Scale

func (p Point) Scale(s Vec2) Point

func (Point) ScaleS

func (p Point) ScaleS(s float32) Point

func (Point) ScaleX

func (p Point) ScaleX(s float32) Point

func (Point) ScaleY

func (p Point) ScaleY(s float32) Point

func (Point) Size

func (p Point) Size() Size

func (Point) SqrLen

func (p Point) SqrLen() int

func (Point) Sub

func (p Point) Sub(o Point) Point

func (Point) Vec2

func (p Point) Vec2() Vec2

func (Point) Vec3

func (p Point) Vec3(z float32) Vec3

func (Point) XY

func (p Point) XY() (x, y int)

type Rect

type Rect struct {
	Min, Max Point
}

func CreateRect

func CreateRect(minX, minY, maxX, maxY int) Rect

func (Rect) BC

func (r Rect) BC() Point

func (Rect) BL

func (r Rect) BL() Point

func (Rect) BR

func (r Rect) BR() Point

func (Rect) Canon

func (r Rect) Canon() Rect

func (Rect) ClampXY

func (r Rect) ClampXY(x, y int) (int, int)

func (Rect) Constrain

func (r Rect) Constrain(o Rect) Rect

func (Rect) Contains

func (r Rect) Contains(p Point) bool

func (Rect) Contract

func (r Rect) Contract(s Spacing) Rect

func (Rect) ContractI

func (r Rect) ContractI(s int) Rect

func (Rect) Expand

func (r Rect) Expand(s Spacing) Rect

func (Rect) ExpandI

func (r Rect) ExpandI(s int) Rect

func (Rect) Frac

func (r Rect) Frac(v Point) Vec2

func (Rect) H

func (r Rect) H() int

func (Rect) Intersect

func (r Rect) Intersect(o Rect) Rect

func (Rect) Lerp

func (r Rect) Lerp(v Vec2) Point

func (Rect) ML

func (r Rect) ML() Point

func (Rect) MR

func (r Rect) MR() Point

func (Rect) Mid

func (r Rect) Mid() Point

func (Rect) Offset

func (r Rect) Offset(p Point) Rect

func (Rect) OffsetX

func (r Rect) OffsetX(i int) Rect

func (Rect) OffsetY

func (r Rect) OffsetY(i int) Rect

func (Rect) Remap

func (r Rect) Remap(from, to Rect) Rect

func (Rect) ScaleAt

func (r Rect) ScaleAt(p Point, s Vec2) Rect

func (Rect) ScaleS

func (r Rect) ScaleS(s float32) Rect

func (Rect) Size

func (r Rect) Size() Size

func (Rect) TC

func (r Rect) TC() Point

func (Rect) TL

func (r Rect) TL() Point

func (Rect) TR

func (r Rect) TR() Point

func (Rect) Union

func (r Rect) Union(o Rect) Rect

func (Rect) W

func (r Rect) W() int

type Size

type Size struct {
	W, H int
}
var ZeroSize Size

func (Size) Add

func (s Size) Add(o Size) Size

func (Size) Area

func (s Size) Area() int

func (Size) CenteredRect

func (s Size) CenteredRect() Rect

func (Size) Clamp

func (s Size) Clamp(min, max Size) Size

func (Size) Contract

func (s Size) Contract(sp Spacing) Size

func (Size) EdgeAlignedFit

func (s Size) EdgeAlignedFit(outer Rect, edgePoint Point) Rect

func (Size) Expand

func (s Size) Expand(sp Spacing) Size

func (Size) Max

func (s Size) Max(o Size) Size

func (Size) Min

func (s Size) Min(o Size) Size

func (Size) Point

func (s Size) Point() Point

func (Size) Rect

func (s Size) Rect() Rect

func (Size) Scale

func (s Size) Scale(v Vec2) Size

func (Size) ScaleS

func (s Size) ScaleS(v float32) Size

func (Size) Sub

func (s Size) Sub(o Size) Size

func (Size) Vec2

func (s Size) Vec2() Vec2

func (Size) WH

func (s Size) WH() (w, h int)

type Spacing

type Spacing struct {
	L, T, R, B int
}
var ZeroSpacing Spacing

func CreateSpacing

func CreateSpacing(s int) Spacing

func (Spacing) Add

func (s Spacing) Add(o Spacing) Spacing

func (Spacing) H

func (s Spacing) H() int

func (Spacing) LT

func (s Spacing) LT() Point

func (Spacing) Max

func (s Spacing) Max(o Spacing) Spacing

func (Spacing) Min

func (s Spacing) Min(o Spacing) Spacing

func (Spacing) Size

func (s Spacing) Size() Size

func (Spacing) Sub

func (s Spacing) Sub(o Spacing) Spacing

func (Spacing) W

func (s Spacing) W() int

type Vec2

type Vec2 struct {
	X, Y float32
}

func MulVM2

func MulVM2(v Vec2, m Mat2) Vec2
╭       ╮
│ M₀ M₁ │

[V₀, V₁] ⨯ │ M₂ M₃ │ = [V₀ • M₀ + V₁ • M₂, V₀ • M₁ + V₁ • M₃]

╰       ╯

func (Vec2) Add

func (v Vec2) Add(o Vec2) Vec2

func (Vec2) Cross

func (v Vec2) Cross(o Vec2) float32

func (Vec2) Div

func (v Vec2) Div(o Vec2) Vec2

func (Vec2) DivS

func (v Vec2) DivS(s float32) Vec2

func (Vec2) Dot

func (v Vec2) Dot(o Vec2) float32

func (Vec2) Len

func (v Vec2) Len() float32

func (Vec2) Mul

func (v Vec2) Mul(o Vec2) Vec2

func (Vec2) MulS

func (v Vec2) MulS(s float32) Vec2

func (Vec2) Neg

func (v Vec2) Neg() Vec2

func (Vec2) Normalize

func (v Vec2) Normalize() Vec2

func (Vec2) Point

func (v Vec2) Point() Point

func (Vec2) SqrLen

func (v Vec2) SqrLen() float32

func (Vec2) Sub

func (v Vec2) Sub(o Vec2) Vec2

func (Vec2) Tangent

func (v Vec2) Tangent() Vec2

func (Vec2) Vec3

func (v Vec2) Vec3(z float32) Vec3

func (Vec2) Vec4

func (v Vec2) Vec4(z, w float32) Vec4

func (Vec2) XY

func (v Vec2) XY() (x, y float32)

func (Vec2) ZeroLength

func (v Vec2) ZeroLength() bool

type Vec3

type Vec3 struct {
	X, Y, Z float32
}

func (Vec3) Add

func (v Vec3) Add(o Vec3) Vec3

func (Vec3) Cross

func (v Vec3) Cross(o Vec3) Vec3

func (Vec3) Div

func (v Vec3) Div(o Vec3) Vec3

func (Vec3) DivS

func (v Vec3) DivS(s float32) Vec3

func (Vec3) Dot

func (v Vec3) Dot(o Vec3) float32

func (Vec3) Len

func (v Vec3) Len() float32

func (Vec3) Mul

func (v Vec3) Mul(o Vec3) Vec3

func (Vec3) MulM

func (v Vec3) MulM(m Mat3) Vec3
╭          ╮
│ M₀ M₁ M₂ │

[V₀, V₁, V₂] ⨯ │ M₃ M₄ M₅ │ = [R₀, R₁, R₂]

│ M₆ M₇ M₈ │
╰          ╯

R₀ = V₀ • M₀ + V₁ • M₃ + V₂ • M₆ R₁ = V₀ • M₁ + V₁ • M₄ + V₂ • M₇ R₂ = V₀ • M₂ + V₁ • M₅ + V₂ • M₈

func (Vec3) MulS

func (v Vec3) MulS(s float32) Vec3

func (Vec3) Neg

func (v Vec3) Neg() Vec3

func (Vec3) Normalize

func (v Vec3) Normalize() Vec3

func (Vec3) SqrLen

func (v Vec3) SqrLen() float32

func (Vec3) String

func (v Vec3) String() string

func (Vec3) Sub

func (v Vec3) Sub(o Vec3) Vec3

func (Vec3) XY

func (v Vec3) XY() Vec2

type Vec4

type Vec4 struct {
	X, Y, Z, W float32
}

func (Vec4) Add

func (v Vec4) Add(o Vec4) Vec4

func (Vec4) Div

func (v Vec4) Div(o Vec4) Vec4

func (Vec4) DivS

func (v Vec4) DivS(s float32) Vec4

func (Vec4) Dot

func (v Vec4) Dot(o Vec4) float32

func (Vec4) Len

func (v Vec4) Len() float32

func (Vec4) Mul

func (v Vec4) Mul(o Vec4) Vec4

func (Vec4) MulS

func (v Vec4) MulS(s float32) Vec4

func (Vec4) Neg

func (v Vec4) Neg() Vec4

func (Vec4) Normalize

func (v Vec4) Normalize() Vec4

func (Vec4) SqrLen

func (v Vec4) SqrLen() float32

func (Vec4) String

func (v Vec4) String() string

func (Vec4) Sub

func (v Vec4) Sub(o Vec4) Vec4

func (Vec4) XY

func (v Vec4) XY() Vec2

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL