6#include "Templates/IsArithmetic.h"
7#include "Templates/UnrealTypeTraits.h"
8#include "Math/NumericLimits.h"
9#include "Math/UnrealMathUtility.h"
12
13
16 static_assert(
TIsArithmetic<ElementType>::Value,
"Incompatible TInterval element type.");
18 static ElementType
Max()
30
31
43
44
45
46
53
54
55
56
57
66
67
68
69
80
81
82
83
96
97
98
99
106
107
108
109
116
117
118
119
120
127
128
129
130
141
142
143
144
167
168
169
170
171
185
186
187
188
189
190
202
203
204
205
206
207
214
215
216
217
218
226
228#define DEFINE_INTERVAL_WRAPPER_STRUCT(Name, ElementType)
229 struct Name : TInterval<ElementType>
232 typedef TInterval<ElementType> Super;
240 Name( const Super& Other )
245 Name( ElementType InMin, ElementType InMax )
246 : Super( InMin, InMax )
250 friend Name Intersect( const Name& A, const Name& B )
252 return Intersect( static_cast<const Super&>( A ), static_cast<const Super&>( B ) );
257 struct TIsBitwiseConstructible<Name, TInterval<ElementType>>
259 enum { Value = true };
263 struct TIsBitwiseConstructible<TInterval<ElementType>, Name>
265 enum { Value = true };
#define DEFINE_INTERVAL_WRAPPER_STRUCT(Name, ElementType)
friend TInterval Intersect(const TInterval &A, const TInterval &B)
void operator-=(ElementType X)
void Expand(ElementType ExpandAmount)
TInterval(ElementType InMin, ElementType InMax)
bool Contains(const ElementType &Element) const
friend uint32 GetTypeHash(const TInterval &Interval)
void operator+=(ElementType X)
ElementType Interpolate(float Alpha) const
void Include(ElementType X)
static ElementType Lowest()