Example #1
0
ezStatus ezToolsProject::Create()
{
  {
    ezOSFile ProjectFile;
    if (ProjectFile.Open(m_sProjectPath, ezFileMode::Write).Failed())
    {
      return ezStatus(ezFmt("Could not open/create the project file for writing: '{0}'", m_sProjectPath));
    }
    else
    {
      const char* szToken = "ezEditor Project File";

      ProjectFile.Write(szToken, ezStringUtils::GetStringElementCount(szToken) + 1);
      ProjectFile.Close();
    }
  }

  // Create default folders
  {
    CreateSubFolder("Scenes");
    CreateSubFolder("Prefabs");
  }

  ezToolsProjectEvent e;
  e.m_pProject = this;
  e.m_Type = ezToolsProjectEvent::Type::ProjectCreated;
  s_Events.Broadcast(e);

  return Open();
}
Example #2
0
  ezStatus Importer::ImportMesh(const char* szSceneFile, const char* szSubMesh, bool bSkinnedMesh,
                                ezSharedPtr<ezModelImporter::Scene>& outScene, ezModelImporter::Mesh*& outMesh)
  {
    ezBitflags<ImportFlags> importFlags = ImportFlags::Meshes;

    if (bSkinnedMesh)
      importFlags |= ImportFlags::Skeleton;

    outScene = ezModelImporter::Importer::GetSingleton()->ImportScene(szSceneFile, importFlags);
    if (!outScene)
    {
      return ezStatus(ezFmt("Input file '{0}' could not be imported", szSceneFile));
    }

    if (outScene->GetMeshes().GetCount() == 0)
    {
      return ezStatus("Scene does not contain any meshes.");
    }

    if (ezStringUtils::IsNullOrEmpty(szSubMesh))
    {
      outMesh = outScene->MergeAllMeshes();
    }
    else
    {
      outMesh = nullptr;
      for (auto it = outScene->GetMeshes().GetIterator(); it.IsValid(); ++it)
      {
        if (it.Value()->m_Name == szSubMesh)
        {
          outMesh = it.Value().Borrow();
          break;
        }
      }

      if (outMesh == nullptr)
      {
        return ezStatus(ezFmt("Scene does not contain a mesh with name '{0}'.", szSubMesh));
      }
    }

    return ezStatus(EZ_SUCCESS);
  }
Example #3
0
void ezQtLogPanel::LogWriter(const ezLoggingEventData& e)
{
  // Can be called from a different thread, but AddLogMsg is thread safe.
  ezLogEntry msg(e);
  EditorLog->GetLog()->AddLogMsg(msg);

  if (msg.m_sTag == "EditorStatus")
  {
    ezQtUiServices::GetSingleton()->ShowAllDocumentsStatusBarMessage(ezFmt(msg.m_sMsg), ezTime::Seconds(5));
  }
}
Example #4
0
ezStatus ezToolsProject::Open()
{
  ezOSFile ProjectFile;
  if (ProjectFile.Open(m_sProjectPath, ezFileMode::Read).Failed())
  {
    return ezStatus(ezFmt("Could not open the project file for reading: '{0}'", m_sProjectPath));
  }

  ProjectFile.Close();

  ezToolsProjectEvent e;
  e.m_pProject = this;
  e.m_Type = ezToolsProjectEvent::Type::ProjectOpened;
  s_Events.Broadcast(e);

  return ezStatus(EZ_SUCCESS);
}