38 lines
1.0 KiB
C++
38 lines
1.0 KiB
C++
#pragma once
|
|
|
|
#include <XCEngine/Core/Asset/AssetRef.h>
|
|
#include <XCEngine/Core/Containers/String.h>
|
|
#include <XCEngine/Resources/Model/Model.h>
|
|
|
|
#include <vector>
|
|
|
|
namespace XCEngine {
|
|
|
|
namespace Components {
|
|
class GameObject;
|
|
class Scene;
|
|
}
|
|
|
|
struct ModelSceneInstantiationResult {
|
|
Components::GameObject* rootObject = nullptr;
|
|
std::vector<Components::GameObject*> nodeObjects;
|
|
std::vector<Components::GameObject*> meshObjects;
|
|
};
|
|
|
|
bool InstantiateModelHierarchy(
|
|
Components::Scene& scene,
|
|
const Resources::Model& model,
|
|
const Resources::AssetRef& modelAssetRef,
|
|
Components::GameObject* parent = nullptr,
|
|
ModelSceneInstantiationResult* outResult = nullptr,
|
|
Containers::String* outErrorMessage = nullptr);
|
|
|
|
bool InstantiateModelHierarchy(
|
|
Components::Scene& scene,
|
|
const Containers::String& modelPath,
|
|
Components::GameObject* parent = nullptr,
|
|
ModelSceneInstantiationResult* outResult = nullptr,
|
|
Containers::String* outErrorMessage = nullptr);
|
|
|
|
} // namespace XCEngine
|