More prep work for adding prims to ODE physics
parent
489803e6bc
commit
75f6c3d364
|
@ -203,6 +203,17 @@ namespace OpenSim.Region.Physics.BasicPhysicsPlugin
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override PhysicsVector Size
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return new PhysicsVector(0, 0, 0);
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public override PhysicsVector Velocity
|
public override PhysicsVector Velocity
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
|
|
|
@ -49,6 +49,12 @@ namespace OpenSim.Physics.Manager
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public abstract PhysicsVector Size
|
||||||
|
{
|
||||||
|
get;
|
||||||
|
set;
|
||||||
|
}
|
||||||
|
|
||||||
public abstract PhysicsVector Position
|
public abstract PhysicsVector Position
|
||||||
{
|
{
|
||||||
get;
|
get;
|
||||||
|
@ -103,6 +109,18 @@ namespace OpenSim.Physics.Manager
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override PhysicsVector Size
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return PhysicsVector.Zero;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public override PhysicsVector Velocity
|
public override PhysicsVector Velocity
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
|
|
|
@ -272,6 +272,18 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override PhysicsVector Size
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return new PhysicsVector(0,0,0);
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public override PhysicsVector Velocity
|
public override PhysicsVector Velocity
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
|
@ -355,15 +367,12 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||||
|
|
||||||
public class OdePrim : PhysicsActor
|
public class OdePrim : PhysicsActor
|
||||||
{
|
{
|
||||||
|
|
||||||
private PhysicsVector _position;
|
private PhysicsVector _position;
|
||||||
private PhysicsVector _velocity;
|
private PhysicsVector _velocity;
|
||||||
private PhysicsVector _size;
|
private PhysicsVector _size;
|
||||||
private PhysicsVector _acceleration;
|
private PhysicsVector _acceleration;
|
||||||
private Quaternion _orientation;
|
private Quaternion _orientation;
|
||||||
private IntPtr BoundingCapsule;
|
IntPtr prim_geom;
|
||||||
IntPtr capsule_geom;
|
|
||||||
d.Mass capsule_mass;
|
|
||||||
|
|
||||||
public OdePrim(OdeScene parent_scene, PhysicsVector pos, PhysicsVector size, Quaternion rotation)
|
public OdePrim(OdeScene parent_scene, PhysicsVector pos, PhysicsVector size, Quaternion rotation)
|
||||||
{
|
{
|
||||||
|
@ -371,14 +380,17 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||||
_position = pos;
|
_position = pos;
|
||||||
_size = size;
|
_size = size;
|
||||||
_acceleration = new PhysicsVector();
|
_acceleration = new PhysicsVector();
|
||||||
d.MassSetCapsule(out capsule_mass, 50.0f, 3, 0.5f, 2f);
|
|
||||||
capsule_geom = d.CreateBox(OdeScene.space, _size.X, _size.Y, _size.Z);
|
|
||||||
this.BoundingCapsule = d.BodyCreate(OdeScene.world);
|
|
||||||
d.BodySetMass(BoundingCapsule, ref capsule_mass);
|
|
||||||
d.BodySetPosition(BoundingCapsule, pos.X, pos.Y, pos.Z);
|
|
||||||
d.GeomSetBody(capsule_geom, BoundingCapsule);
|
|
||||||
_orientation = rotation;
|
_orientation = rotation;
|
||||||
|
prim_geom = d.CreateBox(OdeScene.space, _size.X, _size.Y, _size.Z);
|
||||||
|
d.GeomSetPosition(prim_geom, _position.X, _position.Y, _position.Z);
|
||||||
|
d.Quaternion myrot = new d.Quaternion();
|
||||||
|
myrot.W = rotation.w;
|
||||||
|
myrot.X = rotation.x;
|
||||||
|
myrot.Y = rotation.y;
|
||||||
|
myrot.Z = rotation.z;
|
||||||
|
d.GeomSetQuaternion(prim_geom, ref myrot);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool Flying
|
public override bool Flying
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
|
@ -387,29 +399,31 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||||
}
|
}
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override PhysicsVector Position
|
public override PhysicsVector Position
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
PhysicsVector pos = new PhysicsVector();
|
return _position;
|
||||||
// PhysicsVector vec = this._prim.Position;
|
|
||||||
//pos.X = vec.X;
|
|
||||||
//pos.Y = vec.Y;
|
|
||||||
//pos.Z = vec.Z;
|
|
||||||
return pos;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
/*PhysicsVector vec = value;
|
_position = value;
|
||||||
PhysicsVector pos = new PhysicsVector();
|
d.GeomSetPosition(prim_geom, _position.X, _position.Y, _position.Z);
|
||||||
pos.X = vec.X;
|
}
|
||||||
pos.Y = vec.Y;
|
}
|
||||||
pos.Z = vec.Z;
|
|
||||||
this._prim.Position = pos;*/
|
public override PhysicsVector Size
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return _size;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_size = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -430,11 +444,9 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
//return this._prim.Kinematic;
|
|
||||||
}
|
}
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
//this._prim.Kinematic = value;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -447,6 +459,12 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
_orientation = value;
|
_orientation = value;
|
||||||
|
d.Quaternion myrot = new d.Quaternion();
|
||||||
|
myrot.W = _orientation.w;
|
||||||
|
myrot.X = _orientation.x;
|
||||||
|
myrot.Y = _orientation.y;
|
||||||
|
myrot.Z = _orientation.z;
|
||||||
|
d.GeomSetQuaternion(prim_geom, ref myrot);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -456,8 +474,8 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||||
{
|
{
|
||||||
return _acceleration;
|
return _acceleration;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetAcceleration(PhysicsVector accel)
|
public void SetAcceleration(PhysicsVector accel)
|
||||||
{
|
{
|
||||||
this._acceleration = accel;
|
this._acceleration = accel;
|
||||||
|
@ -465,15 +483,10 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||||
|
|
||||||
public override void AddForce(PhysicsVector force)
|
public override void AddForce(PhysicsVector force)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void SetMomentum(PhysicsVector momentum)
|
public override void SetMomentum(PhysicsVector momentum)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -216,7 +216,17 @@ namespace OpenSim.Region.Physics.PhysXPlugin
|
||||||
this._character.Position = ps;
|
this._character.Position = ps;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override PhysicsVector Size
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return new PhysicsVector(0,0,0);
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
public override PhysicsVector Velocity
|
public override PhysicsVector Velocity
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
|
@ -353,7 +363,18 @@ namespace OpenSim.Region.Physics.PhysXPlugin
|
||||||
this._prim.Position = pos;
|
this._prim.Position = pos;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override PhysicsVector Size
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return new PhysicsVector(0, 0, 0);
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public override PhysicsVector Velocity
|
public override PhysicsVector Velocity
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
|
|
Loading…
Reference in New Issue