private void UpdatePrimBlocking(Primitive prim)
{
if (!RenderingEnabled) return;
if (RenderSettings.AvatarRenderingEnabled && prim.PrimData.PCode == PCode.Avatar)
{
AddAvatarToScene(Client.Network.CurrentSim.ObjectsAvatars[prim.LocalID]);
return;
}
// Skip foliage
if (prim.PrimData.PCode != PCode.Prim) return;
if (!RenderSettings.PrimitiveRenderingEnabled) return;
if (prim.Textures == null) return;
RenderPrimitive rPrim = null;
if (Prims.TryGetValue(prim.LocalID, out rPrim))
{
rPrim.AttachedStateKnown = false;
}
else
{
rPrim = new RenderPrimitive();
rPrim.Meshed = false;
rPrim.BoundingVolume = new BoundingVolume();
rPrim.BoundingVolume.FromScale(prim.Scale);
}
rPrim.BasePrim = prim;
lock (Prims) Prims[prim.LocalID] = rPrim;
}