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);
}