SL-17239 Override face bounding box with avatar bounding box for rigged meshes when calculating virtual size.

meow-7.2.2
Dave Parks 2022-04-25 15:58:07 -05:00
parent 55179387c7
commit bafa869c21
1 changed files with 26 additions and 5 deletions

View File

@ -2364,14 +2364,35 @@ F32 LLFace::getTextureVirtualSize()
BOOL LLFace::calcPixelArea(F32& cos_angle_to_view_dir, F32& radius)
{
LL_PROFILE_ZONE_SCOPED_CATEGORY_FACE
LL_PROFILE_ZONE_SCOPED_CATEGORY_FACE;
//VECTORIZE THIS
//get area of circle around face
LLVector4a center;
center.load3(getPositionAgent().mV);
LLVector4a size;
size.setSub(mExtents[1], mExtents[0]);
LLVector4a center;
LLVector4a size;
if (isState(LLFace::RIGGED))
{
//override with avatar bounding box
LLVOAvatar* avatar = mVObjp->getAvatar();
if (avatar)
{
center.load3(avatar->getPositionAgent().mV);
const LLVector4a* exts = avatar->mDrawable->getSpatialExtents();
size.setSub(exts[1], exts[0]);
}
else
{
return false;
}
}
else
{
center.load3(getPositionAgent().mV);
size.setSub(mExtents[1], mExtents[0]);
}
size.mul(0.5f);
LLViewerCamera* camera = LLViewerCamera::getInstance();