Documentation
¶
Index ¶
- type Acceleration
- type Mass
- type Orientation
- type Position
- type Quaternion
- func (q *Quaternion) Add(q2 *Quaternion) *Quaternion
- func (q *Quaternion) Conjugate() *Quaternion
- func (q *Quaternion) Integrate(omega Vector3, dt float64) *Quaternion
- func (q *Quaternion) IsIdentity() bool
- func (q *Quaternion) Magnitude() float64
- func (q *Quaternion) Multiply(q2 *Quaternion) *Quaternion
- func (q *Quaternion) Normalize() *Quaternion
- func (q *Quaternion) RotateVector(v *Vector3) *Vector3
- func (q *Quaternion) Scale(scalar float64) *Quaternion
- func (q *Quaternion) Subtract(q2 *Quaternion) *Quaternion
- type Vector3
- func (v Vector3) Add(other Vector3) Vector3
- func (v Vector3) DivideScalar(scalar float64) Vector3
- func (v Vector3) Magnitude() float64
- func (v Vector3) MultiplyScalar(scalar float64) Vector3
- func (v Vector3) Normalize() Vector3
- func (v Vector3) Round(precision int) Vector3
- func (v Vector3) String() string
- func (v Vector3) Subtract(other Vector3) Vector3
- type Velocity
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Acceleration ¶
type Acceleration struct {
ecs.BasicEntity
Vec Vector3
}
Acceleration represents a 3D acceleration as a vector
type Orientation ¶
type Orientation struct {
ecs.BasicEntity
Quat Quaternion
}
Orientation represents a 3D orientation
type Position ¶
type Position struct {
ecs.BasicEntity
Vec Vector3
}
Position represents a 3D position
type Quaternion ¶
type Quaternion struct {
X, Y, Z, W float64
}
Quaternion represents a 3D quaternion
func IdentityQuaternion ¶
func IdentityQuaternion() *Quaternion
IdentityQuaternion returns the identity quaternion
func NewQuaternion ¶
func NewQuaternion(x, y, z, w float64) *Quaternion
NewQuaternion creates a new Quaternion
func (*Quaternion) Add ¶
func (q *Quaternion) Add(q2 *Quaternion) *Quaternion
Add adds two quaternions together
func (*Quaternion) Conjugate ¶
func (q *Quaternion) Conjugate() *Quaternion
Conjugate returns the conjugate of the quaternion
func (*Quaternion) Integrate ¶
func (q *Quaternion) Integrate(omega Vector3, dt float64) *Quaternion
Integrate increments q by the angular velocity (radians/sec) over dt
func (*Quaternion) IsIdentity ¶
func (q *Quaternion) IsIdentity() bool
IsIdentity checks if the quaternion is the identity quaternion
func (*Quaternion) Magnitude ¶
func (q *Quaternion) Magnitude() float64
Magnitude returns the sum of squares of the quaternion's components
func (*Quaternion) Multiply ¶
func (q *Quaternion) Multiply(q2 *Quaternion) *Quaternion
Multiply multiplies two quaternions together
func (*Quaternion) Normalize ¶
func (q *Quaternion) Normalize() *Quaternion
Normalize normalizes a quaternion
func (*Quaternion) RotateVector ¶
func (q *Quaternion) RotateVector(v *Vector3) *Vector3
RotateVector rotates a vector v by the quaternion q. Ensures q is normalized. Returns original v if q or v is invalid, or if q normalizes to identity.
func (*Quaternion) Scale ¶
func (q *Quaternion) Scale(scalar float64) *Quaternion
Scale scales a quaternion by a scalar
func (*Quaternion) Subtract ¶
func (q *Quaternion) Subtract(q2 *Quaternion) *Quaternion
Subtract subtracts one quaternion from another
type Vector3 ¶
type Vector3 struct {
X, Y, Z float64
}
Vector3 represents a 3D vector
func (Vector3) DivideScalar ¶
DivideScalar returns the vector divided by a scalar INFO: Ensure the scalar is not zero to avoid division by zero.
func (Vector3) Magnitude ¶
Magnitude returns the length of the vector INFO: Calculating the magnitude as the Euclidean norm.
func (Vector3) MultiplyScalar ¶
MultiplyScalar returns the vector multiplied by a scalar INFO: Scaling the vector components by the given scalar.
func (Vector3) Normalize ¶
Normalize returns the unit vector in the same direction as v. Returns a zero vector if the magnitude is zero, near-zero, NaN, or Inf.
func (Vector3) Round ¶
Round returns the vector with each component rounded to the given precision INFO: Rounding the vector components to the supplied precision.
type Velocity ¶
type Velocity struct {
ecs.BasicEntity
Vec Vector3
}
Velocity represents a 3D velocity