SMG-Decomp
A decompilation of Super Mario Galaxy 1
Loading...
Searching...
No Matches
TriangleFilter.hpp
1#pragma once
2
3class Triangle;
4
5typedef bool (*TriangleFunc)(const Triangle *);
6
8public:
9 /*TriangleFilterBase(TriangleFunc function) {
10 mFunction = function;
11 }*/
12
13 virtual bool isInvalidTriangle(const Triangle *) const = 0;
14
15// TriangleFunc mFunction; // _4
16};
17
19public:
20 /*TriangleFilterFunc(TriangleFunc func) : TriangleFilterBase(func) {
21
22 }*/
23
24 virtual bool isInvalidTriangle(const Triangle *) const;
25};
26
27namespace MR {
28 TriangleFilterFunc* createTriangleFilterFunc(TriangleFunc);
29};
30
31template<typename T>
33 public:
34 typedef bool (T::*DelegateFilter)(const Triangle *);
35 TriangleFilterDelegator(T *parent, DelegateFilter filter) : mParent(parent), mFunc(filter) {}
36
37 virtual bool isInvalidTriangle(const Triangle *) const;
38
39 static inline TriangleFilterDelegator<T>* allocateDelegator (
40 T *parent,
41 DelegateFilter filter
42 ) {
43 return new TriangleFilterDelegator<T>(parent, filter);
44 }
45
46 T *mParent; // _4
47 DelegateFilter mFunc; // _10
48};