#pragma once
#include <vector>

#include "d_3d_class.h"
#include "object.h"

class Skybox
{
public:

    /**
     * @brief Constructor for the Skybox class.
     * Initializes the skybox with a reference to the d_3d_class instance.
     */
    Skybox();
    ~Skybox();

    /**
     * Initializes the Skybox with the given d_3d_class reference.
     * @param d3dClassRef 
     */
    void Initialize(d_3d_class* d3dClassRef); // Get all the required references

    /**
     * Create the skybox object.
     * @param app 
     * @return Pointer to the created skybox object.
     */
    object* ConstructSkybox(application_class* app);


    // Variables
    
    std::vector<ID3D11ShaderResourceView*> textures;
    std::vector<XMMATRIX> translations;

private:

    d_3d_class* m_d3dClassRef; // Reference to the d_3d_class instance
    object* m_Skybox;
    
    
};
