aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Physics/Manager
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Physics/Manager/PhysicsActor.cs17
-rw-r--r--OpenSim/Region/Physics/Manager/PhysicsScene.cs17
2 files changed, 32 insertions, 2 deletions
diff --git a/OpenSim/Region/Physics/Manager/PhysicsActor.cs b/OpenSim/Region/Physics/Manager/PhysicsActor.cs
index be36be3..e2789d6 100644
--- a/OpenSim/Region/Physics/Manager/PhysicsActor.cs
+++ b/OpenSim/Region/Physics/Manager/PhysicsActor.cs
@@ -61,6 +61,7 @@ namespace OpenSim.Region.Physics.Manager
61 public Vector3 SurfaceNormal; 61 public Vector3 SurfaceNormal;
62 public float PenetrationDepth; 62 public float PenetrationDepth;
63 public float RelativeSpeed; 63 public float RelativeSpeed;
64 public bool CharacterFeet;
64 65
65 public ContactPoint(Vector3 position, Vector3 surfaceNormal, float penetrationDepth) 66 public ContactPoint(Vector3 position, Vector3 surfaceNormal, float penetrationDepth)
66 { 67 {
@@ -68,6 +69,16 @@ namespace OpenSim.Region.Physics.Manager
68 SurfaceNormal = surfaceNormal; 69 SurfaceNormal = surfaceNormal;
69 PenetrationDepth = penetrationDepth; 70 PenetrationDepth = penetrationDepth;
70 RelativeSpeed = 0f; // for now let this one be set explicity 71 RelativeSpeed = 0f; // for now let this one be set explicity
72 CharacterFeet = true; // keep other plugins work as before
73 }
74
75 public ContactPoint(Vector3 position, Vector3 surfaceNormal, float penetrationDepth, bool feet)
76 {
77 Position = position;
78 SurfaceNormal = surfaceNormal;
79 PenetrationDepth = penetrationDepth;
80 RelativeSpeed = 0f; // for now let this one be set explicity
81 CharacterFeet = feet; // keep other plugins work as before
71 } 82 }
72 } 83 }
73 84
@@ -173,6 +184,11 @@ namespace OpenSim.Region.Physics.Manager
173 184
174 public abstract Vector3 Size { get; set; } 185 public abstract Vector3 Size { get; set; }
175 186
187 public virtual void setAvatarSize(Vector3 size, float feetOffset)
188 {
189 Size = size;
190 }
191
176 public virtual bool Phantom { get; set; } 192 public virtual bool Phantom { get; set; }
177 193
178 public virtual bool IsVolumeDtc 194 public virtual bool IsVolumeDtc
@@ -398,6 +414,7 @@ namespace OpenSim.Region.Physics.Manager
398 // Warning in a parent part it returns itself, not null 414 // Warning in a parent part it returns itself, not null
399 public virtual PhysicsActor ParentActor { get { return this; } } 415 public virtual PhysicsActor ParentActor { get { return this; } }
400 416
417
401 } 418 }
402 419
403 public class NullPhysicsActor : PhysicsActor 420 public class NullPhysicsActor : PhysicsActor
diff --git a/OpenSim/Region/Physics/Manager/PhysicsScene.cs b/OpenSim/Region/Physics/Manager/PhysicsScene.cs
index ce269fa..a442cf0 100644
--- a/OpenSim/Region/Physics/Manager/PhysicsScene.cs
+++ b/OpenSim/Region/Physics/Manager/PhysicsScene.cs
@@ -38,6 +38,7 @@ namespace OpenSim.Region.Physics.Manager
38 38
39 public delegate void RaycastCallback(bool hitYN, Vector3 collisionPoint, uint localid, float distance, Vector3 normal); 39 public delegate void RaycastCallback(bool hitYN, Vector3 collisionPoint, uint localid, float distance, Vector3 normal);
40 public delegate void RayCallback(List<ContactResult> list); 40 public delegate void RayCallback(List<ContactResult> list);
41 public delegate void SitAvatarCallback(int status, uint partID, Vector3 offset, Quaternion Orientation);
41 42
42 public delegate void JointMoved(PhysicsJoint joint); 43 public delegate void JointMoved(PhysicsJoint joint);
43 public delegate void JointDeactivated(PhysicsJoint joint); 44 public delegate void JointDeactivated(PhysicsJoint joint);
@@ -127,8 +128,10 @@ namespace OpenSim.Region.Physics.Manager
127 /// <param name="size"></param> 128 /// <param name="size"></param>
128 /// <param name="isFlying"></param> 129 /// <param name="isFlying"></param>
129 /// <returns></returns> 130 /// <returns></returns>
130 public abstract PhysicsActor AddAvatar(string avName, Vector3 position, Vector3 size, bool isFlying); 131 public virtual PhysicsActor AddAvatar(string avName, Vector3 position, Vector3 size, bool isFlying)
131 132 {
133 return null;
134 }
132 /// <summary> 135 /// <summary>
133 /// Add an avatar 136 /// Add an avatar
134 /// </summary> 137 /// </summary>
@@ -145,6 +148,12 @@ namespace OpenSim.Region.Physics.Manager
145 return ret; 148 return ret;
146 } 149 }
147 150
151 public virtual PhysicsActor AddAvatar(uint localID, string avName, Vector3 position, Vector3 size, float feetOffset, bool isFlying)
152 {
153 PhysicsActor ret = AddAvatar(localID, avName, position, size, isFlying);
154 return ret;
155 }
156
148 /// <summary> 157 /// <summary>
149 /// Remove an avatar. 158 /// Remove an avatar.
150 /// </summary> 159 /// </summary>
@@ -349,5 +358,9 @@ namespace OpenSim.Region.Physics.Manager
349 return new List<ContactResult>(); 358 return new List<ContactResult>();
350 } 359 }
351 360
361 public virtual int SitAvatar(PhysicsActor actor, Vector3 AbsolutePosition, Vector3 CameraPosition, Vector3 offset, Vector3 AvatarSize, SitAvatarCallback PhysicsSitResponse)
362 {
363 return 0;
364 }
352 } 365 }
353} 366}