* Adds llSetStatus(STATUS_ROTATE_X | STATUS_ROTATE_Y | STATUS_ROTATE_Z,TF)

* Currently if you apply that to only one or two axis you get unpredictable and sometimes explosive results.
* Three axis works well enough to play with it anyway.   More work is needed here.
* Fixed an incorrectly named method in ODE.NET
This commit is contained in:
Teravus Ovares
2008-04-23 15:32:19 +00:00
parent d52fc2dc1a
commit 2a3bdde0fa
12 changed files with 252 additions and 12 deletions

View File

@@ -104,6 +104,7 @@ namespace OpenSim.Region.Environment.Scenes
private Vector3 m_sitTargetPosition = new Vector3(0, 0, 0);
private Quaternion m_sitTargetOrientation = new Quaternion(0, 0, 0, 1);
public LLUUID m_sitTargetAvatar = LLUUID.Zero;
[XmlIgnore] public PhysicsVector m_rotationAxis = new PhysicsVector(1f,1f,1f);
#region Permissions
@@ -1290,6 +1291,21 @@ namespace OpenSim.Region.Environment.Scenes
PhysActor.Buoyancy = fvalue;
}
}
public void SetAxisRotation(int axis, int rotate)
{
if (m_parentGroup != null)
{
m_parentGroup.SetAxisRotation(axis, rotate);
}
}
public void SetPhysicsAxisRotation()
{
PhysActor.LockAngularMotion(m_rotationAxis);
m_parentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(PhysActor);
}
public void SetFloatOnWater(int floatYN)
{
@@ -1306,6 +1322,7 @@ namespace OpenSim.Region.Environment.Scenes
}
}
public LLVector3 GetSitTargetPositionLL()
{