#pragma once
#include <filesystem>
#include <string>
#include <vector>

class d_3d_class;
class object;
class application_class;

class scene_manager
{
public:

    scene_manager();
    ~scene_manager();

    bool initialize(application_class* app);
    bool shutdown();
    
    bool save_scene_as();
    bool save_scene();
    bool load_scene();

    std::wstring get_scene_path();
    std::string convert_w_string_to_string(const std::wstring& w_str);

private:

    application_class* app_;
    std::string scene_path_;
    std::vector<object*> object_vec_;
    int object_id_;
    std::filesystem::path w_folder_;
    d_3d_class* direct_3d_;
};
