ParticleDescription * ParticleEditor::GetSelectedEmitterState()
 {
   ParticleEmitter* emitter = GetSelectedEmitter();
   auto& states = emitter->GetStates();
   if(state_index_ < states.size())
   {
     return & states[state_index_];
   }
   return nullptr;
 }
 void ParticleEditor::SelectEmitterState(size_t index)
 {
   if(state_index_ == index)
   {
     return;
   }
   ParticleEmitter* emitter = GetSelectedEmitter();
   state_index_ = index;
   state_index_ = clamp(state_index_, (size_t) 0, emitter->GetStates().size() - 1);
   refresh_state_ui();
 }