aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes
diff options
context:
space:
mode:
authorUbitUmarov2015-10-20 19:00:26 +0100
committerUbitUmarov2015-10-20 19:00:26 +0100
commit0045398324debd035c6b3c362a82497852585807 (patch)
tree2fef86b777913a9cc0c1803cadb35b1e01663941 /OpenSim/Region/Framework/Scenes
parent add axis locks to sop serializer. Now they are also saved to inventory (diff)
downloadopensim-SC-0045398324debd035c6b3c362a82497852585807.zip
opensim-SC-0045398324debd035c6b3c362a82497852585807.tar.gz
opensim-SC-0045398324debd035c6b3c362a82497852585807.tar.bz2
opensim-SC-0045398324debd035c6b3c362a82497852585807.tar.xz
move ugly convertion of axis locks 3 bit flags to a wasted vector3 down to PhysicsActor. Let engines use LockAngularMotion with either Vector3 argument or byte
Diffstat (limited to 'OpenSim/Region/Framework/Scenes')
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectPart.cs22
1 files changed, 2 insertions, 20 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
index 4d193ba..fed9eaf 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
@@ -3861,16 +3861,7 @@ SendFullUpdateToClient(remoteClient, Position) ignores position parameter
3861 3861
3862 if (pa != null) 3862 if (pa != null)
3863 { 3863 {
3864 // physics should also get a byte and not a Vector3 TODO 3864 pa.LockAngularMotion(RotationAxisLocks);
3865 Vector3 lrRotationAxis = Vector3.One;
3866 if((RotationAxisLocks & (byte)SceneObjectGroup.axisSelect.STATUS_ROTATE_X) != 0 )
3867 lrRotationAxis.X = 0f;
3868 if((RotationAxisLocks & (byte)SceneObjectGroup.axisSelect.STATUS_ROTATE_Y) != 0 )
3869 lrRotationAxis.Y = 0f;
3870 if((RotationAxisLocks & (byte)SceneObjectGroup.axisSelect.STATUS_ROTATE_Z) != 0 )
3871 lrRotationAxis.Z = 0f;
3872
3873 pa.LockAngularMotion(lrRotationAxis);
3874 ParentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(pa); 3865 ParentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(pa);
3875 } 3866 }
3876 } 3867 }
@@ -4882,16 +4873,7 @@ SendFullUpdateToClient(remoteClient, Position) ignores position parameter
4882 4873
4883 if(LocalId == ParentGroup.RootPart.LocalId) 4874 if(LocalId == ParentGroup.RootPart.LocalId)
4884 { 4875 {
4885 // ugly code: physics should also get a byte and not a Vector3 TODO 4876 pa.LockAngularMotion(RotationAxisLocks);
4886 Vector3 lrRotationAxis = Vector3.One;
4887 if((RotationAxisLocks & (byte)SceneObjectGroup.axisSelect.STATUS_ROTATE_X) != 0 )
4888 lrRotationAxis.X = 0f;
4889 if((RotationAxisLocks & (byte)SceneObjectGroup.axisSelect.STATUS_ROTATE_Y) != 0 )
4890 lrRotationAxis.Y = 0f;
4891 if((RotationAxisLocks & (byte)SceneObjectGroup.axisSelect.STATUS_ROTATE_Z) != 0 )
4892 lrRotationAxis.Z = 0f;
4893
4894 pa.LockAngularMotion(lrRotationAxis);
4895 } 4877 }
4896 4878
4897 if (VolumeDetectActive) // change if not the default only 4879 if (VolumeDetectActive) // change if not the default only