quaternion

package
v0.22.2 Latest Latest
Warning

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

Go to latest
Published: Feb 9, 2025 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type FromEulerAnglesNode added in v0.22.2

type FromEulerAnglesNode = nodes.Struct[Quaternion, FromEulerAnglesNodeData]

From Euler Angles ==========================================================

type FromEulerAnglesNodeData added in v0.22.2

type FromEulerAnglesNodeData struct {
	Angles nodes.NodeOutput[vector3.Float64]
}

func (FromEulerAnglesNodeData) Process added in v0.22.2

func (cn FromEulerAnglesNodeData) Process() (Quaternion, error)

type FromThetaArrayNode added in v0.22.2

type FromThetaArrayNode = nodes.Struct[[]Quaternion, FromThetaArrayNodeData]

type FromThetaArrayNodeData added in v0.22.2

type FromThetaArrayNodeData struct {
	Direction nodes.NodeOutput[[]vector3.Float64]
	Theta     nodes.NodeOutput[[]float64]
}

func (FromThetaArrayNodeData) Process added in v0.22.2

func (snd FromThetaArrayNodeData) Process() ([]Quaternion, error)

type FromThetaNode added in v0.22.2

type FromThetaNode = nodes.Struct[Quaternion, FromThetaNodeData]

type FromThetaNodeData added in v0.22.2

type FromThetaNodeData struct {
	Theta     nodes.NodeOutput[float64]
	Direction nodes.NodeOutput[vector3.Float64]
}

func (FromThetaNodeData) Process added in v0.22.2

func (cn FromThetaNodeData) Process() (Quaternion, error)

type NewNode added in v0.22.2

type NewNode = nodes.Struct[Quaternion, NewNodeData]

type NewNodeData added in v0.22.2

func (NewNodeData) Process added in v0.22.2

func (cn NewNodeData) Process() (Quaternion, error)

type Quaternion

type Quaternion struct {
	// contains filtered or unexported fields
}

Quaternion is a 4 component imaginary number thingy for rotating 3D meshes.

func FromMatrix added in v0.22.2

func FromMatrix(k mat.Matrix4x4) Quaternion

func FromTheta

func FromTheta(theta float64, v vector3.Float64) Quaternion

UnitQuaternionFromTheta takes a vector and angle and builds a unit quaternion in the form (cos(theta/2.0), sin(theta/2.0))

Resources Used:

https://www.youtube.com/watch?v=mHVwd8gYLnI
https://en.wikipedia.org/wiki/Quaternions_and_spatial_rotation

func Identity added in v0.17.0

func Identity() Quaternion

func New

NewQuaternion creates a quaternion

func Zero

func Zero() Quaternion

Zero returns a quaternion with 0 for all it's components

func (Quaternion) Dir

func (q Quaternion) Dir() vector3.Float64

func (Quaternion) Normalize

func (q Quaternion) Normalize() Quaternion

func (Quaternion) Rotate

Rotate takes a given vector and rotates it with by this quaternion.

Resources Used:

https://gamedev.stackexchange.com/questions/28395

func (Quaternion) RotateArray

func (q Quaternion) RotateArray(arr []vector3.Float64) []vector3.Float64

func (Quaternion) ToArr added in v0.18.0

func (q Quaternion) ToArr() [4]float64

func (Quaternion) Vector4 added in v0.18.0

func (q Quaternion) Vector4() vector4.Float64

func (Quaternion) W

func (q Quaternion) W() float64

Jump to

Keyboard shortcuts

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