prime/include/Collision/CMaterialFilter.hpp
Luke Street 7f83e1fa03 Standardize include guards, clang-format headers
Former-commit-id: 261ee48bba0546f4620447040b7c3d3034686796
2022-10-09 01:13:17 -04:00

44 lines
1.2 KiB
C++

#ifndef _CMATERIALFILTER
#define _CMATERIALFILTER
#include "types.h"
#include "Collision/CMaterialList.hpp"
class CMaterialFilter {
static const CMaterialFilter skPassEverything;
public:
enum EFilterType {
kFT_Always,
kFT_Include,
kFT_Exclude,
kFT_IncludeExclude,
};
CMaterialFilter() : include(0x00000000FFFFFFFF), exclude(0), type(kFT_Always) {}
CMaterialFilter(const CMaterialList& include, const CMaterialList& exclude, EFilterType type)
: include(include), exclude(exclude), type(type) {}
static CMaterialFilter MakeInclude(const CMaterialList& include) {
return CMaterialFilter(include, CMaterialList(), kFT_Include);
}
static CMaterialFilter MakeExclude(const CMaterialList& exclude) {
return CMaterialFilter(CMaterialList(), exclude, kFT_Exclude);
}
static CMaterialFilter MakeIncludeExclude(const CMaterialList& include,
const CMaterialList& exclude) {
return CMaterialFilter(include, exclude, kFT_IncludeExclude);
}
bool Passes(const CMaterialList& other) const;
private:
CMaterialList include;
CMaterialList exclude;
EFilterType type;
};
CHECK_SIZEOF(CMaterialFilter, 0x18)
#endif // _CMATERIALFILTER