本文整理汇总了C++中ParticleEmitter::LoadFromYaml方法的典型用法代码示例。如果您正苦于以下问题:C++ ParticleEmitter::LoadFromYaml方法的具体用法?C++ ParticleEmitter::LoadFromYaml怎么用?C++ ParticleEmitter::LoadFromYaml使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ParticleEmitter
的用法示例。
在下文中一共展示了ParticleEmitter::LoadFromYaml方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Execute
void CommandLoadInnerEmitterFromYaml::Execute()
{
BaseParticleEditorNode* selectedNode = ParticlesEditorController::Instance()->GetSelectedNode();
InnerEmitterParticleEditorNode* innerEmitterNode = dynamic_cast<InnerEmitterParticleEditorNode*>(selectedNode);
if (!innerEmitterNode || !innerEmitterNode->GetInnerEmitter() ||!innerEmitterNode->GetParticleLayer())
{
return;
}
QString projectPath = QString(EditorSettings::Instance()->GetParticlesConfigsPath().GetAbsolutePathname().c_str());
QString filePath = QFileDialog::getOpenFileName(NULL, QString("Open Particle Emitter Yaml file"),
projectPath, QString("YAML File (*.yaml)"));
if (filePath.isEmpty())
{
return;
}
ParticleEmitter* innerEmitter = innerEmitterNode->GetInnerEmitter();
innerEmitter->LoadFromYaml(filePath.toStdString());
// No additional NULL check is needed here - already performed at the beginning.
QFileInfo fileInfo(filePath);
ParticleLayer* innerEmitterLayer = innerEmitterNode->GetParticleLayer();
innerEmitterLayer->innerEmitterPath = FilePath(fileInfo.path().toStdString(), fileInfo.fileName().toStdString());
// Perform the validation of the Yaml file loaded.
String validationMessage;
if (ParticlesEditorSceneDataHelper::ValidateParticleEmitter(innerEmitter, validationMessage) == false)
{
ShowErrorDialog(validationMessage);
}
QtMainWindowHandler::Instance()->RefreshSceneGraph();
}