aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Framework')
-rw-r--r--OpenSim/Region/Framework/Scenes/EntityBase.cs18
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs4
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs30
3 files changed, 36 insertions, 16 deletions
diff --git a/OpenSim/Region/Framework/Scenes/EntityBase.cs b/OpenSim/Region/Framework/Scenes/EntityBase.cs
index 00c99c5..3ef4144 100644
--- a/OpenSim/Region/Framework/Scenes/EntityBase.cs
+++ b/OpenSim/Region/Framework/Scenes/EntityBase.cs
@@ -94,7 +94,7 @@ namespace OpenSim.Region.Framework.Scenes
94 set { m_velocity = value; } 94 set { m_velocity = value; }
95 } 95 }
96 96
97 protected Quaternion m_rotation = new Quaternion(0f, 0f, 1f, 0f); 97 protected Quaternion m_rotation;
98 98
99 public virtual Quaternion Rotation 99 public virtual Quaternion Rotation
100 { 100 {
@@ -102,6 +102,14 @@ namespace OpenSim.Region.Framework.Scenes
102 set { m_rotation = value; } 102 set { m_rotation = value; }
103 } 103 }
104 104
105 protected Vector3 m_scale;
106
107 public virtual Vector3 Scale
108 {
109 get { return m_scale; }
110 set { m_scale = value; }
111 }
112
105 protected uint m_localId; 113 protected uint m_localId;
106 114
107 public virtual uint LocalId 115 public virtual uint LocalId
@@ -115,13 +123,9 @@ namespace OpenSim.Region.Framework.Scenes
115 /// </summary> 123 /// </summary>
116 public EntityBase() 124 public EntityBase()
117 { 125 {
118 m_uuid = UUID.Zero; 126 m_rotation = Quaternion.Identity;
119 127 m_scale = Vector3.One;
120 m_pos = Vector3.Zero;
121 m_velocity = Vector3.Zero;
122 Rotation = Quaternion.Identity;
123 m_name = "(basic entity)"; 128 m_name = "(basic entity)";
124 m_rotationalvelocity = Vector3.Zero;
125 } 129 }
126 130
127 /// <summary> 131 /// <summary>
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index f8db354..0d1cb81 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -2305,8 +2305,8 @@ namespace OpenSim.Region.Framework.Scenes
2305 "to avatar {0} at position {1}", 2305 "to avatar {0} at position {1}",
2306 sp.UUID.ToString(), grp.AbsolutePosition); 2306 sp.UUID.ToString(), grp.AbsolutePosition);
2307 AttachObject(sp.ControllingClient, 2307 AttachObject(sp.ControllingClient,
2308 grp.LocalId, (uint)0, 2308 grp.LocalId, 0,
2309 grp.GroupRotation, 2309 grp.Rotation,
2310 grp.AbsolutePosition, false); 2310 grp.AbsolutePosition, false);
2311 RootPrim.RemFlag(PrimFlags.TemporaryOnRez); 2311 RootPrim.RemFlag(PrimFlags.TemporaryOnRez);
2312 grp.SendGroupFullUpdate(); 2312 grp.SendGroupFullUpdate();
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
index 5c0024f..57b7e70 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
@@ -204,9 +204,22 @@ namespace OpenSim.Region.Framework.Scenes
204 get { return m_parts.Count; } 204 get { return m_parts.Count; }
205 } 205 }
206 206
207 public Quaternion GroupRotation 207 public override Quaternion Rotation
208 { 208 {
209 get { return m_rootPart.RotationOffset; } 209 get { return m_rootPart.RotationOffset; }
210 set { m_rootPart.RotationOffset = value; }
211 }
212
213 public override Vector3 Scale
214 {
215 get { return m_rootPart.Scale; }
216 set { m_rootPart.Scale = value; }
217 }
218
219 public override Vector3 Velocity
220 {
221 get { return m_rootPart.Velocity; }
222 set { m_rootPart.Velocity = value; }
210 } 223 }
211 224
212 public UUID GroupID 225 public UUID GroupID
@@ -528,7 +541,7 @@ namespace OpenSim.Region.Framework.Scenes
528 // Temporary commented to stop compiler warning 541 // Temporary commented to stop compiler warning
529 //Vector3 partPosition = 542 //Vector3 partPosition =
530 // new Vector3(part.AbsolutePosition.X, part.AbsolutePosition.Y, part.AbsolutePosition.Z); 543 // new Vector3(part.AbsolutePosition.X, part.AbsolutePosition.Y, part.AbsolutePosition.Z);
531 Quaternion parentrotation = GroupRotation; 544 Quaternion parentrotation = Rotation;
532 545
533 // Telling the prim to raytrace. 546 // Telling the prim to raytrace.
534 //EntityIntersection inter = part.TestIntersection(hRay, parentrotation); 547 //EntityIntersection inter = part.TestIntersection(hRay, parentrotation);
@@ -1871,14 +1884,17 @@ namespace OpenSim.Region.Framework.Scenes
1871 1884
1872 checkAtTargets(); 1885 checkAtTargets();
1873 1886
1874 if (UsePhysics && ((Math.Abs(lastPhysGroupRot.W - GroupRotation.W) > 0.1) 1887 Quaternion rot = Rotation;
1875 || (Math.Abs(lastPhysGroupRot.X - GroupRotation.X) > 0.1) 1888
1876 || (Math.Abs(lastPhysGroupRot.Y - GroupRotation.Y) > 0.1) 1889 if (UsePhysics &&
1877 || (Math.Abs(lastPhysGroupRot.Z - GroupRotation.Z) > 0.1))) 1890 ((Math.Abs(lastPhysGroupRot.W - rot.W) > 0.1f)
1891 || (Math.Abs(lastPhysGroupRot.X - rot.X) > 0.1f)
1892 || (Math.Abs(lastPhysGroupRot.Y - rot.Y) > 0.1f)
1893 || (Math.Abs(lastPhysGroupRot.Z - rot.Z) > 0.1f)))
1878 { 1894 {
1879 m_rootPart.UpdateFlag = 1; 1895 m_rootPart.UpdateFlag = 1;
1880 1896
1881 lastPhysGroupRot = GroupRotation; 1897 lastPhysGroupRot = rot;
1882 } 1898 }
1883 1899
1884 foreach (SceneObjectPart part in m_parts.Values) 1900 foreach (SceneObjectPart part in m_parts.Values)