public void Update(Particle particle, bool first = false) { var oldSector = particle.Sector; var newSector = getSector(particle); if (oldSector != newSector) { if (!first) { oldSector.Leave(particle); } newSector.Enter(particle); } var wasVisible = particle.Visible; if (particle.CheckVisibility() && !wasVisible) { VisibleParticles.Add(particle); } particle.Sector = newSector; }