
.. _program_listing_file_Src_GraphicsEngineVulkan_scene_ObjLoader.hpp:

Program Listing for File ObjLoader.hpp
======================================

|exhale_lsh| :ref:`Return to documentation for file <file_Src_GraphicsEngineVulkan_scene_ObjLoader.hpp>` (``Src/GraphicsEngineVulkan/scene/ObjLoader.hpp``)

.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS

.. code-block:: cpp

   #pragma once
   #include <vulkan/vulkan.hpp>
   
   #include <memory>
   
   #include "Model.hpp"
   
   import kataglyphis.vulkan.obj_material;
   import kataglyphis.vulkan.vertex;
   
   namespace Kataglyphis {
   class ObjLoader
   {
     public:
       ObjLoader(VulkanDevice *device, vk::Queue transfer_queue, vk::CommandPool command_pool);
   
       std::shared_ptr<Model> loadModel(const std::string &modelFile);
   
     private:
       Kataglyphis::VulkanDevice *device;
       vk::Queue transfer_queue;
       vk::CommandPool command_pool;
   
       std::vector<Vertex> vertices;
       std::vector<unsigned int> indices;
       std::vector<ObjMaterial> materials;
       std::vector<unsigned int> materialIndex;
       std::vector<std::string> textures;
   
       std::vector<std::string> loadTexturesAndMaterials(const std::string &modelFile);
       void loadVertices(const std::string &fileName);
   };
   }// namespace Kataglyphis
