aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs29
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectPart.cs9
2 files changed, 20 insertions, 18 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
index a4a33a4..48fce3d 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
@@ -4363,17 +4363,9 @@ namespace OpenSim.Region.Framework.Scenes
4363 4363
4364 internal void SetAxisRotation(int axis, int rotate10) 4364 internal void SetAxisRotation(int axis, int rotate10)
4365 { 4365 {
4366 bool setX = false; 4366 bool setX = ((axis & (int)SceneObjectGroup.axisSelect.STATUS_ROTATE_X) != 0);
4367 bool setY = false; 4367 bool setY = ((axis & (int)SceneObjectGroup.axisSelect.STATUS_ROTATE_Y) != 0);
4368 bool setZ = false; 4368 bool setZ = ((axis & (int)SceneObjectGroup.axisSelect.STATUS_ROTATE_Z) != 0);
4369
4370 int xaxis = 2;
4371 int yaxis = 4;
4372 int zaxis = 8;
4373
4374 setX = ((axis & xaxis) != 0) ? true : false;
4375 setY = ((axis & yaxis) != 0) ? true : false;
4376 setZ = ((axis & zaxis) != 0) ? true : false;
4377 4369
4378 float setval = (rotate10 > 0) ? 1f : 0f; 4370 float setval = (rotate10 > 0) ? 1f : 0f;
4379 4371
@@ -4388,6 +4380,21 @@ namespace OpenSim.Region.Framework.Scenes
4388 RootPart.SetPhysicsAxisRotation(); 4380 RootPart.SetPhysicsAxisRotation();
4389 } 4381 }
4390 4382
4383 public int GetAxisRotation(int axis)
4384 {
4385 Vector3 rotAxis = RootPart.RotationAxis;
4386
4387 // if multiple return the one with higher id
4388 if (axis == (int)SceneObjectGroup.axisSelect.STATUS_ROTATE_Z)
4389 return (int)rotAxis.Z;
4390 if (axis == (int)SceneObjectGroup.axisSelect.STATUS_ROTATE_Y)
4391 return (int)rotAxis.Y;
4392 if (axis == (int)SceneObjectGroup.axisSelect.STATUS_ROTATE_X)
4393 return (int)rotAxis.X;
4394
4395 return 0;
4396 }
4397
4391 public int registerRotTargetWaypoint(Quaternion target, float tolerance) 4398 public int registerRotTargetWaypoint(Quaternion target, float tolerance)
4392 { 4399 {
4393 scriptRotTarget waypoint = new scriptRotTarget(); 4400 scriptRotTarget waypoint = new scriptRotTarget();
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
index 43d522a..0ea4ab8 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
@@ -2516,13 +2516,8 @@ namespace OpenSim.Region.Framework.Scenes
2516 2516
2517 public int GetAxisRotation(int axis) 2517 public int GetAxisRotation(int axis)
2518 { 2518 {
2519 //Cannot use ScriptBaseClass constants as no referance to it currently. 2519 if (!ParentGroup.IsDeleted)
2520 if (axis == (int)SceneObjectGroup.axisSelect.STATUS_ROTATE_X) 2520 return ParentGroup.GetAxisRotation(axis);
2521 return STATUS_ROTATE_X;
2522 if (axis == (int)SceneObjectGroup.axisSelect.STATUS_ROTATE_Y)
2523 return STATUS_ROTATE_Y;
2524 if (axis == (int)SceneObjectGroup.axisSelect.STATUS_ROTATE_Z)
2525 return STATUS_ROTATE_Z;
2526 2521
2527 return 0; 2522 return 0;
2528 } 2523 }