#pragma once #include "FbxDeleter.h" #include #include #include #include #include "BabylonNode.h" #include "BabylonVertex.h" #include class FbxSceneLoader { private: std::string _filePath; std::unique_ptr _fbxMgr; FbxScene* _scene; std::unique_ptr _rootNode; std::map _nodesMap; public: FbxSceneLoader(const std::string& filePath); ~FbxSceneLoader(); FbxScene* getScene(){ return _scene; } BabylonNode* rootNode() const{ return _rootNode.get(); } std::map& getNodeMap(){ return _nodesMap; } FbxScene* getScene() const{ return _scene; } FbxCamera* GetDefaultCamera() const{ const int nodeCount = _scene->GetSrcObjectCount(); for (int index = 0; index < nodeCount; index++) { auto node = _scene->GetSrcObject(index); auto camera = node->GetCamera(); if (!camera){ // not a geometry node, go to next continue; } return camera; // ignore skinned meshes /*if (mesh->GetDeformerCount(FbxDeformer::eSkin) == 0){ this->_meshes.push_back(mesh); }*/ } return nullptr; } babylon_global_settings getGlobalSettings(); };