mirror of
https://github.com/lubosz/overte.git
synced 2025-08-07 19:01:09 +02:00
Do not work with raw pointer in CollisionPickResult::compareAndProcessNewResult
This commit is contained in:
parent
41a8deb575
commit
fadc094a01
1 changed files with 3 additions and 5 deletions
|
@ -69,14 +69,12 @@ public:
|
||||||
bool checkOrFilterAgainstMaxDistance(float maxDistance) override { return true; }
|
bool checkOrFilterAgainstMaxDistance(float maxDistance) override { return true; }
|
||||||
|
|
||||||
PickResultPointer compareAndProcessNewResult(const PickResultPointer& newRes) override {
|
PickResultPointer compareAndProcessNewResult(const PickResultPointer& newRes) override {
|
||||||
const std::shared_ptr<CollisionPickResult> newCollisionResult = std::static_pointer_cast<CollisionPickResult>(*const_cast<PickResultPointer*>(&newRes));
|
const std::shared_ptr<CollisionPickResult> newCollisionResult = std::static_pointer_cast<CollisionPickResult>(newRes);
|
||||||
// Have to reference the raw pointer to work around strange type conversion errors
|
|
||||||
CollisionPickResult* newCollisionResultRaw = const_cast<CollisionPickResult*>(newCollisionResult.get());
|
|
||||||
|
|
||||||
for (EntityIntersection& intersectingEntity : newCollisionResultRaw->intersectingEntities) {
|
for (EntityIntersection& intersectingEntity : newCollisionResult->intersectingEntities) {
|
||||||
intersectingEntities.push_back(intersectingEntity);
|
intersectingEntities.push_back(intersectingEntity);
|
||||||
}
|
}
|
||||||
for (EntityIntersection& intersectingAvatar : newCollisionResultRaw->intersectingAvatars) {
|
for (EntityIntersection& intersectingAvatar : newCollisionResult->intersectingAvatars) {
|
||||||
intersectingAvatars.push_back(intersectingAvatar);
|
intersectingAvatars.push_back(intersectingAvatar);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue