Documentation
¶
Index ¶
- type FromEulerAnglesNode
- type FromEulerAnglesNodeData
- type FromThetaArrayNode
- type FromThetaArrayNodeData
- type FromThetaNode
- type FromThetaNodeData
- type NewNode
- type NewNodeData
- type Quaternion
- func FromEulerAngles(angles vector3.Float64) Quaternion
- func FromMatrix(k mat.Matrix4x4) Quaternion
- func FromTheta(theta float64, v vector3.Float64) Quaternion
- func Identity() Quaternion
- func New(v vector3.Float64, w float64) Quaternion
- func RotationTo(from, to vector3.Float64) Quaternion
- func Zero() Quaternion
- func (q Quaternion) Dir() vector3.Float64
- func (q Quaternion) Multiply(other Quaternion) Quaternion
- func (q Quaternion) Normalize() Quaternion
- func (q Quaternion) Rotate(v vector3.Float64) vector3.Float64
- func (q Quaternion) RotateArray(arr []vector3.Float64) []vector3.Float64
- func (q Quaternion) ToArr() [4]float64
- func (q Quaternion) ToEulerAngles() vector3.Float64
- func (q Quaternion) Vector4() vector4.Float64
- func (q Quaternion) W() float64
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
type NewNodeData struct { X nodes.NodeOutput[float64] Y nodes.NodeOutput[float64] Z nodes.NodeOutput[float64] W nodes.NodeOutput[float64] }
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 FromEulerAngles ¶ added in v0.22.2
func FromEulerAngles(angles vector3.Float64) Quaternion
https://en.wikipedia.org/wiki/Conversion_between_quaternions_and_Euler_angles
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 RotationTo ¶
func RotationTo(from, to vector3.Float64) Quaternion
func (Quaternion) Dir ¶
func (q Quaternion) Dir() vector3.Float64
func (Quaternion) Multiply ¶
func (q Quaternion) Multiply(other Quaternion) Quaternion
func (Quaternion) Normalize ¶
func (q Quaternion) Normalize() Quaternion
func (Quaternion) Rotate ¶
func (q Quaternion) Rotate(v vector3.Float64) vector3.Float64
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) ToEulerAngles ¶ added in v0.22.2
func (q Quaternion) ToEulerAngles() vector3.Float64
https://en.wikipedia.org/wiki/Conversion_between_quaternions_and_Euler_angles
func (Quaternion) Vector4 ¶ added in v0.18.0
func (q Quaternion) Vector4() vector4.Float64
func (Quaternion) W ¶
func (q Quaternion) W() float64
Click to show internal directories.
Click to hide internal directories.