Plasma Engine  2.0
Loading...
Searching...
No Matches
PermutationGenerator.h
1#pragma once
2
3#include <Foundation/Containers/HashSet.h>
4#include <Foundation/Containers/HybridArray.h>
5#include <Foundation/Containers/Map.h>
6#include <Foundation/Strings/HashedString.h>
7#include <RendererCore/Declarations.h>
8
14class PL_RENDERERCORE_DLL plPermutationGenerator
15{
16public:
18 void Clear();
19
21 void RemovePermutations(const plHashedString& sPermVarName);
22
24 void AddPermutation(const plHashedString& sName, const plHashedString& sValue);
25
27 plUInt32 GetPermutationCount() const;
28
30 void GetPermutation(plUInt32 uiPerm, plHybridArray<plPermutationVar, 16>& out_permVars) const;
31
32private:
34};
This class is optimized to take nearly no memory (sizeof(void*)) and to allow very fast checks whethe...
Definition HashedString.h:25
A hybrid array uses in-place storage to handle the first few elements without any allocation....
Definition HybridArray.h:12
Definition Map.h:408
A helper class to iterate over all possible permutations.
Definition PermutationGenerator.h:15