ModelImporter.cpp 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. #include "../Import/OpenAssetImporter.h"
  2. #include "Asset.h"
  3. #include "AssetDatabase.h"
  4. #include "ModelImporter.h"
  5. namespace ToolCore
  6. {
  7. /// Node + Model (static or animated)
  8. ModelImporter::ModelImporter(Context* context) : AssetImporter(context)
  9. {
  10. }
  11. ModelImporter::~ModelImporter()
  12. {
  13. }
  14. void ModelImporter::SetDefaults()
  15. {
  16. AssetImporter::SetDefaults();
  17. }
  18. bool ModelImporter::Import(const String& guid)
  19. {
  20. AssetDatabase* db = GetSubsystem<AssetDatabase>();
  21. Asset* asset = db->GetAssetByGUID(guid);
  22. if (!asset)
  23. return false;
  24. SharedPtr<OpenAssetImporter> importer(new OpenAssetImporter(context_));
  25. //importer->SetVerboseLog(true);
  26. if (importer->Load(asset->GetPath()))
  27. {
  28. String cachePath = db->GetCachePath();
  29. cachePath += guid;
  30. importer->ExportModel(cachePath);
  31. }
  32. else
  33. {
  34. return false;
  35. }
  36. return true;
  37. }
  38. bool ModelImporter::LoadInternal()
  39. {
  40. if (!AssetImporter::LoadInternal())
  41. return false;
  42. JSONValue root = json_->GetRoot();
  43. JSONValue import = root.GetChild("ModelImporter", JSON_OBJECT);
  44. return true;
  45. }
  46. bool ModelImporter::SaveInternal()
  47. {
  48. if (!AssetImporter::SaveInternal())
  49. return false;
  50. JSONValue root = json_->GetRoot();
  51. JSONValue import = root.CreateChild("ModelImporter");
  52. return true;
  53. }
  54. }