rebuild method
Rebuilds the entire tree from particle data
Optimization Note: More efficient than clearing and reinserting when particle set hasn't changed significantly
Implementation
void rebuild(List<dynamic> particles, List<int> visibleParticles) {
buildFromParticles(particles, visibleParticles);
}