aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Physics/Manager
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Physics/Manager')
-rw-r--r--OpenSim/Region/Physics/Manager/IMesher.cs28
-rw-r--r--OpenSim/Region/Physics/Manager/PhysicsActor.cs228
-rw-r--r--OpenSim/Region/Physics/Manager/PhysicsScene.cs61
-rw-r--r--OpenSim/Region/Physics/Manager/VehicleConstants.cs45
-rw-r--r--OpenSim/Region/Physics/Manager/ZeroMesher.cs14
5 files changed, 285 insertions, 91 deletions
diff --git a/OpenSim/Region/Physics/Manager/IMesher.cs b/OpenSim/Region/Physics/Manager/IMesher.cs
index 2e7bb5d..5485eb7 100644
--- a/OpenSim/Region/Physics/Manager/IMesher.cs
+++ b/OpenSim/Region/Physics/Manager/IMesher.cs
@@ -27,6 +27,7 @@
27 27
28using System; 28using System;
29using System.Collections.Generic; 29using System.Collections.Generic;
30using System.Runtime.InteropServices;
30using OpenSim.Framework; 31using OpenSim.Framework;
31using OpenMetaverse; 32using OpenMetaverse;
32 33
@@ -36,7 +37,11 @@ namespace OpenSim.Region.Physics.Manager
36 { 37 {
37 IMesh CreateMesh(String primName, PrimitiveBaseShape primShape, Vector3 size, float lod); 38 IMesh CreateMesh(String primName, PrimitiveBaseShape primShape, Vector3 size, float lod);
38 IMesh CreateMesh(String primName, PrimitiveBaseShape primShape, Vector3 size, float lod, bool isPhysical); 39 IMesh CreateMesh(String primName, PrimitiveBaseShape primShape, Vector3 size, float lod, bool isPhysical);
39 IMesh CreateMesh(String primName, PrimitiveBaseShape primShape, Vector3 size, float lod, bool isPhysical, bool shouldCache); 40 IMesh CreateMesh(String primName, PrimitiveBaseShape primShape, Vector3 size, float lod, bool isPhysical, bool shouldCache, bool convex, bool forOde);
41 IMesh GetMesh(String primName, PrimitiveBaseShape primShape, Vector3 size, float lod, bool isPhysical, bool convex);
42 void ReleaseMesh(IMesh mesh);
43 void ExpireReleaseMeshs();
44 void ExpireFileCache();
40 } 45 }
41 46
42 // Values for level of detail to be passed to the mesher. 47 // Values for level of detail to be passed to the mesher.
@@ -54,6 +59,25 @@ namespace OpenSim.Region.Physics.Manager
54 { 59 {
55 } 60 }
56 61
62 [Serializable()]
63 [StructLayout(LayoutKind.Explicit)]
64 public struct AMeshKey
65 {
66 [FieldOffset(0)]
67 public UUID uuid;
68 [FieldOffset(0)]
69 public ulong hashA;
70 [FieldOffset(8)]
71 public ulong hashB;
72 [FieldOffset(16)]
73 public ulong hashC;
74
75 public override string ToString()
76 {
77 return uuid.ToString() + "-" + hashC.ToString("x") ;
78 }
79 }
80
57 public interface IMesh 81 public interface IMesh
58 { 82 {
59 List<Vector3> getVertexList(); 83 List<Vector3> getVertexList();
@@ -67,5 +91,7 @@ namespace OpenSim.Region.Physics.Manager
67 void releasePinned(); 91 void releasePinned();
68 void Append(IMesh newMesh); 92 void Append(IMesh newMesh);
69 void TransformLinear(float[,] matrix, float[] offset); 93 void TransformLinear(float[,] matrix, float[] offset);
94 Vector3 GetCentroid();
95 Vector3 GetOBB();
70 } 96 }
71} 97}
diff --git a/OpenSim/Region/Physics/Manager/PhysicsActor.cs b/OpenSim/Region/Physics/Manager/PhysicsActor.cs
index bd806eb..7cd364b 100644
--- a/OpenSim/Region/Physics/Manager/PhysicsActor.cs
+++ b/OpenSim/Region/Physics/Manager/PhysicsActor.cs
@@ -43,7 +43,8 @@ namespace OpenSim.Region.Physics.Manager
43 Unknown = 0, 43 Unknown = 0,
44 Agent = 1, 44 Agent = 1,
45 Prim = 2, 45 Prim = 2,
46 Ground = 3 46 Ground = 3,
47 Water = 4
47 } 48 }
48 49
49 public enum PIDHoverType 50 public enum PIDHoverType
@@ -59,15 +60,41 @@ namespace OpenSim.Region.Physics.Manager
59 public Vector3 Position; 60 public Vector3 Position;
60 public Vector3 SurfaceNormal; 61 public Vector3 SurfaceNormal;
61 public float PenetrationDepth; 62 public float PenetrationDepth;
63 public float RelativeSpeed;
64 public bool CharacterFeet;
62 65
63 public ContactPoint(Vector3 position, Vector3 surfaceNormal, float penetrationDepth) 66 public ContactPoint(Vector3 position, Vector3 surfaceNormal, float penetrationDepth)
64 { 67 {
65 Position = position; 68 Position = position;
66 SurfaceNormal = surfaceNormal; 69 SurfaceNormal = surfaceNormal;
67 PenetrationDepth = penetrationDepth; 70 PenetrationDepth = penetrationDepth;
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
68 } 82 }
69 } 83 }
70 84
85 public struct ContactData
86 {
87 public float mu;
88 public float bounce;
89 public bool softcolide;
90
91 public ContactData(float _mu, float _bounce, bool _softcolide)
92 {
93 mu = _mu;
94 bounce = _bounce;
95 softcolide = _softcolide;
96 }
97 }
71 /// <summary> 98 /// <summary>
72 /// Used to pass collision information to OnCollisionUpdate listeners. 99 /// Used to pass collision information to OnCollisionUpdate listeners.
73 /// </summary> 100 /// </summary>
@@ -99,7 +126,7 @@ namespace OpenSim.Region.Physics.Manager
99 m_objCollisionList.Add(localID, contact); 126 m_objCollisionList.Add(localID, contact);
100 } 127 }
101 else 128 else
102 { 129 {
103 if (m_objCollisionList[localID].PenetrationDepth < contact.PenetrationDepth) 130 if (m_objCollisionList[localID].PenetrationDepth < contact.PenetrationDepth)
104 m_objCollisionList[localID] = contact; 131 m_objCollisionList[localID] = contact;
105 } 132 }
@@ -135,6 +162,8 @@ namespace OpenSim.Region.Physics.Manager
135 /// </summary> 162 /// </summary>
136 public event CollisionUpdate OnCollisionUpdate; 163 public event CollisionUpdate OnCollisionUpdate;
137 164
165 public virtual void SetVehicle(object vdata) { }
166
138 public event OutOfBounds OnOutOfBounds; 167 public event OutOfBounds OnOutOfBounds;
139#pragma warning restore 67 168#pragma warning restore 67
140 169
@@ -142,11 +171,32 @@ namespace OpenSim.Region.Physics.Manager
142 { 171 {
143 get { return new NullPhysicsActor(); } 172 get { return new NullPhysicsActor(); }
144 } 173 }
174
175 public virtual bool Building { get; set; }
176
177 public virtual void getContactData(ref ContactData cdata)
178 {
179 cdata.mu = 0;
180 cdata.bounce = 0;
181 }
145 182
146 public abstract bool Stopped { get; } 183 public abstract bool Stopped { get; }
147 184
148 public abstract Vector3 Size { get; set; } 185 public abstract Vector3 Size { get; set; }
149 186
187 public virtual void setAvatarSize(Vector3 size, float feetOffset)
188 {
189 Size = size;
190 }
191
192 public virtual bool Phantom { get; set; }
193
194 public virtual bool IsVolumeDtc
195 {
196 get { return false; }
197 set { return; }
198 }
199
150 public virtual byte PhysicsShapeType { get; set; } 200 public virtual byte PhysicsShapeType { get; set; }
151 201
152 public abstract PrimitiveBaseShape Shape { set; } 202 public abstract PrimitiveBaseShape Shape { set; }
@@ -169,7 +219,7 @@ namespace OpenSim.Region.Physics.Manager
169 /// XXX: Bizarrely, this cannot be "Terrain" or "Water" right now unless it really is simulating terrain or 219 /// XXX: Bizarrely, this cannot be "Terrain" or "Water" right now unless it really is simulating terrain or
170 /// water. This is not a problem due to the formatting of names given by prims and avatars. 220 /// water. This is not a problem due to the formatting of names given by prims and avatars.
171 /// </remarks> 221 /// </remarks>
172 public string Name { get; protected set; } 222 public string Name { get; set; }
173 223
174 /// <summary> 224 /// <summary>
175 /// This is being used by ODE joint code. 225 /// This is being used by ODE joint code.
@@ -253,6 +303,51 @@ namespace OpenSim.Region.Physics.Manager
253 public abstract Vector3 GeometricCenter { get; } 303 public abstract Vector3 GeometricCenter { get; }
254 public abstract Vector3 CenterOfMass { get; } 304 public abstract Vector3 CenterOfMass { get; }
255 305
306 public virtual Vector3 OOBsize
307 {
308 get
309 {
310 Vector3 s=Size;
311 s.X *=0.5f;
312 s.Y *=0.5f;
313 s.Z *=0.5f;
314 return s;
315 }
316 }
317
318 public virtual Vector3 OOBoffset
319 {
320 get
321 {
322 return Vector3.Zero;
323 }
324 }
325
326 public virtual float OOBRadiusSQ
327 {
328 get
329 {
330 return Size.LengthSquared() * 0.25f; // ((0.5^2)
331 }
332 }
333
334
335 public virtual float PhysicsCost
336 {
337 get
338 {
339 return 0.1f;
340 }
341 }
342
343 public virtual float StreamCost
344 {
345 get
346 {
347 return 1.0f;
348 }
349 }
350
256 /// <summary> 351 /// <summary>
257 /// The desired velocity of this actor. 352 /// The desired velocity of this actor.
258 /// </summary> 353 /// </summary>
@@ -313,13 +408,22 @@ namespace OpenSim.Region.Physics.Manager
313 public abstract void SubscribeEvents(int ms); 408 public abstract void SubscribeEvents(int ms);
314 public abstract void UnSubscribeEvents(); 409 public abstract void UnSubscribeEvents();
315 public abstract bool SubscribedEvents(); 410 public abstract bool SubscribedEvents();
411
412 public virtual void AddCollisionEvent(uint CollidedWith, ContactPoint contact) { }
413
414 // Warning in a parent part it returns itself, not null
415 public virtual PhysicsActor ParentActor { get { return this; } }
416
417
316 } 418 }
317 419
318 public class NullPhysicsActor : PhysicsActor 420 public class NullPhysicsActor : PhysicsActor
319 { 421 {
422 private ActorTypes m_actorType = ActorTypes.Unknown;
423
320 public override bool Stopped 424 public override bool Stopped
321 { 425 {
322 get{ return false; } 426 get{ return true; }
323 } 427 }
324 428
325 public override Vector3 Position 429 public override Vector3 Position
@@ -336,6 +440,7 @@ namespace OpenSim.Region.Physics.Manager
336 440
337 public override uint LocalID 441 public override uint LocalID
338 { 442 {
443 get { return 0; }
339 set { return; } 444 set { return; }
340 } 445 }
341 446
@@ -395,50 +500,17 @@ namespace OpenSim.Region.Physics.Manager
395 set { return; } 500 set { return; }
396 } 501 }
397 502
398 public override void VehicleFloatParam(int param, float value) 503 public override void VehicleFloatParam(int param, float value) {}
399 { 504 public override void VehicleVectorParam(int param, Vector3 value) { }
400 505 public override void VehicleRotationParam(int param, Quaternion rotation) { }
401 } 506 public override void VehicleFlags(int param, bool remove) { }
402 507 public override void SetVolumeDetect(int param) {}
403 public override void VehicleVectorParam(int param, Vector3 value) 508 public override void SetMaterial(int material) {}
404 { 509 public override Vector3 CenterOfMass { get { return Vector3.Zero; }}
405
406 }
407
408 public override void VehicleRotationParam(int param, Quaternion rotation)
409 {
410 510
411 } 511 public override Vector3 GeometricCenter { get { return Vector3.Zero; }}
412
413 public override void VehicleFlags(int param, bool remove)
414 {
415
416 }
417
418 public override void SetVolumeDetect(int param)
419 {
420
421 }
422 512
423 public override void SetMaterial(int material) 513 public override PrimitiveBaseShape Shape { set { return; }}
424 {
425
426 }
427
428 public override Vector3 CenterOfMass
429 {
430 get { return Vector3.Zero; }
431 }
432
433 public override Vector3 GeometricCenter
434 {
435 get { return Vector3.Zero; }
436 }
437
438 public override PrimitiveBaseShape Shape
439 {
440 set { return; }
441 }
442 514
443 public override Vector3 Velocity 515 public override Vector3 Velocity
444 { 516 {
@@ -458,9 +530,7 @@ namespace OpenSim.Region.Physics.Manager
458 set { } 530 set { }
459 } 531 }
460 532
461 public override void CrossingFailure() 533 public override void CrossingFailure() {}
462 {
463 }
464 534
465 public override Quaternion Orientation 535 public override Quaternion Orientation
466 { 536 {
@@ -500,8 +570,20 @@ namespace OpenSim.Region.Physics.Manager
500 570
501 public override int PhysicsActorType 571 public override int PhysicsActorType
502 { 572 {
503 get { return (int) ActorTypes.Unknown; } 573 get { return (int)m_actorType; }
504 set { return; } 574 set {
575 ActorTypes type = (ActorTypes)value;
576 switch (type)
577 {
578 case ActorTypes.Ground:
579 case ActorTypes.Water:
580 m_actorType = type;
581 break;
582 default:
583 m_actorType = ActorTypes.Unknown;
584 break;
585 }
586 }
505 } 587 }
506 588
507 public override bool Kinematic 589 public override bool Kinematic
@@ -510,26 +592,11 @@ namespace OpenSim.Region.Physics.Manager
510 set { return; } 592 set { return; }
511 } 593 }
512 594
513 public override void link(PhysicsActor obj) 595 public override void link(PhysicsActor obj) { }
514 { 596 public override void delink() { }
515 } 597 public override void LockAngularMotion(Vector3 axis) { }
516 598 public override void AddForce(Vector3 force, bool pushforce) { }
517 public override void delink() 599 public override void AddAngularForce(Vector3 force, bool pushforce) { }
518 {
519 }
520
521 public override void LockAngularMotion(Vector3 axis)
522 {
523 }
524
525 public override void AddForce(Vector3 force, bool pushforce)
526 {
527 }
528
529 public override void AddAngularForce(Vector3 force, bool pushforce)
530 {
531
532 }
533 600
534 public override Vector3 RotationalVelocity 601 public override Vector3 RotationalVelocity
535 { 602 {
@@ -551,21 +618,10 @@ namespace OpenSim.Region.Physics.Manager
551 public override float APIDStrength { set { return; } } 618 public override float APIDStrength { set { return; } }
552 public override float APIDDamping { set { return; } } 619 public override float APIDDamping { set { return; } }
553 620
554 public override void SetMomentum(Vector3 momentum) 621 public override void SetMomentum(Vector3 momentum) { }
555 {
556 }
557
558 public override void SubscribeEvents(int ms)
559 {
560
561 }
562 public override void UnSubscribeEvents()
563 {
564 622
565 } 623 public override void SubscribeEvents(int ms) { }
566 public override bool SubscribedEvents() 624 public override void UnSubscribeEvents() { }
567 { 625 public override bool SubscribedEvents() { return false; }
568 return false;
569 }
570 } 626 }
571} 627}
diff --git a/OpenSim/Region/Physics/Manager/PhysicsScene.cs b/OpenSim/Region/Physics/Manager/PhysicsScene.cs
index 290b72e..20a70b4 100644
--- a/OpenSim/Region/Physics/Manager/PhysicsScene.cs
+++ b/OpenSim/Region/Physics/Manager/PhysicsScene.cs
@@ -38,6 +38,10 @@ 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 ProbeBoxCallback(List<ContactResult> list);
42 public delegate void ProbeSphereCallback(List<ContactResult> list);
43 public delegate void ProbePlaneCallback(List<ContactResult> list);
44 public delegate void SitAvatarCallback(int status, uint partID, Vector3 offset, Quaternion Orientation);
41 45
42 public delegate void JointMoved(PhysicsJoint joint); 46 public delegate void JointMoved(PhysicsJoint joint);
43 public delegate void JointDeactivated(PhysicsJoint joint); 47 public delegate void JointDeactivated(PhysicsJoint joint);
@@ -86,6 +90,8 @@ namespace OpenSim.Region.Physics.Manager
86 public Vector3 Normal; 90 public Vector3 Normal;
87 } 91 }
88 92
93
94
89 public abstract class PhysicsScene 95 public abstract class PhysicsScene
90 { 96 {
91// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 97// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
@@ -133,8 +139,10 @@ namespace OpenSim.Region.Physics.Manager
133 /// <param name="size"></param> 139 /// <param name="size"></param>
134 /// <param name="isFlying"></param> 140 /// <param name="isFlying"></param>
135 /// <returns></returns> 141 /// <returns></returns>
136 public abstract PhysicsActor AddAvatar(string avName, Vector3 position, Vector3 size, bool isFlying); 142 public virtual PhysicsActor AddAvatar(string avName, Vector3 position, Vector3 size, bool isFlying)
137 143 {
144 return null;
145 }
138 /// <summary> 146 /// <summary>
139 /// Add an avatar 147 /// Add an avatar
140 /// </summary> 148 /// </summary>
@@ -151,6 +159,12 @@ namespace OpenSim.Region.Physics.Manager
151 return ret; 159 return ret;
152 } 160 }
153 161
162 public virtual PhysicsActor AddAvatar(uint localID, string avName, Vector3 position, Vector3 size, float feetOffset, bool isFlying)
163 {
164 PhysicsActor ret = AddAvatar(localID, avName, position, size, isFlying);
165 return ret;
166 }
167
154 /// <summary> 168 /// <summary>
155 /// Remove an avatar. 169 /// Remove an avatar.
156 /// </summary> 170 /// </summary>
@@ -166,6 +180,19 @@ namespace OpenSim.Region.Physics.Manager
166 public abstract PhysicsActor AddPrimShape(string primName, PrimitiveBaseShape pbs, Vector3 position, 180 public abstract PhysicsActor AddPrimShape(string primName, PrimitiveBaseShape pbs, Vector3 position,
167 Vector3 size, Quaternion rotation, bool isPhysical, uint localid); 181 Vector3 size, Quaternion rotation, bool isPhysical, uint localid);
168 182
183 public virtual PhysicsActor AddPrimShape(string primName, PhysicsActor parent, PrimitiveBaseShape pbs, Vector3 position,
184 uint localid, byte[] sdata)
185 {
186 return null;
187 }
188
189 public virtual PhysicsActor AddPrimShape(string primName, PrimitiveBaseShape pbs, Vector3 position,
190 Vector3 size, Quaternion rotation, bool isPhysical, bool isPhantom, uint localid)
191 {
192 return AddPrimShape(primName, pbs, position, size, rotation, isPhysical, localid);
193 }
194
195
169 public virtual PhysicsActor AddPrimShape(string primName, PrimitiveBaseShape pbs, Vector3 position, 196 public virtual PhysicsActor AddPrimShape(string primName, PrimitiveBaseShape pbs, Vector3 position,
170 Vector3 size, Quaternion rotation, bool isPhysical, bool isPhantom, byte shapetype, uint localid) 197 Vector3 size, Quaternion rotation, bool isPhysical, bool isPhantom, byte shapetype, uint localid)
171 { 198 {
@@ -239,6 +266,9 @@ namespace OpenSim.Region.Physics.Manager
239 266
240 public abstract void AddPhysicsActorTaint(PhysicsActor prim); 267 public abstract void AddPhysicsActorTaint(PhysicsActor prim);
241 268
269
270 public virtual void PrepareSimulation() { }
271
242 /// <summary> 272 /// <summary>
243 /// Perform a simulation of the current physics scene over the given timestep. 273 /// Perform a simulation of the current physics scene over the given timestep.
244 /// </summary> 274 /// </summary>
@@ -283,7 +313,7 @@ namespace OpenSim.Region.Physics.Manager
283 } 313 }
284 314
285 public virtual void Combine(PhysicsScene pScene, Vector3 offset, Vector3 extents) {} 315 public virtual void Combine(PhysicsScene pScene, Vector3 offset, Vector3 extents) {}
286 316 public virtual void CombineTerrain(float[] heightMap, Vector3 pOffset) {}
287 public virtual void UnCombine(PhysicsScene pScene) {} 317 public virtual void UnCombine(PhysicsScene pScene) {}
288 318
289 /// <summary> 319 /// <summary>
@@ -331,5 +361,30 @@ namespace OpenSim.Region.Physics.Manager
331 { 361 {
332 return false; 362 return false;
333 } 363 }
364
365 public virtual List<ContactResult> RaycastActor(PhysicsActor actor, Vector3 position, Vector3 direction, float length, int Count, RayFilterFlags flags)
366 {
367 return new List<ContactResult>();
368 }
369
370 public virtual List<ContactResult> BoxProbe(Vector3 position, Vector3 size, Quaternion orientation, int Count, RayFilterFlags flags)
371 {
372 return new List<ContactResult>();
373 }
374
375 public virtual List<ContactResult> SphereProbe(Vector3 position, float radius, int Count, RayFilterFlags flags)
376 {
377 return new List<ContactResult>();
378 }
379
380 public virtual List<ContactResult> PlaneProbe(PhysicsActor actor, Vector4 plane, int Count, RayFilterFlags flags)
381 {
382 return new List<ContactResult>();
383 }
384
385 public virtual int SitAvatar(PhysicsActor actor, Vector3 AbsolutePosition, Vector3 CameraPosition, Vector3 offset, Vector3 AvatarSize, SitAvatarCallback PhysicsSitResponse)
386 {
387 return 0;
388 }
334 } 389 }
335} 390}
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
28using System; 28using System;
29using OpenMetaverse;
29 30
30namespace OpenSim.Region.Physics.Manager 31namespace 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}
diff --git a/OpenSim/Region/Physics/Manager/ZeroMesher.cs b/OpenSim/Region/Physics/Manager/ZeroMesher.cs
index 270d2ec..80ecf66 100644
--- a/OpenSim/Region/Physics/Manager/ZeroMesher.cs
+++ b/OpenSim/Region/Physics/Manager/ZeroMesher.cs
@@ -67,6 +67,11 @@ namespace OpenSim.Region.Physics.Manager
67 return CreateMesh(primName, primShape, size, lod, false, false); 67 return CreateMesh(primName, primShape, size, lod, false, false);
68 } 68 }
69 69
70 public IMesh CreateMesh(String primName, PrimitiveBaseShape primShape, Vector3 size, float lod, bool isPhysical, bool shouldCache, bool convex,bool forOde)
71 {
72 return CreateMesh(primName, primShape, size, lod, false);
73 }
74
70 public IMesh CreateMesh(String primName, PrimitiveBaseShape primShape, Vector3 size, float lod, bool isPhysical) 75 public IMesh CreateMesh(String primName, PrimitiveBaseShape primShape, Vector3 size, float lod, bool isPhysical)
71 { 76 {
72 return CreateMesh(primName, primShape, size, lod, false, false); 77 return CreateMesh(primName, primShape, size, lod, false, false);
@@ -79,5 +84,14 @@ namespace OpenSim.Region.Physics.Manager
79 84
80 return null; 85 return null;
81 } 86 }
87
88 public IMesh GetMesh(String primName, PrimitiveBaseShape primShape, Vector3 size, float lod, bool isPhysical, bool convex)
89 {
90 return null;
91 }
92
93 public void ReleaseMesh(IMesh mesh) { }
94 public void ExpireReleaseMeshs() { }
95 public void ExpireFileCache() { }
82 } 96 }
83} 97}