void CommandRemoveParticleEmitterLayer::Execute() { // Need to know selected Layer Node to remove it. BaseParticleEditorNode* selectedNode = ParticlesEditorController::Instance()->GetSelectedNode(); LayerParticleEditorNode* layerNode = dynamic_cast<LayerParticleEditorNode*>(selectedNode); if (!layerNode || !layerNode->GetRootNode()) { return; } // Mark the "parent" Emitter Node to selection. layerNode->GetEmitterEditorNode()->SetMarkedToSelection(true); ParticleEffectComponent * effectComponent = layerNode->GetParticleEffectComponent(); if (effectComponent) { effectComponent->Stop(); } ParticlesEditorController::Instance()->RemoveParticleLayerNode(layerNode); if (effectComponent) { effectComponent->Restart(); } // Update the scene graph. QtMainWindowHandler::Instance()->RefreshSceneGraph(); }
void CommandAddParticleEmitterForce::Execute() { // Need to know selected Layer Node to add the Force to. BaseParticleEditorNode* selectedNode = ParticlesEditorController::Instance()->GetSelectedNode(); LayerParticleEditorNode* layerNode = dynamic_cast<LayerParticleEditorNode*>(selectedNode); if (!layerNode || !layerNode->GetRootNode()) { return; } ParticleEffectComponent * effectComponent = layerNode->GetParticleEffectComponent(); DVASSERT(effectComponent); effectComponent->Stop(); ForceParticleEditorNode* forceNode = ParticlesEditorController::Instance()->AddParticleForceToNode(layerNode); if (forceNode) { forceNode->SetMarkedToSelection(true); } effectComponent->Restart(); // Update the scene graph. QtMainWindowHandler::Instance()->RefreshSceneGraph(); }