Exemple #1
0
func (q *Quad) Apply(t glm.Mat4d) Quad {
	return Quad{
		q.Center, //t.Mul4x1(q.Center),
		t.Mul4x1(q.Normal),
		t.Mul4x1(q.PlaneV),
		q.Scale, //t.Mul4x1(q.Scale),
	}
}
Exemple #2
0
func (p *Player) Transform(m glm.Mat4d) {
	p.Position = m.Mul4x1(p.Position)
	p.Velocity = m.Mul4x1(p.Velocity)
	r := gtk.RotationComponent(m)
	// fmt.Println("r",r)
	q := gtk.Quaternion(r)
	// fmt.Println("q", q)
	p.Orientation = q.Mul(p.Orientation)
	p.OrientationH = q.Mul(p.OrientationH)
}
Exemple #3
0
func RotationComponent(m glm.Mat4d) glm.Mat3d {
	m2 := glm.Ident3d()
	j := 0
	for i := 0; i < 3; i++ {
		v := glm.Vec4d{}
		v[i] = 1
		vt := m.Mul4x1(v)
		for k := 0; k < 3; k++ {
			m2[j] = vt[k]
			j++
		}
	}
	return m2
}