aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ClientStack/Linden
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/ClientStack/Linden')
-rw-r--r--OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs56
1 files changed, 34 insertions, 22 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs b/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs
index 5542680..dfd5c98 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs
@@ -845,9 +845,7 @@ namespace OpenSim.Region.ClientStack.Linden
845 public string GetObjectCost(string request, string path, 845 public string GetObjectCost(string request, string path,
846 string param, IOSHttpRequest httpRequest, 846 string param, IOSHttpRequest httpRequest,
847 IOSHttpResponse httpResponse) 847 IOSHttpResponse httpResponse)
848 { 848 {
849 // see being triggered but see no efect .. have something wrong ??
850 //
851 OSDMap req = (OSDMap)OSDParser.DeserializeLLSDXml(request); 849 OSDMap req = (OSDMap)OSDParser.DeserializeLLSDXml(request);
852 OSDMap resp = new OSDMap(); 850 OSDMap resp = new OSDMap();
853 851
@@ -856,19 +854,29 @@ namespace OpenSim.Region.ClientStack.Linden
856 for (int i = 0; i < object_ids.Count; i++) 854 for (int i = 0; i < object_ids.Count; i++)
857 { 855 {
858 UUID uuid = object_ids[i].AsUUID(); 856 UUID uuid = object_ids[i].AsUUID();
857
858 SceneObjectPart part = m_Scene.GetSceneObjectPart(uuid);
859 859
860 // only see root parts .. so guess should go by SOG only 860 if (part != null)
861 SceneObjectPart obj = m_Scene.GetSceneObjectPart(uuid);
862 if (obj != null)
863 { 861 {
864 OSDMap object_data = new OSDMap(); 862 SceneObjectGroup grp = part.ParentGroup;
863 if (grp != null)
864 {
865 float linksetCost;
866 float linksetPhysCost;
867 float partCost;
868 float partPhysCost;
865 869
866 object_data["linked_set_resource_cost"] = 1.0f; 870 grp.GetResourcesCosts(part, out linksetCost, out linksetPhysCost, out partCost, out partPhysCost);
867 object_data["resource_cost"] = 1.0f;
868 object_data["physics_cost"] = 1.0f;
869 object_data["linked_set_physics_cost"] = 1.0f;
870 871
871 resp[uuid.ToString()] = object_data; 872 OSDMap object_data = new OSDMap();
873 object_data["linked_set_resource_cost"] = linksetCost;
874 object_data["resource_cost"] = partCost;
875 object_data["physics_cost"] = partPhysCost;
876 object_data["linked_set_physics_cost"] = linksetPhysCost;
877
878 resp[uuid.ToString()] = object_data;
879 }
872 } 880 }
873 } 881 }
874 882
@@ -899,13 +907,17 @@ namespace OpenSim.Region.ClientStack.Linden
899 for (int i = 0; i < object_ids.Count; i++) 907 for (int i = 0; i < object_ids.Count; i++)
900 { 908 {
901 UUID uuid = object_ids[i].AsUUID(); 909 UUID uuid = object_ids[i].AsUUID();
910 float Physc;
911 float simulc;
912 float streamc;
902 913
903 SceneObjectPart obj = m_Scene.GetSceneObjectPart(uuid); 914 SceneObjectGroup grp = m_Scene.GetGroupByPrim(uuid);
904 if (obj != null) 915 if (grp != null)
905 { 916 {
906 phys += 0.1f; // just to see... 917 grp.GetSelectedCosts(out Physc, out streamc, out simulc);
907 stream += 0.2f; 918 phys += Physc;
908 simul += 0.5f; 919 stream += streamc;
920 simul += simulc;
909 } 921 }
910 } 922 }
911 } 923 }
@@ -920,12 +932,12 @@ namespace OpenSim.Region.ClientStack.Linden
920 { 932 {
921 UUID uuid = object_ids[i].AsUUID(); 933 UUID uuid = object_ids[i].AsUUID();
922 934
923 SceneObjectPart obj = m_Scene.GetSceneObjectPart(uuid); 935 SceneObjectPart part = m_Scene.GetSceneObjectPart(uuid);
924 if (obj != null) 936 if (part != null)
925 { 937 {
926 phys += 0.1f; 938 phys += part.PhysicsCost;
927 stream += 0.2f; 939 stream += part.StreamingCost;
928 simul += 0.5f; 940 simul += part.SimulationCost;
929 } 941 }
930 } 942 }
931 } 943 }