diff options
author | UbitUmarov | 2017-04-25 04:58:24 +0100 |
---|---|---|
committer | UbitUmarov | 2017-04-25 04:58:24 +0100 |
commit | 2f6c78b88895c0934179fb8eb70ae1dc08883d5f (patch) | |
tree | fc10a6fbe608e10a62248ad39bae08d15e322f17 /OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | |
parent | some fixes on the materials paramenters of llGetPrimitiveParams() (diff) | |
download | opensim-SC-2f6c78b88895c0934179fb8eb70ae1dc08883d5f.zip opensim-SC-2f6c78b88895c0934179fb8eb70ae1dc08883d5f.tar.gz opensim-SC-2f6c78b88895c0934179fb8eb70ae1dc08883d5f.tar.bz2 opensim-SC-2f6c78b88895c0934179fb8eb70ae1dc08883d5f.tar.xz |
finish encoding number of mesh faces in pbs shape on new meshs upload, and *HACK* flag it setting hollow shape to triangle. (some limited encoding as added some months ago, but only for viewers LOD). Use this hack flag to fix sop number of faces. old meshs will still report 8 faces, information to fix this seems lost unless the mesh asset is decoded
Diffstat (limited to 'OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs')
-rw-r--r-- | OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 25 |
1 files changed, 8 insertions, 17 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs index dc8d267..cf96a8b 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | |||
@@ -4212,12 +4212,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4212 | SceneObjectGroup grp = part.ParentGroup; | 4212 | SceneObjectGroup grp = part.ParentGroup; |
4213 | if (grp.inTransit && !update.Flags.HasFlag(PrimUpdateFlags.SendInTransit)) | 4213 | if (grp.inTransit && !update.Flags.HasFlag(PrimUpdateFlags.SendInTransit)) |
4214 | continue; | 4214 | continue; |
4215 | /* debug | ||
4215 | if (update.Flags.HasFlag(PrimUpdateFlags.SendInTransit)) | 4216 | if (update.Flags.HasFlag(PrimUpdateFlags.SendInTransit)) |
4216 | { | 4217 | { |
4217 | 4218 | ||
4218 | 4219 | ||
4219 | } | 4220 | } |
4220 | 4221 | */ | |
4221 | if (grp.IsDeleted) | 4222 | if (grp.IsDeleted) |
4222 | { | 4223 | { |
4223 | // Don't send updates for objects that have been marked deleted. | 4224 | // Don't send updates for objects that have been marked deleted. |
@@ -4274,14 +4275,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4274 | { | 4275 | { |
4275 | part.Shape.LightEntry = false; | 4276 | part.Shape.LightEntry = false; |
4276 | } | 4277 | } |
4277 | |||
4278 | if (part.Shape != null && (part.Shape.SculptType == (byte)SculptType.Mesh)) | ||
4279 | { | ||
4280 | // Ensure that mesh has at least 8 valid faces | ||
4281 | part.Shape.ProfileBegin = 12500; | ||
4282 | part.Shape.ProfileEnd = 0; | ||
4283 | part.Shape.ProfileHollow = 27500; | ||
4284 | } | ||
4285 | } | 4278 | } |
4286 | 4279 | ||
4287 | if(doCulling && !grp.IsAttachment) | 4280 | if(doCulling && !grp.IsAttachment) |
@@ -4309,14 +4302,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4309 | continue; | 4302 | continue; |
4310 | } | 4303 | } |
4311 | } | 4304 | } |
4312 | |||
4313 | if (part.Shape != null && (part.Shape.SculptType == (byte)SculptType.Mesh)) | ||
4314 | { | ||
4315 | // Ensure that mesh has at least 8 valid faces | ||
4316 | part.Shape.ProfileBegin = 12500; | ||
4317 | part.Shape.ProfileEnd = 0; | ||
4318 | part.Shape.ProfileHollow = 27500; | ||
4319 | } | ||
4320 | } | 4305 | } |
4321 | else if (update.Entity is ScenePresence) | 4306 | else if (update.Entity is ScenePresence) |
4322 | { | 4307 | { |
@@ -5877,6 +5862,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
5877 | update.PCode = part.Shape.PCode; | 5862 | update.PCode = part.Shape.PCode; |
5878 | update.ProfileBegin = part.Shape.ProfileBegin; | 5863 | update.ProfileBegin = part.Shape.ProfileBegin; |
5879 | update.ProfileCurve = part.Shape.ProfileCurve; | 5864 | update.ProfileCurve = part.Shape.ProfileCurve; |
5865 | |||
5866 | if(part.Shape.SculptType == (byte)SculptType.Mesh) // filter out hack | ||
5867 | update.ProfileCurve = (byte)(part.Shape.ProfileCurve & 0x0f); | ||
5868 | else | ||
5869 | update.ProfileCurve = part.Shape.ProfileCurve; | ||
5870 | |||
5880 | update.ProfileEnd = part.Shape.ProfileEnd; | 5871 | update.ProfileEnd = part.Shape.ProfileEnd; |
5881 | update.ProfileHollow = part.Shape.ProfileHollow; | 5872 | update.ProfileHollow = part.Shape.ProfileHollow; |
5882 | update.PSBlock = part.ParticleSystem ?? Utils.EmptyBytes; | 5873 | update.PSBlock = part.ParticleSystem ?? Utils.EmptyBytes; |