maths

package
v0.0.0-...-18e7427 Latest Latest
Warning

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

Go to latest
Published: Dec 10, 2023 License: MIT Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var EnumFacingValues = []Facing{Down, Up, North, South, West, East}

Functions

func Lerp

func Lerp[T constraints.Integer | constraints.Float](x, y, z T) T

func RotateLeft

func RotateLeft(x int64, k uint) int64

func ToDegrees

func ToDegrees(angle float64) float64

func ToRadians

func ToRadians(angle float64) float64

func ToSeed

func ToSeed(x, y, z int32) int64

Types

type AxisAlignedBB

type AxisAlignedBB struct {
	MinX, MinY, MinZ,
	MaxX, MaxY, MaxZ float64
}

func (*AxisAlignedBB) Bottom

func (a *AxisAlignedBB) Bottom() Vec3d

func (*AxisAlignedBB) Center

func (a *AxisAlignedBB) Center() Vec3d

func (*AxisAlignedBB) Contains

func (a *AxisAlignedBB) Contains(x, y, z float64) bool

func (*AxisAlignedBB) Contract

func (a *AxisAlignedBB) Contract(x, y, z float64)

func (*AxisAlignedBB) Deflate

func (a *AxisAlignedBB) Deflate(x, y, z float64)

func (*AxisAlignedBB) Expand

func (a *AxisAlignedBB) Expand(x, y, z float64)

func (*AxisAlignedBB) Inflate

func (a *AxisAlignedBB) Inflate(x, y, z float64)

func (*AxisAlignedBB) Intersect

func (a *AxisAlignedBB) Intersect(other AxisAlignedBB)

func (*AxisAlignedBB) IntersectsWith

func (a *AxisAlignedBB) IntersectsWith(other AxisAlignedBB) bool

func (*AxisAlignedBB) MinMax

func (a *AxisAlignedBB) MinMax(other AxisAlignedBB)

func (*AxisAlignedBB) Move

func (a *AxisAlignedBB) Move(x, y, z float64)

func (*AxisAlignedBB) Top

func (a *AxisAlignedBB) Top() Vec3d

func (*AxisAlignedBB) Unexpand

func (a *AxisAlignedBB) Unexpand(x, y, z float64)

type Facing

type Facing int
const (
	Down  Facing = 0
	Up    Facing = 1
	North Facing = 2
	South Facing = 3
	West  Facing = 4
	East  Facing = 5
)

func GetClosestFacing

func GetClosestFacing(eyePos, blockPos Vec3d) Facing

func GetVisibleSides

func GetVisibleSides(eyePos, blockPos Vec3d) []Facing

func (Facing) Opposite

func (f Facing) Opposite() Facing

func (Facing) Vec

func (f Facing) Vec() (v Vec3d)

type RayTraceResult

type RayTraceResult struct {
	Position Vec3d
}

type Vec2

type Vec2[T constraints.Integer | constraints.Float] struct {
	X, Y T // Yaw, Pitch
}

func (*Vec2[T]) Add

func (v *Vec2[T]) Add(v2 Vec2[T])

func (*Vec2[T]) AddScalar

func (v *Vec2[T]) AddScalar(s T)

func (*Vec2[T]) DistanceTo

func (v *Vec2[T]) DistanceTo(v2 Vec2[T]) T

func (*Vec2[T]) Div

func (v *Vec2[T]) Div(v2 Vec2[T])

func (*Vec2[T]) DivScalar

func (v *Vec2[T]) DivScalar(s T)

func (*Vec2[T]) Mul

func (v *Vec2[T]) Mul(v2 Vec2[T])

func (*Vec2[T]) MulScalar

func (v *Vec2[T]) MulScalar(s T)

func (*Vec2[T]) Set

func (v *Vec2[T]) Set(v2 Vec2[T])

func (*Vec2[T]) Sub

func (v *Vec2[T]) Sub(v2 Vec2[T])

func (*Vec2[T]) SubScalar

func (v *Vec2[T]) SubScalar(s T)

type Vec2b

type Vec2b = Vec2[int8]

type Vec2d

type Vec2d = Vec2[float64]

type Vec2f

type Vec2f = Vec2[float32]

type Vec2i

type Vec2i = Vec2[int]

type Vec2s

type Vec2s = Vec2[int16]

type Vec3

type Vec3[T constraints.Signed | constraints.Float] struct {
	X, Y, Z T
}

func (*Vec3[T]) Add

func (v *Vec3[T]) Add(vec3 Vec3[T])

func (*Vec3[T]) AddScalar

func (v *Vec3[T]) AddScalar(x, y, z T)

func (*Vec3[T]) DistanceTo

func (v *Vec3[T]) DistanceTo(vec3 Vec3[T]) T

func (*Vec3[T]) Div

func (v *Vec3[T]) Div(vec3 Vec3[T])

func (*Vec3[T]) DivScalar

func (v *Vec3[T]) DivScalar(x, y, z T)

func (*Vec3[T]) Floor

func (v *Vec3[T]) Floor()

func (*Vec3[T]) HorizontalDistance

func (v *Vec3[T]) HorizontalDistance() T

func (*Vec3[T]) HorizontalDistanceSquared

func (v *Vec3[T]) HorizontalDistanceSquared() T

func (*Vec3[T]) IsValid

func (v *Vec3[T]) IsValid() bool

func (*Vec3[T]) IsZero

func (v *Vec3[T]) IsZero() bool

func (*Vec3[T]) Length

func (v *Vec3[T]) Length() T

func (*Vec3[T]) LengthSquared

func (v *Vec3[T]) LengthSquared() T

func (*Vec3[T]) Lerp

func (v *Vec3[T]) Lerp(vec3 Vec3[T], t T)

func (*Vec3[T]) Mul

func (v *Vec3[T]) Mul(vec3 Vec3[T])

func (*Vec3[T]) MulScalar

func (v *Vec3[T]) MulScalar(x, y, z T)

func (*Vec3[T]) Nil

func (v *Vec3[T]) Nil() bool

func (*Vec3[T]) Normalize

func (v *Vec3[T]) Normalize()

func (*Vec3[T]) Reverse

func (v *Vec3[T]) Reverse()

func (*Vec3[T]) Scale

func (v *Vec3[T]) Scale(scale T)

func (*Vec3[T]) Set

func (v *Vec3[T]) Set(vec3 Vec3[T])

func (*Vec3[T]) SetScalar

func (v *Vec3[T]) SetScalar(x, y, z T)

func (*Vec3[T]) Spread

func (v *Vec3[T]) Spread() (T, T, T)

func (*Vec3[T]) Sub

func (v *Vec3[T]) Sub(vec3 Vec3[T])

func (*Vec3[T]) SubScalar

func (v *Vec3[T]) SubScalar(x, y, z T)

func (*Vec3[T]) ToChunkPos

func (v *Vec3[T]) ToChunkPos() Vec2i

type Vec3b

type Vec3b = Vec3[int8]

type Vec3d

type Vec3d = Vec3[float64]

func GetVectorFromRotation

func GetVectorFromRotation(rotation Vec2d) Vec3d

func ProjectPosition

func ProjectPosition(rotation Vec2d, distance float64, offsetY float64) Vec3d

func RayTraceBlocks

func RayTraceBlocks(start, end Vec3d) []Vec3d

type Vec3f

type Vec3f = Vec3[float32]

type Vec3i

type Vec3i = Vec3[int]

type Vec3s

type Vec3s = Vec3[int16]

Jump to

Keyboard shortcuts

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