Program Listing for File loader.h#

Return to documentation for file (public/loader.h)

#ifndef f3d_loader_h
#define f3d_loader_h

#include "exception.h"
#include "export.h"
#include "types.h"

#include <string>
#include <vector>

namespace f3d
{
class F3D_EXPORT loader
{
public:
  struct load_failure_exception : public exception
  {
    explicit load_failure_exception(const std::string& what = "")
      : exception(what){};
  };

  virtual bool hasGeometryReader(const std::string& filePath) = 0;

  virtual loader& loadGeometry(const std::string& filePath, bool reset = false) = 0;

  virtual loader& loadGeometry(const mesh_t& mesh, bool reset = false) = 0;

  virtual bool hasSceneReader(const std::string& filePath) = 0;

  virtual loader& loadScene(const std::string& filePath) = 0;

protected:
  loader() = default;
  virtual ~loader() = default;
  loader(const loader& opt) = delete;
  loader(loader&& opt) = delete;
  loader& operator=(const loader& opt) = delete;
  loader& operator=(loader&& opt) = delete;
};
}

#endif