diff options
Diffstat (limited to 'OpenSim/Region/Physics/Manager')
-rw-r--r-- | OpenSim/Region/Physics/Manager/IMesher.cs | 1 | ||||
-rw-r--r-- | OpenSim/Region/Physics/Manager/PhysicsActor.cs | 29 | ||||
-rw-r--r-- | OpenSim/Region/Physics/Manager/PhysicsScene.cs | 19 | ||||
-rw-r--r-- | OpenSim/Region/Physics/Manager/VehicleConstants.cs | 45 |
4 files changed, 92 insertions, 2 deletions
diff --git a/OpenSim/Region/Physics/Manager/IMesher.cs b/OpenSim/Region/Physics/Manager/IMesher.cs index 3a9ca1b..cc92484 100644 --- a/OpenSim/Region/Physics/Manager/IMesher.cs +++ b/OpenSim/Region/Physics/Manager/IMesher.cs | |||
@@ -65,5 +65,6 @@ namespace OpenSim.Region.Physics.Manager | |||
65 | void releasePinned(); | 65 | void releasePinned(); |
66 | void Append(IMesh newMesh); | 66 | void Append(IMesh newMesh); |
67 | void TransformLinear(float[,] matrix, float[] offset); | 67 | void TransformLinear(float[,] matrix, float[] offset); |
68 | Vector3 GetCentroid(); | ||
68 | } | 69 | } |
69 | } | 70 | } |
diff --git a/OpenSim/Region/Physics/Manager/PhysicsActor.cs b/OpenSim/Region/Physics/Manager/PhysicsActor.cs index 0587054..1a0c2a7 100644 --- a/OpenSim/Region/Physics/Manager/PhysicsActor.cs +++ b/OpenSim/Region/Physics/Manager/PhysicsActor.cs | |||
@@ -68,6 +68,19 @@ namespace OpenSim.Region.Physics.Manager | |||
68 | } | 68 | } |
69 | } | 69 | } |
70 | 70 | ||
71 | public struct ContactData | ||
72 | { | ||
73 | public float mu; | ||
74 | public float bounce; | ||
75 | public bool softcolide; | ||
76 | |||
77 | public ContactData(float _mu, float _bounce, bool _softcolide) | ||
78 | { | ||
79 | mu = _mu; | ||
80 | bounce = _bounce; | ||
81 | softcolide = _softcolide; | ||
82 | } | ||
83 | } | ||
71 | /// <summary> | 84 | /// <summary> |
72 | /// Used to pass collision information to OnCollisionUpdate listeners. | 85 | /// Used to pass collision information to OnCollisionUpdate listeners. |
73 | /// </summary> | 86 | /// </summary> |
@@ -135,6 +148,8 @@ namespace OpenSim.Region.Physics.Manager | |||
135 | /// </summary> | 148 | /// </summary> |
136 | public event CollisionUpdate OnCollisionUpdate; | 149 | public event CollisionUpdate OnCollisionUpdate; |
137 | 150 | ||
151 | public virtual void SetVehicle(object vdata) { } | ||
152 | |||
138 | public event OutOfBounds OnOutOfBounds; | 153 | public event OutOfBounds OnOutOfBounds; |
139 | #pragma warning restore 67 | 154 | #pragma warning restore 67 |
140 | 155 | ||
@@ -142,6 +157,14 @@ namespace OpenSim.Region.Physics.Manager | |||
142 | { | 157 | { |
143 | get { return new NullPhysicsActor(); } | 158 | get { return new NullPhysicsActor(); } |
144 | } | 159 | } |
160 | |||
161 | public virtual bool Building { get; set; } | ||
162 | |||
163 | public virtual void getContactData(ref ContactData cdata) | ||
164 | { | ||
165 | cdata.mu = 0; | ||
166 | cdata.bounce = 0; | ||
167 | } | ||
145 | 168 | ||
146 | public abstract bool Stopped { get; } | 169 | public abstract bool Stopped { get; } |
147 | 170 | ||
@@ -195,6 +218,11 @@ namespace OpenSim.Region.Physics.Manager | |||
195 | } | 218 | } |
196 | } | 219 | } |
197 | 220 | ||
221 | public virtual byte[] Serialize(bool PhysIsRunning) | ||
222 | { | ||
223 | return new byte[0]; | ||
224 | } | ||
225 | |||
198 | public virtual void RaiseOutOfBounds(Vector3 pos) | 226 | public virtual void RaiseOutOfBounds(Vector3 pos) |
199 | { | 227 | { |
200 | // Make a temporary copy of the event to avoid possibility of | 228 | // Make a temporary copy of the event to avoid possibility of |
@@ -554,5 +582,6 @@ namespace OpenSim.Region.Physics.Manager | |||
554 | { | 582 | { |
555 | return false; | 583 | return false; |
556 | } | 584 | } |
585 | |||
557 | } | 586 | } |
558 | } | 587 | } |
diff --git a/OpenSim/Region/Physics/Manager/PhysicsScene.cs b/OpenSim/Region/Physics/Manager/PhysicsScene.cs index 2a6163c..0346d4e 100644 --- a/OpenSim/Region/Physics/Manager/PhysicsScene.cs +++ b/OpenSim/Region/Physics/Manager/PhysicsScene.cs | |||
@@ -122,9 +122,18 @@ namespace OpenSim.Region.Physics.Manager | |||
122 | /// <param name="prim"></param> | 122 | /// <param name="prim"></param> |
123 | public abstract void RemovePrim(PhysicsActor prim); | 123 | public abstract void RemovePrim(PhysicsActor prim); |
124 | 124 | ||
125 | //public abstract PhysicsActor AddPrimShape(string primName, PrimitiveBaseShape pbs, Vector3 position, | ||
126 | // Vector3 size, Quaternion rotation); //To be removed - Actually removed! | ||
127 | |||
125 | public abstract PhysicsActor AddPrimShape(string primName, PrimitiveBaseShape pbs, Vector3 position, | 128 | public abstract PhysicsActor AddPrimShape(string primName, PrimitiveBaseShape pbs, Vector3 position, |
126 | Vector3 size, Quaternion rotation, bool isPhysical, uint localid); | 129 | Vector3 size, Quaternion rotation, bool isPhysical, uint localid); |
127 | 130 | ||
131 | public virtual PhysicsActor AddPrimShape(string primName, PhysicsActor parent, PrimitiveBaseShape pbs, Vector3 position, | ||
132 | uint localid, byte[] sdata) | ||
133 | { | ||
134 | return null; | ||
135 | } | ||
136 | |||
128 | public virtual float TimeDilation | 137 | public virtual float TimeDilation |
129 | { | 138 | { |
130 | get { return 1.0f; } | 139 | get { return 1.0f; } |
@@ -222,7 +231,7 @@ namespace OpenSim.Region.Physics.Manager | |||
222 | } | 231 | } |
223 | 232 | ||
224 | public virtual void Combine(PhysicsScene pScene, Vector3 offset, Vector3 extents) {} | 233 | public virtual void Combine(PhysicsScene pScene, Vector3 offset, Vector3 extents) {} |
225 | 234 | public virtual void CombineTerrain(float[] heightMap, Vector3 pOffset) {} | |
226 | public virtual void UnCombine(PhysicsScene pScene) {} | 235 | public virtual void UnCombine(PhysicsScene pScene) {} |
227 | 236 | ||
228 | /// <summary> | 237 | /// <summary> |
@@ -260,5 +269,13 @@ namespace OpenSim.Region.Physics.Manager | |||
260 | { | 269 | { |
261 | return new List<ContactResult>(); | 270 | return new List<ContactResult>(); |
262 | } | 271 | } |
272 | |||
273 | public virtual void RaycastActor(PhysicsActor actor, Vector3 position, Vector3 direction, float length, RaycastCallback retMethod){} | ||
274 | public virtual void RaycastActor(PhysicsActor actor, Vector3 position, Vector3 direction, float length, int Count, RayCallback retMethod) { } | ||
275 | public virtual List<ContactResult> RaycastActor(PhysicsActor actor, Vector3 position, Vector3 direction, float length, int Count) | ||
276 | { | ||
277 | return new List<ContactResult>(); | ||
278 | } | ||
279 | |||
263 | } | 280 | } |
264 | } | 281 | } |
diff --git a/OpenSim/Region/Physics/Manager/VehicleConstants.cs b/OpenSim/Region/Physics/Manager/VehicleConstants.cs index f0775c1..8e24b4c 100644 --- a/OpenSim/Region/Physics/Manager/VehicleConstants.cs +++ b/OpenSim/Region/Physics/Manager/VehicleConstants.cs | |||
@@ -26,6 +26,7 @@ | |||
26 | */ | 26 | */ |
27 | 27 | ||
28 | using System; | 28 | using System; |
29 | using OpenMetaverse; | ||
29 | 30 | ||
30 | namespace OpenSim.Region.Physics.Manager | 31 | namespace OpenSim.Region.Physics.Manager |
31 | { | 32 | { |
@@ -117,5 +118,47 @@ namespace OpenSim.Region.Physics.Manager | |||
117 | NO_DEFLECTION = 16392, | 118 | NO_DEFLECTION = 16392, |
118 | LOCK_ROTATION = 32784 | 119 | LOCK_ROTATION = 32784 |
119 | } | 120 | } |
120 | 121 | ||
122 | public struct VehicleData | ||
123 | { | ||
124 | public Vehicle m_type; | ||
125 | public VehicleFlag m_flags; | ||
126 | |||
127 | // Linear properties | ||
128 | public Vector3 m_linearMotorDirection; | ||
129 | public Vector3 m_linearFrictionTimescale; | ||
130 | public float m_linearMotorDecayTimescale; | ||
131 | public float m_linearMotorTimescale; | ||
132 | public Vector3 m_linearMotorOffset; | ||
133 | |||
134 | //Angular properties | ||
135 | public Vector3 m_angularMotorDirection; | ||
136 | public float m_angularMotorTimescale; | ||
137 | public float m_angularMotorDecayTimescale; | ||
138 | public Vector3 m_angularFrictionTimescale; | ||
139 | |||
140 | //Deflection properties | ||
141 | public float m_angularDeflectionEfficiency; | ||
142 | public float m_angularDeflectionTimescale; | ||
143 | public float m_linearDeflectionEfficiency; | ||
144 | public float m_linearDeflectionTimescale; | ||
145 | |||
146 | //Banking properties | ||
147 | public float m_bankingEfficiency; | ||
148 | public float m_bankingMix; | ||
149 | public float m_bankingTimescale; | ||
150 | |||
151 | //Hover and Buoyancy properties | ||
152 | public float m_VhoverHeight; | ||
153 | public float m_VhoverEfficiency; | ||
154 | public float m_VhoverTimescale; | ||
155 | public float m_VehicleBuoyancy; | ||
156 | |||
157 | //Attractor properties | ||
158 | public float m_verticalAttractionEfficiency; | ||
159 | public float m_verticalAttractionTimescale; | ||
160 | |||
161 | // Axis | ||
162 | public Quaternion m_referenceFrame; | ||
163 | } | ||
121 | } | 164 | } |