temp workaround on sits culling

0.9.1.0-post-fixes
UbitUmarov 2019-04-05 12:32:36 +01:00
parent 28c9725730
commit 3bc0690a7a
1 changed files with 21 additions and 11 deletions

View File

@ -5588,27 +5588,37 @@ namespace OpenSim.Region.ClientStack.LindenUDP
if (e != null && e is SceneObjectGroup)
{
SceneObjectGroup grp = (SceneObjectGroup)e;
if(grp.IsDeleted || grp.IsAttachment)
if(grp.IsDeleted || grp.IsAttachment )
continue;
bool inviewgroups;
lock (GroupsInView)
inviewgroups = GroupsInView.Contains(grp);
Vector3 grppos = grp.getCenterOffset();
float dpos = (grppos - mypos).LengthSquared();
float maxview = grp.GetBoundsRadius() + cullingrange;
if (dpos > maxview * maxview)
//temp handling of sits
if(grp.GetSittingAvatarsCount() > 0)
{
if(inviewgroups)
kills.Add(grp);
if (!inviewgroups)
GroupsNeedFullUpdate.Add(grp);
NewGroupsInView.Add(grp);
}
else
{
if(!inviewgroups)
GroupsNeedFullUpdate.Add(grp);
NewGroupsInView.Add(grp);
Vector3 grppos = grp.getCenterOffset();
float dpos = (grppos - mypos).LengthSquared();
float maxview = grp.GetBoundsRadius() + cullingrange;
if (dpos > maxview * maxview)
{
if(inviewgroups)
kills.Add(grp);
}
else
{
if (!inviewgroups)
GroupsNeedFullUpdate.Add(grp);
NewGroupsInView.Add(grp);
}
}
}
}