Initial commit: Final state of the master project
This commit is contained in:
38
Research/scene/Material/BlockBasedMaterialLibrary.h
Normal file
38
Research/scene/Material/BlockBasedMaterialLibrary.h
Normal file
@@ -0,0 +1,38 @@
|
||||
#pragma once
|
||||
#include "../../core/Defines.h"
|
||||
#include "../../core/Serializer.h"
|
||||
#include "../../core/CollectionHelper.h"
|
||||
#include "MaterialLibrary.h"
|
||||
#include "Block.h"
|
||||
#include "../../inc/tbb/parallel_sort.h"
|
||||
#include <vector>
|
||||
#include <iterator>
|
||||
|
||||
template<typename T, typename Comparer = std::less<T>, unsigned8 channelsPerPixel = 3>
|
||||
class BlockBasedMaterialLibrary : public MaterialLibrary<T, Comparer, channelsPerPixel>
|
||||
{
|
||||
private:
|
||||
std::vector<Block<T>> mBlocks;
|
||||
std::vector<size_t> mBlocksImportance;
|
||||
public:
|
||||
BlockBasedMaterialLibrary() : MaterialLibrary<T, Comparer, channelsPerPixel>() {}
|
||||
BlockBasedMaterialLibrary(std::vector<unsigned char> texture, unsigned short textureSize, MaterialLibraryPointer highestMaterialIndex) : MaterialLibrary<T, Comparer, channelsPerPixel>(texture, textureSize, highestMaterialIndex)
|
||||
{ }
|
||||
|
||||
// Copy constructor
|
||||
BlockBasedMaterialLibrary(const BlockBasedMaterialLibrary& other) : MaterialLibrary<T, Comparer, channelsPerPixel>(other)
|
||||
{
|
||||
this->mBlocks = other.mBlocks;
|
||||
this->mBlocksImportance = other.mBlocksImportance;
|
||||
}
|
||||
|
||||
~BlockBasedMaterialLibrary() {}
|
||||
|
||||
//void Finalize()
|
||||
//{
|
||||
// std::srand(time(0));
|
||||
// // TODO: optimize the texture to get the lowest cost for the blocks
|
||||
// std::random_shuffle(mMaterials->begin(), mMaterials->end());
|
||||
// MaterialLibrary::Finalize(false);
|
||||
//}
|
||||
};
|
||||
Reference in New Issue
Block a user