Experimental change of PhysicsVector to Vector3. Untested

This commit is contained in:
John Hurliman
2009-10-25 23:16:12 -07:00
parent b6651ce790
commit d199767e69
32 changed files with 867 additions and 879 deletions

View File

@@ -52,14 +52,14 @@ namespace OpenSim.Region.Physics.BulletXPlugin
//private static readonly log4net.ILog m_log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
//Vector3
public static Vector3 PhysicsVectorToXnaVector3(PhysicsVector physicsVector)
public static Vector3 PhysicsVectorToXnaVector3(OpenMetaverse.Vector3 physicsVector)
{
return new Vector3(physicsVector.X, physicsVector.Y, physicsVector.Z);
}
public static PhysicsVector XnaVector3ToPhysicsVector(Vector3 xnaVector3)
public static OpenMetaverse.Vector3 XnaVector3ToPhysicsVector(Vector3 xnaVector3)
{
return new PhysicsVector(xnaVector3.X, xnaVector3.Y, xnaVector3.Z);
return new OpenMetaverse.Vector3(xnaVector3.X, xnaVector3.Y, xnaVector3.Z);
}
//Quaternion
@@ -349,7 +349,7 @@ namespace OpenSim.Region.Physics.BulletXPlugin
vertexBase = new Vector3[iVertexCount];
for (int i = 0; i < iVertexCount; i++)
{
PhysicsVector v = mesh.getVertexList()[i];
OpenMetaverse.Vector3 v = mesh.getVertexList()[i];
if (v != null) // Note, null has special meaning. See meshing code for details
vertexBase[i] = BulletXMaths.PhysicsVectorToXnaVector3(v);
else
@@ -392,7 +392,7 @@ namespace OpenSim.Region.Physics.BulletXPlugin
private int preCheckCollision(BulletXActor actA, Vector3 vNormal, float fDist)
{
float fstartSide;
PhysicsVector v = actA.Position;
OpenMetaverse.Vector3 v = actA.Position;
Vector3 v3 = BulletXMaths.PhysicsVectorToXnaVector3(v);
fstartSide = Vector3.Dot(vNormal, v3) - fDist;
@@ -404,7 +404,7 @@ namespace OpenSim.Region.Physics.BulletXPlugin
{
Vector3 perPlaneNormal;
float fPerPlaneDist;
PhysicsVector v = actA.Position;
OpenMetaverse.Vector3 v = actA.Position;
Vector3 v3 = BulletXMaths.PhysicsVectorToXnaVector3(v);
//check AB
Vector3 v1;
@@ -573,9 +573,9 @@ namespace OpenSim.Region.Physics.BulletXPlugin
}
public override PhysicsActor AddAvatar(string avName, PhysicsVector position, PhysicsVector size, bool isFlying)
public override PhysicsActor AddAvatar(string avName, OpenMetaverse.Vector3 position, OpenMetaverse.Vector3 size, bool isFlying)
{
PhysicsVector pos = new PhysicsVector();
OpenMetaverse.Vector3 pos = OpenMetaverse.Vector3.Zero;
pos.X = position.X;
pos.Y = position.Y;
pos.Z = position.Z + 20;
@@ -611,14 +611,14 @@ namespace OpenSim.Region.Physics.BulletXPlugin
}
}
public override PhysicsActor AddPrimShape(string primName, PrimitiveBaseShape pbs, PhysicsVector position,
PhysicsVector size, OpenMetaverse.Quaternion rotation)
public override PhysicsActor AddPrimShape(string primName, PrimitiveBaseShape pbs, OpenMetaverse.Vector3 position,
OpenMetaverse.Vector3 size, OpenMetaverse.Quaternion rotation)
{
return AddPrimShape(primName, pbs, position, size, rotation, false);
}
public override PhysicsActor AddPrimShape(string primName, PrimitiveBaseShape pbs, PhysicsVector position,
PhysicsVector size, OpenMetaverse.Quaternion rotation, bool isPhysical)
public override PhysicsActor AddPrimShape(string primName, PrimitiveBaseShape pbs, OpenMetaverse.Vector3 position,
OpenMetaverse.Vector3 size, OpenMetaverse.Quaternion rotation, bool isPhysical)
{
PhysicsActor result;
@@ -645,7 +645,7 @@ namespace OpenSim.Region.Physics.BulletXPlugin
return result;
}
public PhysicsActor AddPrim(String name, PhysicsVector position, PhysicsVector size, OpenMetaverse.Quaternion rotation,
public PhysicsActor AddPrim(String name, OpenMetaverse.Vector3 position, OpenMetaverse.Vector3 size, OpenMetaverse.Quaternion rotation,
IMesh mesh, PrimitiveBaseShape pbs, bool isPhysical)
{
BulletXPrim newPrim = null;
@@ -879,12 +879,12 @@ namespace OpenSim.Region.Physics.BulletXPlugin
{
protected bool flying = false;
protected bool _physical = false;
protected PhysicsVector _position;
protected PhysicsVector _velocity;
protected PhysicsVector _size;
protected PhysicsVector _acceleration;
protected OpenMetaverse.Vector3 _position;
protected OpenMetaverse.Vector3 _velocity;
protected OpenMetaverse.Vector3 _size;
protected OpenMetaverse.Vector3 _acceleration;
protected OpenMetaverse.Quaternion _orientation;
protected PhysicsVector m_rotationalVelocity = PhysicsVector.Zero;
protected OpenMetaverse.Vector3 m_rotationalVelocity;
protected RigidBody rigidBody;
protected int m_PhysicsActorType;
private Boolean iscolliding = false;
@@ -900,7 +900,7 @@ namespace OpenSim.Region.Physics.BulletXPlugin
get { return false; }
}
public override PhysicsVector Position
public override OpenMetaverse.Vector3 Position
{
get { return _position; }
set
@@ -913,13 +913,13 @@ namespace OpenSim.Region.Physics.BulletXPlugin
}
}
public override PhysicsVector RotationalVelocity
public override OpenMetaverse.Vector3 RotationalVelocity
{
get { return m_rotationalVelocity; }
set { m_rotationalVelocity = value; }
}
public override PhysicsVector Velocity
public override OpenMetaverse.Vector3 Velocity
{
get { return _velocity; }
set
@@ -934,7 +934,7 @@ namespace OpenSim.Region.Physics.BulletXPlugin
}
else
{
_velocity = new PhysicsVector();
_velocity = OpenMetaverse.Vector3.Zero;
}
}
}
@@ -944,7 +944,7 @@ namespace OpenSim.Region.Physics.BulletXPlugin
get { return 0f; }
set { }
}
public override PhysicsVector Size
public override OpenMetaverse.Vector3 Size
{
get { return _size; }
set
@@ -956,9 +956,9 @@ namespace OpenSim.Region.Physics.BulletXPlugin
}
}
public override PhysicsVector Force
public override OpenMetaverse.Vector3 Force
{
get { return PhysicsVector.Zero; }
get { return OpenMetaverse.Vector3.Zero; }
set { return; }
}
@@ -973,7 +973,7 @@ namespace OpenSim.Region.Physics.BulletXPlugin
}
public override void VehicleVectorParam(int param, PhysicsVector value)
public override void VehicleVectorParam(int param, OpenMetaverse.Vector3 value)
{
}
@@ -988,14 +988,14 @@ namespace OpenSim.Region.Physics.BulletXPlugin
}
public override PhysicsVector CenterOfMass
public override OpenMetaverse.Vector3 CenterOfMass
{
get { return PhysicsVector.Zero; }
get { return OpenMetaverse.Vector3.Zero; }
}
public override PhysicsVector GeometricCenter
public override OpenMetaverse.Vector3 GeometricCenter
{
get { return PhysicsVector.Zero; }
get { return OpenMetaverse.Vector3.Zero; }
}
public override PrimitiveBaseShape Shape
@@ -1009,7 +1009,7 @@ namespace OpenSim.Region.Physics.BulletXPlugin
set { return; }
}
public override PhysicsVector Acceleration
public override OpenMetaverse.Vector3 Acceleration
{
get { return _acceleration; }
}
@@ -1036,7 +1036,7 @@ namespace OpenSim.Region.Physics.BulletXPlugin
}
public override void LockAngularMotion(PhysicsVector axis)
public override void LockAngularMotion(OpenMetaverse.Vector3 axis)
{
}
@@ -1129,7 +1129,7 @@ namespace OpenSim.Region.Physics.BulletXPlugin
set { return; }
}
public virtual void SetAcceleration(PhysicsVector accel)
public virtual void SetAcceleration(OpenMetaverse.Vector3 accel)
{
lock (BulletXScene.BulletXLock)
{
@@ -1143,19 +1143,19 @@ namespace OpenSim.Region.Physics.BulletXPlugin
set { }
}
public override void AddForce(PhysicsVector force, bool pushforce)
public override void AddForce(OpenMetaverse.Vector3 force, bool pushforce)
{
}
public override PhysicsVector Torque
public override OpenMetaverse.Vector3 Torque
{
get { return PhysicsVector.Zero; }
get { return OpenMetaverse.Vector3.Zero; }
set { return; }
}
public override void AddAngularForce(PhysicsVector force, bool pushforce)
public override void AddAngularForce(OpenMetaverse.Vector3 force, bool pushforce)
{
}
public override void SetMomentum(PhysicsVector momentum)
public override void SetMomentum(OpenMetaverse.Vector3 momentum)
{
}
@@ -1174,7 +1174,7 @@ namespace OpenSim.Region.Physics.BulletXPlugin
Translate(_position);
}
protected internal void Translate(PhysicsVector _newPos)
protected internal void Translate(OpenMetaverse.Vector3 _newPos)
{
Vector3 _translation;
_translation = BulletXMaths.PhysicsVectorToXnaVector3(_newPos) - rigidBody.CenterOfMassPosition;
@@ -1186,7 +1186,7 @@ namespace OpenSim.Region.Physics.BulletXPlugin
Speed(_velocity);
}
protected internal void Speed(PhysicsVector _newSpeed)
protected internal void Speed(OpenMetaverse.Vector3 _newSpeed)
{
Vector3 _speed;
_speed = BulletXMaths.PhysicsVectorToXnaVector3(_newSpeed);
@@ -1212,7 +1212,7 @@ namespace OpenSim.Region.Physics.BulletXPlugin
ReSize(_size);
}
protected internal virtual void ReSize(PhysicsVector _newSize)
protected internal virtual void ReSize(OpenMetaverse.Vector3 _newSize)
{
}
@@ -1227,7 +1227,7 @@ namespace OpenSim.Region.Physics.BulletXPlugin
{
}
public override PhysicsVector PIDTarget { set { return; } }
public override OpenMetaverse.Vector3 PIDTarget { set { return; } }
public override bool PIDActive { set { return; } }
public override float PIDTau { set { return; } }
@@ -1256,19 +1256,19 @@ namespace OpenSim.Region.Physics.BulletXPlugin
/// </summary>
public class BulletXCharacter : BulletXActor
{
public BulletXCharacter(BulletXScene parent_scene, PhysicsVector pos)
public BulletXCharacter(BulletXScene parent_scene, OpenMetaverse.Vector3 pos)
: this(String.Empty, parent_scene, pos)
{
}
public BulletXCharacter(String avName, BulletXScene parent_scene, PhysicsVector pos)
: this(avName, parent_scene, pos, new PhysicsVector(), new PhysicsVector(), new PhysicsVector(),
public BulletXCharacter(String avName, BulletXScene parent_scene, OpenMetaverse.Vector3 pos)
: this(avName, parent_scene, pos, OpenMetaverse.Vector3.Zero, OpenMetaverse.Vector3.Zero, OpenMetaverse.Vector3.Zero,
OpenMetaverse.Quaternion.Identity)
{
}
public BulletXCharacter(String avName, BulletXScene parent_scene, PhysicsVector pos, PhysicsVector velocity,
PhysicsVector size, PhysicsVector acceleration, OpenMetaverse.Quaternion orientation)
public BulletXCharacter(String avName, BulletXScene parent_scene, OpenMetaverse.Vector3 pos, OpenMetaverse.Vector3 velocity,
OpenMetaverse.Vector3 size, OpenMetaverse.Vector3 acceleration, OpenMetaverse.Quaternion orientation)
: base(avName)
{
//This fields will be removed. They're temporal
@@ -1323,25 +1323,25 @@ namespace OpenSim.Region.Physics.BulletXPlugin
set { return; }
}
public override PhysicsVector Position
public override OpenMetaverse.Vector3 Position
{
get { return base.Position; }
set { base.Position = value; }
}
public override PhysicsVector Velocity
public override OpenMetaverse.Vector3 Velocity
{
get { return base.Velocity; }
set { base.Velocity = value; }
}
public override PhysicsVector Size
public override OpenMetaverse.Vector3 Size
{
get { return base.Size; }
set { base.Size = value; }
}
public override PhysicsVector Acceleration
public override OpenMetaverse.Vector3 Acceleration
{
get { return base.Acceleration; }
}
@@ -1370,17 +1370,17 @@ namespace OpenSim.Region.Physics.BulletXPlugin
set { base.Kinematic = value; }
}
public override void SetAcceleration(PhysicsVector accel)
public override void SetAcceleration(OpenMetaverse.Vector3 accel)
{
base.SetAcceleration(accel);
}
public override void AddForce(PhysicsVector force, bool pushforce)
public override void AddForce(OpenMetaverse.Vector3 force, bool pushforce)
{
base.AddForce(force, pushforce);
}
public override void SetMomentum(PhysicsVector momentum)
public override void SetMomentum(OpenMetaverse.Vector3 momentum)
{
base.SetMomentum(momentum);
}
@@ -1430,7 +1430,7 @@ namespace OpenSim.Region.Physics.BulletXPlugin
m.Translation = v3;
rigidBody.WorldTransform = m;
//When an Avie touch the ground it's vertical velocity it's reduced to ZERO
Speed(new PhysicsVector(rigidBody.LinearVelocity.X, rigidBody.LinearVelocity.Y, 0.0f));
Speed(new OpenMetaverse.Vector3(rigidBody.LinearVelocity.X, rigidBody.LinearVelocity.Y, 0.0f));
}
}
@@ -1452,7 +1452,7 @@ namespace OpenSim.Region.Physics.BulletXPlugin
//For now all prims have the same density, all prims are made of water. Be water my friend! :D
private const float _density = 1000.0f;
private BulletXScene _parent_scene;
private PhysicsVector m_prev_position = new PhysicsVector(0, 0, 0);
private OpenMetaverse.Vector3 m_prev_position;
private bool m_lastUpdateSent = false;
//added by jed zhu
private IMesh _mesh;
@@ -1460,17 +1460,17 @@ namespace OpenSim.Region.Physics.BulletXPlugin
public BulletXPrim(String primName, BulletXScene parent_scene, PhysicsVector pos, PhysicsVector size,
public BulletXPrim(String primName, BulletXScene parent_scene, OpenMetaverse.Vector3 pos, OpenMetaverse.Vector3 size,
OpenMetaverse.Quaternion rotation, IMesh mesh, PrimitiveBaseShape pbs, bool isPhysical)
: this(
primName, parent_scene, pos, new PhysicsVector(), size, new PhysicsVector(), rotation, mesh, pbs,
primName, parent_scene, pos, OpenMetaverse.Vector3.Zero, size, OpenMetaverse.Vector3.Zero, rotation, mesh, pbs,
isPhysical)
{
}
public BulletXPrim(String primName, BulletXScene parent_scene, PhysicsVector pos, PhysicsVector velocity,
PhysicsVector size,
PhysicsVector acceleration, OpenMetaverse.Quaternion rotation, IMesh mesh, PrimitiveBaseShape pbs,
public BulletXPrim(String primName, BulletXScene parent_scene, OpenMetaverse.Vector3 pos, OpenMetaverse.Vector3 velocity,
OpenMetaverse.Vector3 size,
OpenMetaverse.Vector3 acceleration, OpenMetaverse.Quaternion rotation, IMesh mesh, PrimitiveBaseShape pbs,
bool isPhysical)
: base(primName)
{
@@ -1481,7 +1481,7 @@ namespace OpenSim.Region.Physics.BulletXPlugin
_position = pos;
_physical = isPhysical;
_velocity = _physical ? velocity : new PhysicsVector();
_velocity = _physical ? velocity : OpenMetaverse.Vector3.Zero;
_size = size;
_acceleration = acceleration;
_orientation = rotation;
@@ -1497,19 +1497,19 @@ namespace OpenSim.Region.Physics.BulletXPlugin
set { return; }
}
public override PhysicsVector Position
public override OpenMetaverse.Vector3 Position
{
get { return base.Position; }
set { base.Position = value; }
}
public override PhysicsVector Velocity
public override OpenMetaverse.Vector3 Velocity
{
get { return base.Velocity; }
set { base.Velocity = value; }
}
public override PhysicsVector Size
public override OpenMetaverse.Vector3 Size
{
get { return _size; }
set
@@ -1522,7 +1522,7 @@ namespace OpenSim.Region.Physics.BulletXPlugin
}
}
public override PhysicsVector Acceleration
public override OpenMetaverse.Vector3 Acceleration
{
get { return base.Acceleration; }
}
@@ -1583,7 +1583,7 @@ namespace OpenSim.Region.Physics.BulletXPlugin
set { base.Kinematic = value; }
}
public override void SetAcceleration(PhysicsVector accel)
public override void SetAcceleration(OpenMetaverse.Vector3 accel)
{
lock (BulletXScene.BulletXLock)
{
@@ -1591,12 +1591,12 @@ namespace OpenSim.Region.Physics.BulletXPlugin
}
}
public override void AddForce(PhysicsVector force, bool pushforce)
public override void AddForce(OpenMetaverse.Vector3 force, bool pushforce)
{
base.AddForce(force,pushforce);
}
public override void SetMomentum(PhysicsVector momentum)
public override void SetMomentum(OpenMetaverse.Vector3 momentum)
{
base.SetMomentum(momentum);
}
@@ -1613,7 +1613,7 @@ namespace OpenSim.Region.Physics.BulletXPlugin
//When a Prim touch the ground it's vertical velocity it's reduced to ZERO
//Static objects don't have linear velocity
if (_physical)
Speed(new PhysicsVector(rigidBody.LinearVelocity.X, rigidBody.LinearVelocity.Y, 0.0f));
Speed(new OpenMetaverse.Vector3(rigidBody.LinearVelocity.X, rigidBody.LinearVelocity.Y, 0.0f));
}
}
@@ -1632,7 +1632,7 @@ namespace OpenSim.Region.Physics.BulletXPlugin
{
if (!m_lastUpdateSent)
{
_velocity = new PhysicsVector(0, 0, 0);
_velocity = OpenMetaverse.Vector3.Zero;
base.ScheduleTerseUpdate();
m_lastUpdateSent = true;
}
@@ -1654,8 +1654,8 @@ namespace OpenSim.Region.Physics.BulletXPlugin
#region Methods for updating values of RigidBody
protected internal void CreateRigidBody(BulletXScene parent_scene, IMesh mesh, PhysicsVector pos,
PhysicsVector size)
protected internal void CreateRigidBody(BulletXScene parent_scene, IMesh mesh, OpenMetaverse.Vector3 pos,
OpenMetaverse.Vector3 size)
{
//For RigidBody Constructor. The next values might change
float _linearDamping = 0.0f;
@@ -1683,7 +1683,7 @@ namespace OpenSim.Region.Physics.BulletXPlugin
Vector3[] v3Vertices = new Vector3[iVertexCount];
for (int i = 0; i < iVertexCount; i++)
{
PhysicsVector v = mesh.getVertexList()[i];
OpenMetaverse.Vector3 v = mesh.getVertexList()[i];
if (v != null) // Note, null has special meaning. See meshing code for details
v3Vertices[i] = BulletXMaths.PhysicsVectorToXnaVector3(v);
else
@@ -1709,7 +1709,7 @@ namespace OpenSim.Region.Physics.BulletXPlugin
}
}
protected internal void ReCreateRigidBody(PhysicsVector size)
protected internal void ReCreateRigidBody(OpenMetaverse.Vector3 size)
{
//There is a bug when trying to remove a rigidBody that is colliding with something..
try
@@ -1729,7 +1729,7 @@ namespace OpenSim.Region.Physics.BulletXPlugin
GC.Collect();
}
protected internal override void ReSize(PhysicsVector _newSize)
protected internal override void ReSize(OpenMetaverse.Vector3 _newSize)
{
//I wonder to know how to resize with a simple instruction in BulletX. It seems that for now there isn't
//so i have to do it manually. That's recreating rigidbody
@@ -1744,8 +1744,8 @@ namespace OpenSim.Region.Physics.BulletXPlugin
/// </summary>
internal class BulletXPlanet
{
private PhysicsVector _staticPosition;
// private PhysicsVector _staticVelocity;
private OpenMetaverse.Vector3 _staticPosition;
// private Vector3 _staticVelocity;
// private OpenMetaverse.Quaternion _staticOrientation;
private float _mass;
// private BulletXScene _parentscene;
@@ -1759,7 +1759,7 @@ namespace OpenSim.Region.Physics.BulletXPlugin
internal BulletXPlanet(BulletXScene parent_scene, float[] heightField)
{
_staticPosition = new PhysicsVector(BulletXScene.MaxXY/2, BulletXScene.MaxXY/2, 0);
_staticPosition = new OpenMetaverse.Vector3(BulletXScene.MaxXY / 2, BulletXScene.MaxXY / 2, 0);
// _staticVelocity = new PhysicsVector();
// _staticOrientation = OpenMetaverse.Quaternion.Identity;
_mass = 0; //No active