aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/MeshCost.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/MeshCost.cs')
-rw-r--r--OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/MeshCost.cs13
1 files changed, 4 insertions, 9 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/MeshCost.cs b/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/MeshCost.cs
index e293463..8844a0f 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/MeshCost.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/MeshCost.cs
@@ -145,11 +145,11 @@ namespace OpenSim.Region.ClientStack.Linden
145 // avatarSkeleton if mesh includes a avatar skeleton 145 // avatarSkeleton if mesh includes a avatar skeleton
146 // useAvatarCollider if we should use physics mesh for avatar 146 // useAvatarCollider if we should use physics mesh for avatar
147 public bool MeshModelCost(LLSDAssetResource resources, int basicCost, out int totalcost, 147 public bool MeshModelCost(LLSDAssetResource resources, int basicCost, out int totalcost,
148 LLSDAssetUploadResponseData meshcostdata, out string error, ref string warning) 148 LLSDAssetUploadResponseData meshcostdata, out string error, ref string warning, out int[] meshesSides)
149 { 149 {
150 totalcost = 0; 150 totalcost = 0;
151 error = string.Empty; 151 error = string.Empty;
152 152 meshesSides = null;
153 bool avatarSkeleton = false; 153 bool avatarSkeleton = false;
154 154
155 if (resources == null || 155 if (resources == null ||
@@ -204,6 +204,7 @@ namespace OpenSim.Region.ClientStack.Linden
204 if (resources.mesh_list != null && resources.mesh_list.Array.Count > 0) 204 if (resources.mesh_list != null && resources.mesh_list.Array.Count > 0)
205 { 205 {
206 numberMeshs = resources.mesh_list.Array.Count; 206 numberMeshs = resources.mesh_list.Array.Count;
207 meshesSides = new int[numberMeshs];
207 208
208 for (int i = 0; i < numberMeshs; i++) 209 for (int i = 0; i < numberMeshs; i++)
209 { 210 {
@@ -226,6 +227,7 @@ namespace OpenSim.Region.ClientStack.Linden
226 } 227 }
227 meshsCosts.Add(curCost); 228 meshsCosts.Add(curCost);
228 meshsfee += curCost.costFee; 229 meshsfee += curCost.costFee;
230 meshesSides[i] = curCost.highLODsides;
229 } 231 }
230 haveMeshs = true; 232 haveMeshs = true;
231 } 233 }
@@ -260,11 +262,6 @@ namespace OpenSim.Region.ClientStack.Linden
260 error = "Model contains parts with sides larger than " + NonPhysicalPrimScaleMax.ToString() + "m. Please ajust scale"; 262 error = "Model contains parts with sides larger than " + NonPhysicalPrimScaleMax.ToString() + "m. Please ajust scale";
261 return false; 263 return false;
262 } 264 }
263 int nfaces = 0;
264 if(inst.Contains("face_list"))
265 {
266 nfaces = ((ArrayList)inst["face_list"]).Count;
267 }
268 265
269 if (haveMeshs && inst.ContainsKey("mesh")) 266 if (haveMeshs && inst.ContainsKey("mesh"))
270 { 267 {
@@ -281,8 +278,6 @@ namespace OpenSim.Region.ClientStack.Linden
281 float sqdiam = scale.LengthSquared(); 278 float sqdiam = scale.LengthSquared();
282 279
283 ameshCostParam curCost = meshsCosts[mesh]; 280 ameshCostParam curCost = meshsCosts[mesh];
284 if(nfaces != curCost.highLODsides)
285 warning +="Warning: Uploaded number of faces ( "+ nfaces.ToString() +" ) does not match highlod number of faces ( "+ curCost.highLODsides.ToString() +" )\n";
286 281
287 float mesh_streaming = streamingCost(curCost, sqdiam); 282 float mesh_streaming = streamingCost(curCost, sqdiam);
288 283