func (circle *CircleShape) Moment(mass float32) vect.Float { return (vect.Float(mass) * (0.5 * (circle.Radius * circle.Radius))) + vect.LengthSqr(circle.Position) }
func (segment *SegmentShape) Moment(mass float32) vect.Float { offset := vect.Mult(vect.Add(segment.A, segment.B), 0.5) return vect.Float(mass) * (vect.DistSqr(segment.B, segment.A)/12.0 + vect.LengthSqr(offset)) }