SMG-Decomp
A decompilation of Super Mario Galaxy 1
Loading...
Searching...
No Matches
include
Game
Util
TriangleFilter.hpp
1
#pragma once
2
3
class
Triangle
;
4
5
typedef
bool (*TriangleFunc)(
const
Triangle
*);
6
7
class
TriangleFilterBase
{
8
public
:
9
/*TriangleFilterBase(TriangleFunc function) {
10
mFunction = function;
11
}*/
12
13
virtual
bool
isInvalidTriangle(
const
Triangle
*)
const
= 0;
14
15
// TriangleFunc mFunction; // _4
16
};
17
18
class
TriangleFilterFunc
:
public
TriangleFilterBase
{
19
public
:
20
/*TriangleFilterFunc(TriangleFunc func) : TriangleFilterBase(func) {
21
22
}*/
23
24
virtual
bool
isInvalidTriangle(
const
Triangle
*)
const
;
25
};
26
27
namespace
MR {
28
TriangleFilterFunc
* createTriangleFilterFunc(TriangleFunc);
29
};
30
31
template
<
typename
T>
32
class
TriangleFilterDelegator
:
public
TriangleFilterBase
{
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
};
TriangleFilterBase
Definition
TriangleFilter.hpp:7
TriangleFilterDelegator
Definition
TriangleFilter.hpp:32
TriangleFilterFunc
Definition
TriangleFilter.hpp:18
Triangle
Definition
HitInfo.hpp:10
Generated by
1.10.0