#pragma once

#include "Density.h"
#include "types.h"

class TextureMapper {
	size_t textureSize;

public:

	Density &density;

	texture3_t albedo;
	texture3_t normal;
	texture1_t roughness;
	texture1_t metalness;

	vec3v_t vertices;
	vec3v_t normals;
	vec2v_t texcoords;
	uvec3v_t indices;

	glm::vec4 darkestColor, brightestColor;

	TextureMapper(Density &density, size_t textureSize);

	void setTextureSize(size_t size);
	size_t getTextureSize();
	void map(const vec3v_t &inVertices, const vec3v_t &inNormals,
			const uvec3v_t &inIndices);
};
