diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/Physics/Manager/PhysicsActor.cs | 17 | ||||
-rw-r--r-- | OpenSim/Region/Physics/Manager/PhysicsScene.cs | 17 |
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 | } |