func (vr *ViewRegions) Cull(viewport primitives.Region) { nr := []primitives.Region{} for _, r := range vr.Regions.Regions() { if viewport.Intersects(r) { nr = append(nr, viewport.Intersection(r)) } } vr.Regions.Clear() vr.Regions.AddAll(nr) }