13template <
class CollectorType>
23 CollectorType::Reset();
50template <
class CollectorType>
60 CollectorType::Reset();
68 float early_out = inResult.GetEarlyOutFraction();
69 if (!mHadHit || early_out <
mHit.GetEarlyOutFraction())
72 CollectorType::UpdateEarlyOutFraction(early_out);
93template <
class CollectorType>
103 CollectorType::Reset();
113 mPreviousEarlyOutFraction = CollectorType::GetEarlyOutFraction();
119 float early_out = inResult.GetEarlyOutFraction();
120 if (!mHadHit || early_out < CollectorType::GetEarlyOutFraction())
123 CollectorType::UpdateEarlyOutFraction(early_out);
146 JPH_ASSERT(mPreviousEarlyOutFraction != -FLT_MAX);
147 CollectorType::ResetEarlyOutFraction(mPreviousEarlyOutFraction);
171 float mPreviousEarlyOutFraction = -FLT_MAX;
174 bool mHadHit =
false;
178template <
class CollectorType>
188 CollectorType::Reset();
200 CollectorType::ForceEarlyOut();
216 bool mHadHit =
false;
#define JPH_NAMESPACE_END
Definition Core.h:418
#define JPH_NAMESPACE_BEGIN
Definition Core.h:412
#define JPH_IF_ENABLE_ASSERTS(...)
Definition IssueReporting.h:35
#define JPH_ASSERT(...)
Definition IssueReporting.h:33
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
Simple implementation that collects all hits and optionally sorts them on distance.
Definition CollisionCollectorImpl.h:15
void Sort()
Order hits on closest first.
Definition CollisionCollectorImpl.h:35
bool HadHit() const
Check if any hits were collected.
Definition CollisionCollectorImpl.h:41
typename CollectorType::ResultType ResultType
Redeclare ResultType.
Definition CollisionCollectorImpl.h:18
Array< ResultType > mHits
Definition CollisionCollectorImpl.h:46
virtual void AddHit(const ResultType &inResult) override
Definition CollisionCollectorImpl.h:29
virtual void Reset() override
Definition CollisionCollectorImpl.h:21
Simple implementation that collects any hit.
Definition CollisionCollectorImpl.h:180
virtual void Reset() override
Definition CollisionCollectorImpl.h:186
virtual void AddHit(const ResultType &inResult) override
Definition CollisionCollectorImpl.h:194
typename CollectorType::ResultType ResultType
Redeclare ResultType.
Definition CollisionCollectorImpl.h:183
bool HadHit() const
Check if this collector has had a hit.
Definition CollisionCollectorImpl.h:208
ResultType mHit
Definition CollisionCollectorImpl.h:213
bool empty() const
Returns true if there are no elements in the array.
Definition Array.h:314
const T & back() const
Last element in the array.
Definition Array.h:494
const_iterator begin() const
Iterators.
Definition Array.h:414
void clear()
Destruct all elements and set length to zero.
Definition Array.h:145
void push_back(const T &inValue)
Add element to the back of the array.
Definition Array.h:277
const_iterator end() const
Definition Array.h:419
Simple implementation that collects the closest / deepest hit.
Definition CollisionCollectorImpl.h:52
virtual void Reset() override
Definition CollisionCollectorImpl.h:58
virtual void AddHit(const ResultType &inResult) override
Definition CollisionCollectorImpl.h:66
ResultType mHit
Definition CollisionCollectorImpl.h:86
bool HadHit() const
Check if this collector has had a hit.
Definition CollisionCollectorImpl.h:81
typename CollectorType::ResultType ResultType
Redeclare ResultType.
Definition CollisionCollectorImpl.h:55
Implementation that collects the closest / deepest hit for each body and optionally sorts them on dis...
Definition CollisionCollectorImpl.h:95
virtual void Reset() override
Definition CollisionCollectorImpl.h:101
virtual void OnBodyEnd() override
Definition CollisionCollectorImpl.h:140
void Sort()
Order hits on closest first.
Definition CollisionCollectorImpl.h:156
virtual void OnBody(const Body &inBody) override
Definition CollisionCollectorImpl.h:110
bool HadHit() const
Check if any hits were collected.
Definition CollisionCollectorImpl.h:162
virtual void AddHit(const ResultType &inResult) override
Definition CollisionCollectorImpl.h:117
Array< ResultType > mHits
Definition CollisionCollectorImpl.h:167
typename CollectorType::ResultType ResultType
Redeclare ResultType.
Definition CollisionCollectorImpl.h:98