// Copyright 2024 SquareBlock Inc. All Rights Reserved.
// Author: tianlei.richard@qq.com (tianlei.richard)

#pragma once

#include <filesystem>
#include <opencv2/core/core.hpp>

#include "common.h"

class Texture {
public:
  typedef enum TextureType {
    DiffuseMap,
    AmbientMap,
  } TextureType;

public:
  Texture(const std::filesystem::path &texture_path);

public:
  cv::Vec3b sample(const Point2d &texture_coordinate);

private:
  cv::Mat texture_;
};
