diff options
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs | 58 |
1 files changed, 30 insertions, 28 deletions
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs index c2ce9d8..87e69f7 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs | |||
@@ -427,7 +427,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
427 | if (reader.Name == "SceneObjectPart") | 427 | if (reader.Name == "SceneObjectPart") |
428 | { | 428 | { |
429 | SceneObjectPart Part = SceneObjectPart.FromXml(reader); | 429 | SceneObjectPart Part = SceneObjectPart.FromXml(reader); |
430 | if(m_rootPart.LinkNum == 0) | 430 | if (m_rootPart.LinkNum == 0) |
431 | m_rootPart.LinkNum++; | 431 | m_rootPart.LinkNum++; |
432 | AddPart(Part); | 432 | AddPart(Part); |
433 | Part.LinkNum = m_parts.Count; | 433 | Part.LinkNum = m_parts.Count; |
@@ -833,7 +833,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
833 | 833 | ||
834 | part.LinkNum = m_parts.Count; | 834 | part.LinkNum = m_parts.Count; |
835 | 835 | ||
836 | if(part.LinkNum == 2 && RootPart != null) | 836 | if (part.LinkNum == 2 && RootPart != null) |
837 | RootPart.LinkNum = 1; | 837 | RootPart.LinkNum = 1; |
838 | } | 838 | } |
839 | } | 839 | } |
@@ -1745,7 +1745,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1745 | linkPart.RotationOffset = new LLQuaternion(newRot.x, newRot.y, newRot.z, newRot.w); | 1745 | linkPart.RotationOffset = new LLQuaternion(newRot.x, newRot.y, newRot.z, newRot.w); |
1746 | 1746 | ||
1747 | linkPart.ParentID = m_rootPart.LocalId; | 1747 | linkPart.ParentID = m_rootPart.LocalId; |
1748 | if(m_rootPart.LinkNum == 0) | 1748 | if (m_rootPart.LinkNum == 0) |
1749 | m_rootPart.LinkNum = 1; | 1749 | m_rootPart.LinkNum = 1; |
1750 | 1750 | ||
1751 | lock (m_parts) | 1751 | lock (m_parts) |
@@ -1815,13 +1815,15 @@ namespace OpenSim.Region.Environment.Scenes | |||
1815 | m_parts.Remove(linkPart.UUID); | 1815 | m_parts.Remove(linkPart.UUID); |
1816 | } | 1816 | } |
1817 | 1817 | ||
1818 | if(m_parts.Count == 1 && RootPart != null) //Single prim is left | 1818 | if (m_parts.Count == 1 && RootPart != null) //Single prim is left |
1819 | RootPart.LinkNum = 0; | 1819 | RootPart.LinkNum = 0; |
1820 | else | 1820 | else |
1821 | { | 1821 | { |
1822 | foreach (SceneObjectPart p in m_parts.Values) | 1822 | foreach (SceneObjectPart p in m_parts.Values) |
1823 | if(p.LinkNum > linkPart.LinkNum) | 1823 | { |
1824 | if (p.LinkNum > linkPart.LinkNum) | ||
1824 | p.LinkNum--; | 1825 | p.LinkNum--; |
1826 | } | ||
1825 | } | 1827 | } |
1826 | 1828 | ||
1827 | linkPart.ParentID = 0; | 1829 | linkPart.ParentID = 0; |
@@ -1858,7 +1860,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1858 | 1860 | ||
1859 | m_scene.AddNewSceneObject(objectGroup, true); | 1861 | m_scene.AddNewSceneObject(objectGroup, true); |
1860 | 1862 | ||
1861 | if(sendEvents) | 1863 | if (sendEvents) |
1862 | linkPart.TriggerScriptChangedEvent(Changed.LINK); | 1864 | linkPart.TriggerScriptChangedEvent(Changed.LINK); |
1863 | 1865 | ||
1864 | HasGroupChanged = true; | 1866 | HasGroupChanged = true; |
@@ -2131,11 +2133,11 @@ namespace OpenSim.Region.Environment.Scenes | |||
2131 | /// <param name="localID"></param> | 2133 | /// <param name="localID"></param> |
2132 | public void Resize(LLVector3 scale, uint localID) | 2134 | public void Resize(LLVector3 scale, uint localID) |
2133 | { | 2135 | { |
2134 | if(scale.X > m_scene.m_maxNonphys) | 2136 | if (scale.X > m_scene.m_maxNonphys) |
2135 | scale.X = m_scene.m_maxNonphys; | 2137 | scale.X = m_scene.m_maxNonphys; |
2136 | if(scale.Y > m_scene.m_maxNonphys) | 2138 | if (scale.Y > m_scene.m_maxNonphys) |
2137 | scale.Y = m_scene.m_maxNonphys; | 2139 | scale.Y = m_scene.m_maxNonphys; |
2138 | if(scale.Z > m_scene.m_maxNonphys) | 2140 | if (scale.Z > m_scene.m_maxNonphys) |
2139 | scale.Z = m_scene.m_maxNonphys; | 2141 | scale.Z = m_scene.m_maxNonphys; |
2140 | 2142 | ||
2141 | SceneObjectPart part = GetChildPart(localID); | 2143 | SceneObjectPart part = GetChildPart(localID); |
@@ -2144,13 +2146,13 @@ namespace OpenSim.Region.Environment.Scenes | |||
2144 | part.Resize(scale); | 2146 | part.Resize(scale); |
2145 | if (part.PhysActor != null) | 2147 | if (part.PhysActor != null) |
2146 | { | 2148 | { |
2147 | if(part.PhysActor.IsPhysical) | 2149 | if (part.PhysActor.IsPhysical) |
2148 | { | 2150 | { |
2149 | if(scale.X > m_scene.m_maxPhys) | 2151 | if (scale.X > m_scene.m_maxPhys) |
2150 | scale.X = m_scene.m_maxPhys; | 2152 | scale.X = m_scene.m_maxPhys; |
2151 | if(scale.Y > m_scene.m_maxPhys) | 2153 | if (scale.Y > m_scene.m_maxPhys) |
2152 | scale.Y = m_scene.m_maxPhys; | 2154 | scale.Y = m_scene.m_maxPhys; |
2153 | if(scale.Z > m_scene.m_maxPhys) | 2155 | if (scale.Z > m_scene.m_maxPhys) |
2154 | scale.Z = m_scene.m_maxPhys; | 2156 | scale.Z = m_scene.m_maxPhys; |
2155 | } | 2157 | } |
2156 | part.PhysActor.Size = | 2158 | part.PhysActor.Size = |
@@ -2179,19 +2181,19 @@ namespace OpenSim.Region.Environment.Scenes | |||
2179 | SceneObjectPart part = GetChildPart(localID); | 2181 | SceneObjectPart part = GetChildPart(localID); |
2180 | if (part != null) | 2182 | if (part != null) |
2181 | { | 2183 | { |
2182 | if(scale.X > m_scene.m_maxNonphys) | 2184 | if (scale.X > m_scene.m_maxNonphys) |
2183 | scale.X = m_scene.m_maxNonphys; | 2185 | scale.X = m_scene.m_maxNonphys; |
2184 | if(scale.Y > m_scene.m_maxNonphys) | 2186 | if (scale.Y > m_scene.m_maxNonphys) |
2185 | scale.Y = m_scene.m_maxNonphys; | 2187 | scale.Y = m_scene.m_maxNonphys; |
2186 | if(scale.Z > m_scene.m_maxNonphys) | 2188 | if (scale.Z > m_scene.m_maxNonphys) |
2187 | scale.Z = m_scene.m_maxNonphys; | 2189 | scale.Z = m_scene.m_maxNonphys; |
2188 | if(part.PhysActor != null && part.PhysActor.IsPhysical) | 2190 | if (part.PhysActor != null && part.PhysActor.IsPhysical) |
2189 | { | 2191 | { |
2190 | if(scale.X > m_scene.m_maxPhys) | 2192 | if (scale.X > m_scene.m_maxPhys) |
2191 | scale.X = m_scene.m_maxPhys; | 2193 | scale.X = m_scene.m_maxPhys; |
2192 | if(scale.Y > m_scene.m_maxPhys) | 2194 | if (scale.Y > m_scene.m_maxPhys) |
2193 | scale.Y = m_scene.m_maxPhys; | 2195 | scale.Y = m_scene.m_maxPhys; |
2194 | if(scale.Z > m_scene.m_maxPhys) | 2196 | if (scale.Z > m_scene.m_maxPhys) |
2195 | scale.Z = m_scene.m_maxPhys; | 2197 | scale.Z = m_scene.m_maxPhys; |
2196 | } | 2198 | } |
2197 | float x = (scale.X / part.Scale.X); | 2199 | float x = (scale.X / part.Scale.X); |
@@ -2200,7 +2202,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
2200 | 2202 | ||
2201 | lock (m_parts) | 2203 | lock (m_parts) |
2202 | { | 2204 | { |
2203 | if(x > 1.0f || y > 1.0f || z > 1.0f) | 2205 | if (x > 1.0f || y > 1.0f || z > 1.0f) |
2204 | { | 2206 | { |
2205 | foreach (SceneObjectPart obPart in m_parts.Values) | 2207 | foreach (SceneObjectPart obPart in m_parts.Values) |
2206 | { | 2208 | { |
@@ -2211,9 +2213,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
2211 | float f = 1.0f; | 2213 | float f = 1.0f; |
2212 | float a = 1.0f; | 2214 | float a = 1.0f; |
2213 | 2215 | ||
2214 | if(part.PhysActor != null && part.PhysActor.IsPhysical) | 2216 | if (part.PhysActor != null && part.PhysActor.IsPhysical) |
2215 | { | 2217 | { |
2216 | if(oldSize.X*x > m_scene.m_maxPhys) | 2218 | if (oldSize.X*x > m_scene.m_maxPhys) |
2217 | { | 2219 | { |
2218 | f = m_scene.m_maxPhys / oldSize.X; | 2220 | f = m_scene.m_maxPhys / oldSize.X; |
2219 | a = f / x; | 2221 | a = f / x; |
@@ -2221,7 +2223,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
2221 | y *= a; | 2223 | y *= a; |
2222 | z *= a; | 2224 | z *= a; |
2223 | } | 2225 | } |
2224 | if(oldSize.Y*y > m_scene.m_maxPhys) | 2226 | if (oldSize.Y*y > m_scene.m_maxPhys) |
2225 | { | 2227 | { |
2226 | f = m_scene.m_maxPhys / oldSize.Y; | 2228 | f = m_scene.m_maxPhys / oldSize.Y; |
2227 | a = f / y; | 2229 | a = f / y; |
@@ -2229,7 +2231,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
2229 | y *= a; | 2231 | y *= a; |
2230 | z *= a; | 2232 | z *= a; |
2231 | } | 2233 | } |
2232 | if(oldSize.Z*z > m_scene.m_maxPhys) | 2234 | if (oldSize.Z*z > m_scene.m_maxPhys) |
2233 | { | 2235 | { |
2234 | f = m_scene.m_maxPhys / oldSize.Z; | 2236 | f = m_scene.m_maxPhys / oldSize.Z; |
2235 | a = f / z; | 2237 | a = f / z; |
@@ -2240,7 +2242,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
2240 | } | 2242 | } |
2241 | else | 2243 | else |
2242 | { | 2244 | { |
2243 | if(oldSize.X*x > m_scene.m_maxNonphys) | 2245 | if (oldSize.X*x > m_scene.m_maxNonphys) |
2244 | { | 2246 | { |
2245 | f = m_scene.m_maxNonphys / oldSize.X; | 2247 | f = m_scene.m_maxNonphys / oldSize.X; |
2246 | a = f / x; | 2248 | a = f / x; |
@@ -2248,7 +2250,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
2248 | y *= a; | 2250 | y *= a; |
2249 | z *= a; | 2251 | z *= a; |
2250 | } | 2252 | } |
2251 | if(oldSize.Y*y > m_scene.m_maxNonphys) | 2253 | if (oldSize.Y*y > m_scene.m_maxNonphys) |
2252 | { | 2254 | { |
2253 | f = m_scene.m_maxNonphys / oldSize.Y; | 2255 | f = m_scene.m_maxNonphys / oldSize.Y; |
2254 | a = f / y; | 2256 | a = f / y; |
@@ -2256,7 +2258,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
2256 | y *= a; | 2258 | y *= a; |
2257 | z *= a; | 2259 | z *= a; |
2258 | } | 2260 | } |
2259 | if(oldSize.Z*z > m_scene.m_maxNonphys) | 2261 | if (oldSize.Z*z > m_scene.m_maxNonphys) |
2260 | { | 2262 | { |
2261 | f = m_scene.m_maxNonphys / oldSize.Z; | 2263 | f = m_scene.m_maxNonphys / oldSize.Z; |
2262 | a = f / z; | 2264 | a = f / z; |