Exemple #1
0
func (q *quad) recalculate() {
	var (
		pos  vect.V
		mass float64
	)
	for _, n := range q.children {
		if n == nil {
			continue
		}
		pos = pos.Add(n.Position().Mul(n.Mass()))
		mass += n.Mass()
	}
	q.position = pos.Div(mass)
	q.mass = mass
}