32 void Clear() { mPoints.clear(); }
35 void Reserve(
uint inNumPoints) { mPoints.reserve(inNumPoints); }
40 void AddPoint(
float inX,
float inY) { mPoints.push_back({ inX, inY }); }
43 void Sort() {
QuickSort(mPoints.begin(), mPoints.end(), [](
const Point &inLHS,
const Point &inRHS) { return inLHS.mX < inRHS.mX; }); }
46 float GetMinX()
const {
return mPoints.empty()? 0.0f : mPoints.front().mX; }
49 float GetMaxX()
const {
return mPoints.empty()? 0.0f : mPoints.back().mX; }
54 float GetValue(
float inX)
const;
57 void SaveBinaryState(
StreamOut &inStream)
const;
60 void RestoreBinaryState(
StreamIn &inStream);
#define JPH_EXPORT
Definition: Core.h:227
unsigned int uint
Definition: Core.h:439
#define JPH_NAMESPACE_END
Definition: Core.h:367
#define JPH_NAMESPACE_BEGIN
Definition: Core.h:361
void QuickSort(Iterator inBegin, Iterator inEnd, Compare inCompare)
Implementation of the quick sort algorithm. The STL version implementation is not consistent across p...
Definition: QuickSort.h:53
std::vector< T, STLAllocator< T > > Array
Definition: STLAllocator.h:81
#define JPH_DECLARE_SERIALIZABLE_NON_VIRTUAL(linkage, class_name)
Definition: SerializableObject.h:71
A point on the curve.
Definition: LinearCurve.h:23
Definition: LinearCurve.h:17
Points mPoints
Definition: LinearCurve.h:64
void Reserve(uint inNumPoints)
Reserve memory for inNumPoints points.
Definition: LinearCurve.h:35
void AddPoint(float inX, float inY)
Definition: LinearCurve.h:40
float GetMaxX() const
Get the highest X value.
Definition: LinearCurve.h:49
float GetMinX() const
Get the lowest X value.
Definition: LinearCurve.h:46
Array< Point > Points
The points on the curve, should be sorted ascending by x.
Definition: LinearCurve.h:63
void Sort()
Sort the points on X ascending.
Definition: LinearCurve.h:43
Simple binary input stream.
Definition: StreamIn.h:13
Simple binary output stream.
Definition: StreamOut.h:13