mirror of
https://github.com/overte-org/overte.git
synced 2025-04-13 14:52:19 +02:00
Merge pull request #7106 from AndrewMeadows/tighter-capsule
tighter bounding capsule for avatars
This commit is contained in:
commit
6eda7aac6a
1 changed files with 7 additions and 4 deletions
|
@ -1274,15 +1274,18 @@ void Rig::computeAvatarBoundingCapsule(
|
|||
// even if they do not have legs (default robot)
|
||||
totalExtents.addPoint(glm::vec3(0.0f));
|
||||
|
||||
int numPoses = (int)finalPoses.size();
|
||||
for (int i = 0; i < numPoses; i++) {
|
||||
const FBXJointShapeInfo& shapeInfo = geometry.joints.at(i).shapeInfo;
|
||||
AnimPose pose = finalPoses[i];
|
||||
// HACK to reduce the radius of the bounding capsule to be tight with the torso, we only consider joints
|
||||
// from the head to the hips when computing the rest of the bounding capsule.
|
||||
int index = _animSkeleton->nameToJointIndex(QString("Head"));
|
||||
while (index != -1) {
|
||||
const FBXJointShapeInfo& shapeInfo = geometry.joints.at(index).shapeInfo;
|
||||
AnimPose pose = finalPoses[index];
|
||||
if (shapeInfo.points.size() > 0) {
|
||||
for (int j = 0; j < shapeInfo.points.size(); ++j) {
|
||||
totalExtents.addPoint((pose * shapeInfo.points[j]));
|
||||
}
|
||||
}
|
||||
index = _animSkeleton->getParentIndex(index);
|
||||
}
|
||||
|
||||
// compute bounding shape parameters
|
||||
|
|
Loading…
Reference in a new issue