mirror of
https://github.com/overte-org/overte.git
synced 2025-08-09 11:28:03 +02:00
Make the Collision Pick threshold scale with the largest dimension of the parent
This commit is contained in:
parent
3f7a7fb11a
commit
7839ba42db
1 changed files with 7 additions and 5 deletions
|
@ -357,12 +357,14 @@ CollisionPick::CollisionPick(const PickFilter& filter, float maxDistance, bool e
|
||||||
CollisionRegion CollisionPick::getMathematicalPick() const {
|
CollisionRegion CollisionPick::getMathematicalPick() const {
|
||||||
CollisionRegion mathPick = _mathPick;
|
CollisionRegion mathPick = _mathPick;
|
||||||
mathPick.loaded = isLoaded();
|
mathPick.loaded = isLoaded();
|
||||||
if (!parentTransform) {
|
if (parentTransform) {
|
||||||
return mathPick;
|
Transform parentTransformValue = parentTransform->getTransform();
|
||||||
} else {
|
mathPick.transform = parentTransformValue.worldTransform(mathPick.transform);
|
||||||
mathPick.transform = parentTransform->getTransform().worldTransform(mathPick.transform);
|
glm::vec3 scale = parentTransformValue.getScale();
|
||||||
return mathPick;
|
float largestDimension = glm::max(glm::max(scale.x, scale.y), scale.z);
|
||||||
|
mathPick.threshold *= largestDimension;
|
||||||
}
|
}
|
||||||
|
return mathPick;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CollisionPick::filterIntersections(std::vector<ContactTestResult>& intersections) const {
|
void CollisionPick::filterIntersections(std::vector<ContactTestResult>& intersections) const {
|
||||||
|
|
Loading…
Reference in a new issue