mirror of
https://github.com/opensim/opensim.git
synced 2026-08-08 02:05:34 +08:00
Experimental change of PhysicsVector to Vector3. Untested
This commit is contained in:
@@ -4606,7 +4606,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
{
|
||||
case PhysicsJointType.Ball:
|
||||
{
|
||||
PhysicsVector jointAnchor = PhysicsScene.GetJointAnchor(joint);
|
||||
Vector3 jointAnchor = PhysicsScene.GetJointAnchor(joint);
|
||||
Vector3 proxyPos = new Vector3(jointAnchor.X, jointAnchor.Y, jointAnchor.Z);
|
||||
jointProxyObject.ParentGroup.UpdateGroupPosition(proxyPos); // schedules the entire group for a terse update
|
||||
}
|
||||
@@ -4614,7 +4614,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
|
||||
case PhysicsJointType.Hinge:
|
||||
{
|
||||
PhysicsVector jointAnchor = PhysicsScene.GetJointAnchor(joint);
|
||||
Vector3 jointAnchor = PhysicsScene.GetJointAnchor(joint);
|
||||
|
||||
// Normally, we would just ask the physics scene to return the axis for the joint.
|
||||
// Unfortunately, ODE sometimes returns <0,0,0> for the joint axis, which should
|
||||
|
||||
@@ -1479,8 +1479,8 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
dupe.RootPart.PhysActor = m_scene.PhysicsScene.AddPrimShape(
|
||||
dupe.RootPart.Name,
|
||||
pbs,
|
||||
new PhysicsVector(dupe.RootPart.AbsolutePosition.X, dupe.RootPart.AbsolutePosition.Y, dupe.RootPart.AbsolutePosition.Z),
|
||||
new PhysicsVector(dupe.RootPart.Scale.X, dupe.RootPart.Scale.Y, dupe.RootPart.Scale.Z),
|
||||
dupe.RootPart.AbsolutePosition,
|
||||
dupe.RootPart.Scale,
|
||||
dupe.RootPart.RotationOffset,
|
||||
dupe.RootPart.PhysActor.IsPhysical);
|
||||
|
||||
@@ -1595,7 +1595,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
*/
|
||||
}
|
||||
|
||||
public void applyImpulse(PhysicsVector impulse)
|
||||
public void applyImpulse(Vector3 impulse)
|
||||
{
|
||||
// We check if rootpart is null here because scripts don't delete if you delete the host.
|
||||
// This means that unfortunately, we can pass a null physics actor to Simulate!
|
||||
@@ -1622,7 +1622,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
}
|
||||
}
|
||||
|
||||
public void applyAngularImpulse(PhysicsVector impulse)
|
||||
public void applyAngularImpulse(Vector3 impulse)
|
||||
{
|
||||
// We check if rootpart is null here because scripts don't delete if you delete the host.
|
||||
// This means that unfortunately, we can pass a null physics actor to Simulate!
|
||||
@@ -1641,7 +1641,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
}
|
||||
}
|
||||
|
||||
public void setAngularImpulse(PhysicsVector impulse)
|
||||
public void setAngularImpulse(Vector3 impulse)
|
||||
{
|
||||
// We check if rootpart is null here because scripts don't delete if you delete the host.
|
||||
// This means that unfortunately, we can pass a null physics actor to Simulate!
|
||||
@@ -1672,8 +1672,8 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
{
|
||||
if (!IsAttachment)
|
||||
{
|
||||
PhysicsVector torque = rootpart.PhysActor.Torque;
|
||||
return new Vector3(torque.X, torque.Y, torque.Z);
|
||||
Vector3 torque = rootpart.PhysActor.Torque;
|
||||
return torque;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1706,7 +1706,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
{
|
||||
if (rootpart.PhysActor != null)
|
||||
{
|
||||
rootpart.PhysActor.PIDTarget = new PhysicsVector(target.X, target.Y, target.Z);
|
||||
rootpart.PhysActor.PIDTarget = target;
|
||||
rootpart.PhysActor.PIDTau = tau;
|
||||
rootpart.PhysActor.PIDActive = true;
|
||||
}
|
||||
@@ -2374,7 +2374,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
if (m_rootPart.PhysActor.IsPhysical)
|
||||
{
|
||||
Vector3 llmoveforce = pos - AbsolutePosition;
|
||||
PhysicsVector grabforce = new PhysicsVector(llmoveforce.X, llmoveforce.Y, llmoveforce.Z);
|
||||
Vector3 grabforce = llmoveforce;
|
||||
grabforce = (grabforce / 10) * m_rootPart.PhysActor.Mass;
|
||||
m_rootPart.PhysActor.AddForce(grabforce,true);
|
||||
m_scene.PhysicsScene.AddPhysicsActorTaint(m_rootPart.PhysActor);
|
||||
@@ -2479,7 +2479,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
rotationAxis.Normalize();
|
||||
|
||||
//m_log.Error("SCENE OBJECT GROUP]: rotation axis is " + rotationAxis);
|
||||
PhysicsVector spinforce = new PhysicsVector(rotationAxis.X, rotationAxis.Y, rotationAxis.Z);
|
||||
Vector3 spinforce = new Vector3(rotationAxis.X, rotationAxis.Y, rotationAxis.Z);
|
||||
spinforce = (spinforce/8) * m_rootPart.PhysActor.Mass; // 8 is an arbitrary torque scaling factor
|
||||
m_rootPart.PhysActor.AddAngularForce(spinforce,true);
|
||||
m_scene.PhysicsScene.AddPhysicsActorTaint(m_rootPart.PhysActor);
|
||||
@@ -2706,8 +2706,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
if (scale.Z > m_scene.m_maxPhys)
|
||||
scale.Z = m_scene.m_maxPhys;
|
||||
}
|
||||
part.PhysActor.Size =
|
||||
new PhysicsVector(scale.X, scale.Y, scale.Z);
|
||||
part.PhysActor.Size = scale;
|
||||
m_scene.PhysicsScene.AddPhysicsActorTaint(part.PhysActor);
|
||||
}
|
||||
//if (part.UUID != m_rootPart.UUID)
|
||||
@@ -2851,8 +2850,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
|
||||
if (part.PhysActor != null)
|
||||
{
|
||||
part.PhysActor.Size =
|
||||
new PhysicsVector(prevScale.X, prevScale.Y, prevScale.Z);
|
||||
part.PhysActor.Size = prevScale;
|
||||
m_scene.PhysicsScene.AddPhysicsActorTaint(part.PhysActor);
|
||||
}
|
||||
|
||||
|
||||
@@ -167,9 +167,9 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
|
||||
[XmlIgnore]
|
||||
public uint AttachmentPoint;
|
||||
|
||||
|
||||
[XmlIgnore]
|
||||
public PhysicsVector RotationAxis = new PhysicsVector(1f, 1f, 1f);
|
||||
public Vector3 RotationAxis = Vector3.One;
|
||||
|
||||
[XmlIgnore]
|
||||
public bool VolumeDetectActive; // XmlIgnore set to avoid problems with persistance until I come to care for this
|
||||
@@ -537,13 +537,13 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
// Root prim actually goes at Position
|
||||
if (_parentID == 0)
|
||||
{
|
||||
PhysActor.Position = new PhysicsVector(value.X, value.Y, value.Z);
|
||||
PhysActor.Position = value;
|
||||
}
|
||||
else
|
||||
{
|
||||
// To move the child prim in respect to the group position and rotation we have to calculate
|
||||
Vector3 resultingposition = GetWorldPosition();
|
||||
PhysActor.Position = new PhysicsVector(resultingposition.X, resultingposition.Y, resultingposition.Z);
|
||||
PhysActor.Position = resultingposition;
|
||||
Quaternion resultingrot = GetWorldRotation();
|
||||
PhysActor.Orientation = resultingrot;
|
||||
}
|
||||
@@ -585,7 +585,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
if (_parentID != 0 && PhysActor != null)
|
||||
{
|
||||
Vector3 resultingposition = GetWorldPosition();
|
||||
PhysActor.Position = new PhysicsVector(resultingposition.X, resultingposition.Y, resultingposition.Z);
|
||||
PhysActor.Position = resultingposition;
|
||||
Quaternion resultingrot = GetWorldRotation();
|
||||
PhysActor.Orientation = resultingrot;
|
||||
|
||||
@@ -675,7 +675,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
{
|
||||
if (PhysActor.IsPhysical)
|
||||
{
|
||||
PhysActor.Velocity = new PhysicsVector(value.X, value.Y, value.Z);
|
||||
PhysActor.Velocity = value;
|
||||
m_parentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(PhysActor);
|
||||
}
|
||||
}
|
||||
@@ -817,7 +817,7 @@ if (m_shape != null) {
|
||||
{
|
||||
if (m_parentGroup.Scene.PhysicsScene != null)
|
||||
{
|
||||
PhysActor.Size = new PhysicsVector(m_shape.Scale.X, m_shape.Scale.Y, m_shape.Scale.Z);
|
||||
PhysActor.Size = m_shape.Scale;
|
||||
m_parentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(PhysActor);
|
||||
}
|
||||
}
|
||||
@@ -1225,7 +1225,7 @@ if (m_shape != null) {
|
||||
/// <param name="localGlobalTF">true for the local frame, false for the global frame</param>
|
||||
public void ApplyImpulse(Vector3 impulsei, bool localGlobalTF)
|
||||
{
|
||||
PhysicsVector impulse = new PhysicsVector(impulsei.X, impulsei.Y, impulsei.Z);
|
||||
Vector3 impulse = impulsei;
|
||||
|
||||
if (localGlobalTF)
|
||||
{
|
||||
@@ -1233,7 +1233,7 @@ if (m_shape != null) {
|
||||
Quaternion AXgrot = grot;
|
||||
Vector3 AXimpulsei = impulsei;
|
||||
Vector3 newimpulse = AXimpulsei * AXgrot;
|
||||
impulse = new PhysicsVector(newimpulse.X, newimpulse.Y, newimpulse.Z);
|
||||
impulse = newimpulse;
|
||||
}
|
||||
|
||||
if (m_parentGroup != null)
|
||||
@@ -1251,7 +1251,7 @@ if (m_shape != null) {
|
||||
/// <param name="localGlobalTF">true for the local frame, false for the global frame</param>
|
||||
public void ApplyAngularImpulse(Vector3 impulsei, bool localGlobalTF)
|
||||
{
|
||||
PhysicsVector impulse = new PhysicsVector(impulsei.X, impulsei.Y, impulsei.Z);
|
||||
Vector3 impulse = impulsei;
|
||||
|
||||
if (localGlobalTF)
|
||||
{
|
||||
@@ -1259,7 +1259,7 @@ if (m_shape != null) {
|
||||
Quaternion AXgrot = grot;
|
||||
Vector3 AXimpulsei = impulsei;
|
||||
Vector3 newimpulse = AXimpulsei * AXgrot;
|
||||
impulse = new PhysicsVector(newimpulse.X, newimpulse.Y, newimpulse.Z);
|
||||
impulse = newimpulse;
|
||||
}
|
||||
|
||||
if (m_parentGroup != null)
|
||||
@@ -1277,7 +1277,7 @@ if (m_shape != null) {
|
||||
/// <param name="localGlobalTF">true for the local frame, false for the global frame</param>
|
||||
public void SetAngularImpulse(Vector3 impulsei, bool localGlobalTF)
|
||||
{
|
||||
PhysicsVector impulse = new PhysicsVector(impulsei.X, impulsei.Y, impulsei.Z);
|
||||
Vector3 impulse = impulsei;
|
||||
|
||||
if (localGlobalTF)
|
||||
{
|
||||
@@ -1285,7 +1285,7 @@ if (m_shape != null) {
|
||||
Quaternion AXgrot = grot;
|
||||
Vector3 AXimpulsei = impulsei;
|
||||
Vector3 newimpulse = AXimpulsei * AXgrot;
|
||||
impulse = new PhysicsVector(newimpulse.X, newimpulse.Y, newimpulse.Z);
|
||||
impulse = newimpulse;
|
||||
}
|
||||
|
||||
if (m_parentGroup != null)
|
||||
@@ -1333,8 +1333,8 @@ if (m_shape != null) {
|
||||
PhysActor = m_parentGroup.Scene.PhysicsScene.AddPrimShape(
|
||||
Name,
|
||||
Shape,
|
||||
new PhysicsVector(AbsolutePosition.X, AbsolutePosition.Y, AbsolutePosition.Z),
|
||||
new PhysicsVector(Scale.X, Scale.Y, Scale.Z),
|
||||
AbsolutePosition,
|
||||
Scale,
|
||||
RotationOffset,
|
||||
RigidBody);
|
||||
|
||||
@@ -1523,7 +1523,7 @@ if (m_shape != null) {
|
||||
PhysicsJoint joint;
|
||||
|
||||
joint = m_parentGroup.Scene.PhysicsScene.RequestJointCreation(Name, jointType,
|
||||
new PhysicsVector(AbsolutePosition.X, AbsolutePosition.Y, AbsolutePosition.Z),
|
||||
AbsolutePosition,
|
||||
this.RotationOffset,
|
||||
Description,
|
||||
bodyNames,
|
||||
@@ -1708,12 +1708,12 @@ if (m_shape != null) {
|
||||
}
|
||||
}
|
||||
|
||||
public PhysicsVector GetForce()
|
||||
public Vector3 GetForce()
|
||||
{
|
||||
if (PhysActor != null)
|
||||
return PhysActor.Force;
|
||||
else
|
||||
return new PhysicsVector();
|
||||
return Vector3.Zero;
|
||||
}
|
||||
|
||||
public void GetProperties(IClientAPI client)
|
||||
@@ -2078,7 +2078,7 @@ if (m_shape != null) {
|
||||
}
|
||||
}
|
||||
|
||||
public void PhysicsOutOfBounds(PhysicsVector pos)
|
||||
public void PhysicsOutOfBounds(Vector3 pos)
|
||||
{
|
||||
m_log.Error("[PHYSICS]: Physical Object went out of bounds.");
|
||||
|
||||
@@ -2564,7 +2564,7 @@ if (m_shape != null) {
|
||||
}
|
||||
}
|
||||
|
||||
public void SetForce(PhysicsVector force)
|
||||
public void SetForce(Vector3 force)
|
||||
{
|
||||
if (PhysActor != null)
|
||||
{
|
||||
@@ -2588,7 +2588,7 @@ if (m_shape != null) {
|
||||
}
|
||||
}
|
||||
|
||||
public void SetVehicleVectorParam(int param, PhysicsVector value)
|
||||
public void SetVehicleVectorParam(int param, Vector3 value)
|
||||
{
|
||||
if (PhysActor != null)
|
||||
{
|
||||
@@ -3430,8 +3430,8 @@ if (m_shape != null) {
|
||||
PhysActor = m_parentGroup.Scene.PhysicsScene.AddPrimShape(
|
||||
Name,
|
||||
Shape,
|
||||
new PhysicsVector(AbsolutePosition.X, AbsolutePosition.Y, AbsolutePosition.Z),
|
||||
new PhysicsVector(Scale.X, Scale.Y, Scale.Z),
|
||||
AbsolutePosition,
|
||||
Scale,
|
||||
RotationOffset,
|
||||
UsePhysics);
|
||||
|
||||
|
||||
@@ -434,7 +434,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
{
|
||||
lock (m_scene.SyncRoot)
|
||||
{
|
||||
m_physicsActor.Position = new PhysicsVector(value.X, value.Y, value.Z);
|
||||
m_physicsActor.Position = value;
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
@@ -474,7 +474,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
{
|
||||
lock (m_scene.SyncRoot)
|
||||
{
|
||||
m_physicsActor.Velocity = new PhysicsVector(value.X, value.Y, value.Z);
|
||||
m_physicsActor.Velocity = value;
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
@@ -1046,7 +1046,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
m_avHeight = height;
|
||||
if (PhysicsActor != null && !IsChildAgent)
|
||||
{
|
||||
PhysicsVector SetSize = new PhysicsVector(0.45f, 0.6f, m_avHeight);
|
||||
Vector3 SetSize = new Vector3(0.45f, 0.6f, m_avHeight);
|
||||
PhysicsActor.Size = SetSize;
|
||||
}
|
||||
}
|
||||
@@ -3345,20 +3345,18 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
|
||||
PhysicsScene scene = m_scene.PhysicsScene;
|
||||
|
||||
PhysicsVector pVec =
|
||||
new PhysicsVector(AbsolutePosition.X, AbsolutePosition.Y,
|
||||
AbsolutePosition.Z);
|
||||
Vector3 pVec = AbsolutePosition;
|
||||
|
||||
// Old bug where the height was in centimeters instead of meters
|
||||
if (m_avHeight == 127.0f)
|
||||
{
|
||||
m_physicsActor = scene.AddAvatar(Firstname + "." + Lastname, pVec, new PhysicsVector(0, 0, 1.56f),
|
||||
m_physicsActor = scene.AddAvatar(Firstname + "." + Lastname, pVec, new Vector3(0f, 0f, 1.56f),
|
||||
isFlying);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_physicsActor = scene.AddAvatar(Firstname + "." + Lastname, pVec,
|
||||
new PhysicsVector(0, 0, m_avHeight), isFlying);
|
||||
new Vector3(0f, 0f, m_avHeight), isFlying);
|
||||
}
|
||||
scene.AddPhysicsActorTaint(m_physicsActor);
|
||||
//m_physicsActor.OnRequestTerseUpdate += SendTerseUpdateToAllClients;
|
||||
@@ -3369,7 +3367,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
|
||||
}
|
||||
|
||||
private void OutOfBoundsCall(PhysicsVector pos)
|
||||
private void OutOfBoundsCall(Vector3 pos)
|
||||
{
|
||||
//bool flying = m_physicsActor.Flying;
|
||||
//RemoveFromPhysicalScene();
|
||||
@@ -3592,7 +3590,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
*/
|
||||
}
|
||||
|
||||
internal void PushForce(PhysicsVector impulse)
|
||||
internal void PushForce(Vector3 impulse)
|
||||
{
|
||||
if (PhysicsActor != null)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user