diff options
Diffstat (limited to 'OpenSim')
-rw-r--r-- | OpenSim/Region/Physics/Manager/PhysicsActor.cs | 3 | ||||
-rw-r--r-- | OpenSim/Region/Physics/Manager/PhysicsScene.cs | 6 | ||||
-rw-r--r-- | OpenSim/Region/Physics/OdePlugin/ODECharacter.cs | 74 | ||||
-rw-r--r-- | OpenSim/Region/Physics/OdePlugin/ODEPrim.cs | 150 | ||||
-rw-r--r-- | OpenSim/Region/Physics/OdePlugin/ODETestClass.cs | 6 | ||||
-rw-r--r-- | OpenSim/Region/Physics/OdePlugin/OdePhysicsJoint.cs | 2 | ||||
-rw-r--r-- | OpenSim/Region/Physics/OdePlugin/OdePlugin.cs | 200 |
7 files changed, 225 insertions, 216 deletions
diff --git a/OpenSim/Region/Physics/Manager/PhysicsActor.cs b/OpenSim/Region/Physics/Manager/PhysicsActor.cs index 0f75c46..94f3d85 100644 --- a/OpenSim/Region/Physics/Manager/PhysicsActor.cs +++ b/OpenSim/Region/Physics/Manager/PhysicsActor.cs | |||
@@ -213,6 +213,9 @@ namespace OpenSim.Region.Physics.Manager | |||
213 | public abstract void SubscribeEvents(int ms); | 213 | public abstract void SubscribeEvents(int ms); |
214 | public abstract void UnSubscribeEvents(); | 214 | public abstract void UnSubscribeEvents(); |
215 | public abstract bool SubscribedEvents(); | 215 | public abstract bool SubscribedEvents(); |
216 | |||
217 | public virtual void SetCollisionMesh(byte[] meshdata, string meshname, bool scalemesh) { } | ||
218 | public virtual void SetBoundsScaling(bool scalemesh) { } | ||
216 | } | 219 | } |
217 | 220 | ||
218 | public class NullPhysicsActor : PhysicsActor | 221 | public class NullPhysicsActor : PhysicsActor |
diff --git a/OpenSim/Region/Physics/Manager/PhysicsScene.cs b/OpenSim/Region/Physics/Manager/PhysicsScene.cs index 2cf4d5a..3d0015f 100644 --- a/OpenSim/Region/Physics/Manager/PhysicsScene.cs +++ b/OpenSim/Region/Physics/Manager/PhysicsScene.cs | |||
@@ -152,6 +152,12 @@ namespace OpenSim.Region.Physics.Manager | |||
152 | 152 | ||
153 | public abstract bool IsThreaded { get; } | 153 | public abstract bool IsThreaded { get; } |
154 | 154 | ||
155 | public virtual uint Raycast(PhysicsVector pos, PhysicsVector dir, float rayLength, uint ignoreId) | ||
156 | { return 0; } | ||
157 | |||
158 | public virtual void SetMaxFlightHeight(float maxheight) { } | ||
159 | |||
160 | |||
155 | private class NullPhysicsScene : PhysicsScene | 161 | private class NullPhysicsScene : PhysicsScene |
156 | { | 162 | { |
157 | private static int m_workIndicator; | 163 | private static int m_workIndicator; |
diff --git a/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs b/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs index 2cdc988..73b7612 100644 --- a/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs +++ b/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs | |||
@@ -57,73 +57,73 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
57 | } | 57 | } |
58 | public class OdeCharacter : PhysicsActor | 58 | public class OdeCharacter : PhysicsActor |
59 | { | 59 | { |
60 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 60 | protected static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
61 | 61 | ||
62 | private PhysicsVector _position; | 62 | protected PhysicsVector _position; |
63 | private d.Vector3 _zeroPosition; | 63 | protected d.Vector3 _zeroPosition; |
64 | // private d.Matrix3 m_StandUpRotation; | 64 | // protected d.Matrix3 m_StandUpRotation; |
65 | private bool _zeroFlag = false; | 65 | protected bool _zeroFlag = false; |
66 | private bool m_lastUpdateSent = false; | 66 | protected bool m_lastUpdateSent = false; |
67 | private PhysicsVector _velocity; | 67 | protected PhysicsVector _velocity; |
68 | private PhysicsVector _target_velocity; | 68 | protected PhysicsVector _target_velocity; |
69 | private PhysicsVector _acceleration; | 69 | protected PhysicsVector _acceleration; |
70 | private PhysicsVector m_rotationalVelocity; | 70 | protected PhysicsVector m_rotationalVelocity; |
71 | private float m_mass = 80f; | 71 | protected float m_mass = 80f; |
72 | public float m_density = 60f; | 72 | public float m_density = 60f; |
73 | private bool m_pidControllerActive = true; | 73 | protected bool m_pidControllerActive = true; |
74 | public float PID_D = 800.0f; | 74 | public float PID_D = 800.0f; |
75 | public float PID_P = 900.0f; | 75 | public float PID_P = 900.0f; |
76 | //private static float POSTURE_SERVO = 10000.0f; | 76 | //protected static float POSTURE_SERVO = 10000.0f; |
77 | public float CAPSULE_RADIUS = 0.37f; | 77 | public float CAPSULE_RADIUS = 0.37f; |
78 | public float CAPSULE_LENGTH = 2.140599f; | 78 | public float CAPSULE_LENGTH = 2.140599f; |
79 | public float m_tensor = 3800000f; | 79 | public float m_tensor = 3800000f; |
80 | public float heightFudgeFactor = 0.52f; | 80 | public float heightFudgeFactor = 0.52f; |
81 | public float walkDivisor = 1.3f; | 81 | public float walkDivisor = 1.3f; |
82 | public float runDivisor = 0.8f; | 82 | public float runDivisor = 0.8f; |
83 | private bool flying = false; | 83 | protected bool flying = false; |
84 | private bool m_iscolliding = false; | 84 | protected bool m_iscolliding = false; |
85 | private bool m_iscollidingGround = false; | 85 | protected bool m_iscollidingGround = false; |
86 | private bool m_wascolliding = false; | 86 | protected bool m_wascolliding = false; |
87 | private bool m_wascollidingGround = false; | 87 | protected bool m_wascollidingGround = false; |
88 | private bool m_iscollidingObj = false; | 88 | protected bool m_iscollidingObj = false; |
89 | private bool m_alwaysRun = false; | 89 | protected bool m_alwaysRun = false; |
90 | private bool m_hackSentFall = false; | 90 | protected bool m_hackSentFall = false; |
91 | private bool m_hackSentFly = false; | 91 | protected bool m_hackSentFly = false; |
92 | private PhysicsVector m_taintPosition = new PhysicsVector(0, 0, 0); | 92 | protected PhysicsVector m_taintPosition = new PhysicsVector(0, 0, 0); |
93 | public uint m_localID = 0; | 93 | public uint m_localID = 0; |
94 | public bool m_returnCollisions = false; | 94 | public bool m_returnCollisions = false; |
95 | // taints and their non-tainted counterparts | 95 | // taints and their non-tainted counterparts |
96 | public bool m_isPhysical = false; // the current physical status | 96 | public bool m_isPhysical = false; // the current physical status |
97 | public bool m_tainted_isPhysical = false; // set when the physical status is tainted (false=not existing in physics engine, true=existing) | 97 | public bool m_tainted_isPhysical = false; // set when the physical status is tainted (false=not existing in physics engine, true=existing) |
98 | private float m_tainted_CAPSULE_LENGTH; // set when the capsule length changes. | 98 | protected float m_tainted_CAPSULE_LENGTH; // set when the capsule length changes. |
99 | 99 | ||
100 | private float m_buoyancy = 0f; | 100 | protected float m_buoyancy = 0f; |
101 | 101 | ||
102 | // private CollisionLocker ode; | 102 | // protected CollisionLocker ode; |
103 | 103 | ||
104 | private string m_name = String.Empty; | 104 | protected string m_name = String.Empty; |
105 | 105 | ||
106 | private bool[] m_colliderarr = new bool[11]; | 106 | protected bool[] m_colliderarr = new bool[11]; |
107 | private bool[] m_colliderGroundarr = new bool[11]; | 107 | protected bool[] m_colliderGroundarr = new bool[11]; |
108 | 108 | ||
109 | // Default we're a Character | 109 | // Default we're a Character |
110 | private CollisionCategories m_collisionCategories = (CollisionCategories.Character); | 110 | protected CollisionCategories m_collisionCategories = (CollisionCategories.Character); |
111 | 111 | ||
112 | // Default, Collide with Other Geometries, spaces, bodies and characters. | 112 | // Default, Collide with Other Geometries, spaces, bodies and characters. |
113 | private CollisionCategories m_collisionFlags = (CollisionCategories.Geom | 113 | protected CollisionCategories m_collisionFlags = (CollisionCategories.Geom |
114 | | CollisionCategories.Space | 114 | | CollisionCategories.Space |
115 | | CollisionCategories.Body | 115 | | CollisionCategories.Body |
116 | | CollisionCategories.Character | 116 | | CollisionCategories.Character |
117 | | CollisionCategories.Land); | 117 | | CollisionCategories.Land); |
118 | public IntPtr Body = IntPtr.Zero; | 118 | public IntPtr Body = IntPtr.Zero; |
119 | private OdeScene _parent_scene; | 119 | protected OdeScene _parent_scene; |
120 | public IntPtr Shell = IntPtr.Zero; | 120 | public IntPtr Shell = IntPtr.Zero; |
121 | public IntPtr Amotor = IntPtr.Zero; | 121 | public IntPtr Amotor = IntPtr.Zero; |
122 | public d.Mass ShellMass; | 122 | public d.Mass ShellMass; |
123 | public bool collidelock = false; | 123 | public bool collidelock = false; |
124 | 124 | ||
125 | public int m_eventsubscription = 0; | 125 | public int m_eventsubscription = 0; |
126 | private CollisionEventUpdate CollisionEventsThisFrame = new CollisionEventUpdate(); | 126 | protected CollisionEventUpdate CollisionEventsThisFrame = new CollisionEventUpdate(); |
127 | 127 | ||
128 | public OdeCharacter(String avName, OdeScene parent_scene, PhysicsVector pos, CollisionLocker dode, PhysicsVector size, float pid_d, float pid_p, float capsule_radius, float tensor, float density, float height_fudge_factor, float walk_divisor, float rundivisor) | 128 | public OdeCharacter(String avName, OdeScene parent_scene, PhysicsVector pos, CollisionLocker dode, PhysicsVector size, float pid_d, float pid_p, float capsule_radius, float tensor, float density, float height_fudge_factor, float walk_divisor, float rundivisor) |
129 | { | 129 | { |
@@ -421,7 +421,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
421 | // WARNING: This MUST NOT be called outside of ProcessTaints, else we can have unsynchronized access | 421 | // WARNING: This MUST NOT be called outside of ProcessTaints, else we can have unsynchronized access |
422 | // to ODE internals. ProcessTaints is called from within thread-locked Simulate(), so it is the only | 422 | // to ODE internals. ProcessTaints is called from within thread-locked Simulate(), so it is the only |
423 | // place that is safe to call this routine AvatarGeomAndBodyCreation. | 423 | // place that is safe to call this routine AvatarGeomAndBodyCreation. |
424 | private void AvatarGeomAndBodyCreation(float npositionX, float npositionY, float npositionZ, float tensor) | 424 | protected void AvatarGeomAndBodyCreation(float npositionX, float npositionY, float npositionZ, float tensor) |
425 | { | 425 | { |
426 | //CAPSULE_LENGTH = -5; | 426 | //CAPSULE_LENGTH = -5; |
427 | //CAPSULE_RADIUS = -5; | 427 | //CAPSULE_RADIUS = -5; |
@@ -535,7 +535,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
535 | // This code is very useful. Written by DanX0r. We're just not using it right now. | 535 | // This code is very useful. Written by DanX0r. We're just not using it right now. |
536 | // Commented out to prevent a warning. | 536 | // Commented out to prevent a warning. |
537 | // | 537 | // |
538 | // private void standupStraight() | 538 | // protected void standupStraight() |
539 | // { | 539 | // { |
540 | // // The purpose of this routine here is to quickly stabilize the Body while it's popped up in the air. | 540 | // // The purpose of this routine here is to quickly stabilize the Body while it's popped up in the air. |
541 | // // The amotor needs a few seconds to stabilize so without it, the avatar shoots up sky high when you | 541 | // // The amotor needs a few seconds to stabilize so without it, the avatar shoots up sky high when you |
@@ -714,7 +714,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
714 | /// This is the avatar's movement control + PID Controller | 714 | /// This is the avatar's movement control + PID Controller |
715 | /// </summary> | 715 | /// </summary> |
716 | /// <param name="timeStep"></param> | 716 | /// <param name="timeStep"></param> |
717 | public void Move(float timeStep) | 717 | public virtual void Move(float timeStep) |
718 | { | 718 | { |
719 | // no lock; for now it's only called from within Simulate() | 719 | // no lock; for now it's only called from within Simulate() |
720 | 720 | ||
diff --git a/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs b/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs index bfb9b1a..54edbdc 100644 --- a/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs +++ b/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs | |||
@@ -43,54 +43,54 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
43 | 43 | ||
44 | public class OdePrim : PhysicsActor | 44 | public class OdePrim : PhysicsActor |
45 | { | 45 | { |
46 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 46 | protected static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
47 | 47 | ||
48 | private PhysicsVector _position; | 48 | protected PhysicsVector _position; |
49 | private PhysicsVector _velocity; | 49 | protected PhysicsVector _velocity; |
50 | private PhysicsVector _torque = new PhysicsVector(0,0,0); | 50 | protected PhysicsVector _torque = new PhysicsVector(0,0,0); |
51 | private PhysicsVector m_lastVelocity = new PhysicsVector(0.0f, 0.0f, 0.0f); | 51 | protected PhysicsVector m_lastVelocity = new PhysicsVector(0.0f, 0.0f, 0.0f); |
52 | private PhysicsVector m_lastposition = new PhysicsVector(0.0f, 0.0f, 0.0f); | 52 | protected PhysicsVector m_lastposition = new PhysicsVector(0.0f, 0.0f, 0.0f); |
53 | private Quaternion m_lastorientation = new Quaternion(); | 53 | protected Quaternion m_lastorientation = new Quaternion(); |
54 | private PhysicsVector m_rotationalVelocity; | 54 | protected PhysicsVector m_rotationalVelocity; |
55 | private PhysicsVector _size; | 55 | protected PhysicsVector _size; |
56 | private PhysicsVector _acceleration; | 56 | protected PhysicsVector _acceleration; |
57 | // private d.Vector3 _zeroPosition = new d.Vector3(0.0f, 0.0f, 0.0f); | 57 | // protected d.Vector3 _zeroPosition = new d.Vector3(0.0f, 0.0f, 0.0f); |
58 | private Quaternion _orientation; | 58 | protected Quaternion _orientation; |
59 | private PhysicsVector m_taintposition; | 59 | protected PhysicsVector m_taintposition; |
60 | private PhysicsVector m_taintsize; | 60 | protected PhysicsVector m_taintsize; |
61 | private PhysicsVector m_taintVelocity = new PhysicsVector(0, 0, 0); | 61 | protected PhysicsVector m_taintVelocity = new PhysicsVector(0, 0, 0); |
62 | private PhysicsVector m_taintTorque = new PhysicsVector(0, 0, 0); | 62 | protected PhysicsVector m_taintTorque = new PhysicsVector(0, 0, 0); |
63 | private Quaternion m_taintrot; | 63 | protected Quaternion m_taintrot; |
64 | private PhysicsVector m_angularlock = new PhysicsVector(1f, 1f, 1f); | 64 | protected PhysicsVector m_angularlock = new PhysicsVector(1f, 1f, 1f); |
65 | private PhysicsVector m_taintAngularLock = new PhysicsVector(1f, 1f, 1f); | 65 | protected PhysicsVector m_taintAngularLock = new PhysicsVector(1f, 1f, 1f); |
66 | private IntPtr Amotor = IntPtr.Zero; | 66 | protected IntPtr Amotor = IntPtr.Zero; |
67 | 67 | ||
68 | private PhysicsVector m_PIDTarget = new PhysicsVector(0, 0, 0); | 68 | protected PhysicsVector m_PIDTarget = new PhysicsVector(0, 0, 0); |
69 | private float m_PIDTau = 0f; | 69 | protected float m_PIDTau = 0f; |
70 | private float PID_D = 35f; | 70 | protected float PID_D = 35f; |
71 | private float PID_G = 25f; | 71 | protected float PID_G = 25f; |
72 | private float m_tensor = 5f; | 72 | protected float m_tensor = 5f; |
73 | private int body_autodisable_frames = 20; | 73 | protected int body_autodisable_frames = 20; |
74 | private IMesh primMesh = null; | 74 | protected IMesh primMesh = null; |
75 | 75 | ||
76 | private bool m_usePID = false; | 76 | protected bool m_usePID = false; |
77 | 77 | ||
78 | private const CollisionCategories m_default_collisionFlags = (CollisionCategories.Geom | 78 | protected const CollisionCategories m_default_collisionFlags = (CollisionCategories.Geom |
79 | | CollisionCategories.Space | 79 | | CollisionCategories.Space |
80 | | CollisionCategories.Body | 80 | | CollisionCategories.Body |
81 | | CollisionCategories.Character | 81 | | CollisionCategories.Character |
82 | ); | 82 | ); |
83 | private bool m_taintshape = false; | 83 | protected bool m_taintshape = false; |
84 | private bool m_taintPhysics = false; | 84 | protected bool m_taintPhysics = false; |
85 | private bool m_collidesLand = true; | 85 | protected bool m_collidesLand = true; |
86 | private bool m_collidesWater = false; | 86 | protected bool m_collidesWater = false; |
87 | public bool m_returnCollisions = false; | 87 | public bool m_returnCollisions = false; |
88 | 88 | ||
89 | // Default we're a Geometry | 89 | // Default we're a Geometry |
90 | private CollisionCategories m_collisionCategories = (CollisionCategories.Geom); | 90 | protected CollisionCategories m_collisionCategories = (CollisionCategories.Geom); |
91 | 91 | ||
92 | // Default, Collide with Other Geometries, spaces and Bodies | 92 | // Default, Collide with Other Geometries, spaces and Bodies |
93 | private CollisionCategories m_collisionFlags = m_default_collisionFlags; | 93 | protected CollisionCategories m_collisionFlags = m_default_collisionFlags; |
94 | 94 | ||
95 | public bool m_taintremove = false; | 95 | public bool m_taintremove = false; |
96 | public bool m_taintdisable = false; | 96 | public bool m_taintdisable = false; |
@@ -102,58 +102,58 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
102 | public uint m_localID = 0; | 102 | public uint m_localID = 0; |
103 | 103 | ||
104 | //public GCHandle gc; | 104 | //public GCHandle gc; |
105 | private CollisionLocker ode; | 105 | protected CollisionLocker ode; |
106 | 106 | ||
107 | private bool m_taintforce = false; | 107 | protected bool m_taintforce = false; |
108 | private bool m_taintaddangularforce = false; | 108 | protected bool m_taintaddangularforce = false; |
109 | private PhysicsVector m_force = new PhysicsVector(0.0f, 0.0f, 0.0f); | 109 | protected PhysicsVector m_force = new PhysicsVector(0.0f, 0.0f, 0.0f); |
110 | private List<PhysicsVector> m_forcelist = new List<PhysicsVector>(); | 110 | protected List<PhysicsVector> m_forcelist = new List<PhysicsVector>(); |
111 | private List<PhysicsVector> m_angularforcelist = new List<PhysicsVector>(); | 111 | protected List<PhysicsVector> m_angularforcelist = new List<PhysicsVector>(); |
112 | 112 | ||
113 | private IMesh _mesh; | 113 | protected IMesh _mesh; |
114 | private PrimitiveBaseShape _pbs; | 114 | protected PrimitiveBaseShape _pbs; |
115 | private OdeScene _parent_scene; | 115 | protected OdeScene _parent_scene; |
116 | public IntPtr m_targetSpace = (IntPtr) 0; | 116 | public IntPtr m_targetSpace = (IntPtr) 0; |
117 | public IntPtr prim_geom; | 117 | public IntPtr prim_geom; |
118 | public IntPtr prev_geom; | 118 | public IntPtr prev_geom; |
119 | public IntPtr _triMeshData; | 119 | public IntPtr _triMeshData; |
120 | 120 | ||
121 | private IntPtr _linkJointGroup = (IntPtr)0; | 121 | protected IntPtr _linkJointGroup = (IntPtr)0; |
122 | private PhysicsActor _parent = null; | 122 | protected PhysicsActor _parent = null; |
123 | private PhysicsActor m_taintparent = null; | 123 | protected PhysicsActor m_taintparent = null; |
124 | 124 | ||
125 | private List<OdePrim> childrenPrim = new List<OdePrim>(); | 125 | protected List<OdePrim> childrenPrim = new List<OdePrim>(); |
126 | 126 | ||
127 | private bool iscolliding = false; | 127 | protected bool iscolliding = false; |
128 | private bool m_isphysical = false; | 128 | protected bool m_isphysical = false; |
129 | private bool m_isSelected = false; | 129 | protected bool m_isSelected = false; |
130 | 130 | ||
131 | internal bool m_isVolumeDetect = false; // If true, this prim only detects collisions but doesn't collide actively | 131 | public bool m_isVolumeDetect = false; // If true, this prim only detects collisions but doesn't collide actively |
132 | 132 | ||
133 | private bool m_throttleUpdates = false; | 133 | protected bool m_throttleUpdates = false; |
134 | private int throttleCounter = 0; | 134 | protected int throttleCounter = 0; |
135 | public int m_interpenetrationcount = 0; | 135 | public int m_interpenetrationcount = 0; |
136 | public float m_collisionscore = 0; | 136 | public float m_collisionscore = 0; |
137 | public int m_roundsUnderMotionThreshold = 0; | 137 | public int m_roundsUnderMotionThreshold = 0; |
138 | private int m_crossingfailures = 0; | 138 | protected int m_crossingfailures = 0; |
139 | 139 | ||
140 | public float m_buoyancy = 0f; | 140 | public float m_buoyancy = 0f; |
141 | 141 | ||
142 | public bool outofBounds = false; | 142 | public bool outofBounds = false; |
143 | private float m_density = 10.000006836f; // Aluminum g/cm3; | 143 | protected float m_density = 10.000006836f; // Aluminum g/cm3; |
144 | 144 | ||
145 | public bool _zeroFlag = false; | 145 | public bool _zeroFlag = false; |
146 | private bool m_lastUpdateSent = false; | 146 | protected bool m_lastUpdateSent = false; |
147 | 147 | ||
148 | public IntPtr Body = (IntPtr) 0; | 148 | public IntPtr Body = (IntPtr) 0; |
149 | private String m_primName; | 149 | protected String m_primName; |
150 | private PhysicsVector _target_velocity; | 150 | protected PhysicsVector _target_velocity; |
151 | public d.Mass pMass; | 151 | public d.Mass pMass; |
152 | 152 | ||
153 | public int m_eventsubscription = 0; | 153 | public int m_eventsubscription = 0; |
154 | private CollisionEventUpdate CollisionEventsThisFrame = null; | 154 | protected CollisionEventUpdate CollisionEventsThisFrame = null; |
155 | 155 | ||
156 | private IntPtr m_linkJoint = (IntPtr)0; | 156 | protected IntPtr m_linkJoint = (IntPtr)0; |
157 | 157 | ||
158 | public volatile bool childPrim = false; | 158 | public volatile bool childPrim = false; |
159 | 159 | ||
@@ -338,7 +338,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
338 | 338 | ||
339 | #region Mass Calculation | 339 | #region Mass Calculation |
340 | 340 | ||
341 | private float CalculateMass() | 341 | protected float CalculateMass() |
342 | { | 342 | { |
343 | float volume = 0; | 343 | float volume = 0; |
344 | 344 | ||
@@ -815,7 +815,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
815 | // } | 815 | // } |
816 | } | 816 | } |
817 | 817 | ||
818 | public void ProcessTaints(float timestep) | 818 | public virtual void ProcessTaints(float timestep) |
819 | { | 819 | { |
820 | if (m_taintadd) | 820 | if (m_taintadd) |
821 | { | 821 | { |
@@ -875,7 +875,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
875 | } | 875 | } |
876 | } | 876 | } |
877 | 877 | ||
878 | private void changeAngularLock(float timestep) | 878 | protected void changeAngularLock(float timestep) |
879 | { | 879 | { |
880 | // do we have a Physical object? | 880 | // do we have a Physical object? |
881 | if (Body != IntPtr.Zero) | 881 | if (Body != IntPtr.Zero) |
@@ -904,7 +904,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
904 | m_angularlock = new PhysicsVector(m_taintAngularLock.X, m_taintAngularLock.Y, m_taintAngularLock.Z); | 904 | m_angularlock = new PhysicsVector(m_taintAngularLock.X, m_taintAngularLock.Y, m_taintAngularLock.Z); |
905 | } | 905 | } |
906 | 906 | ||
907 | private void changelink(float timestep) | 907 | protected void changelink(float timestep) |
908 | { | 908 | { |
909 | // If the newly set parent is not null | 909 | // If the newly set parent is not null |
910 | // create link | 910 | // create link |
@@ -1095,7 +1095,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1095 | 1095 | ||
1096 | } | 1096 | } |
1097 | 1097 | ||
1098 | private void ChildSetGeom(OdePrim odePrim) | 1098 | public void ChildSetGeom(OdePrim odePrim) |
1099 | { | 1099 | { |
1100 | //if (m_isphysical && Body != IntPtr.Zero) | 1100 | //if (m_isphysical && Body != IntPtr.Zero) |
1101 | lock (childrenPrim) | 1101 | lock (childrenPrim) |
@@ -1129,7 +1129,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1129 | 1129 | ||
1130 | } | 1130 | } |
1131 | 1131 | ||
1132 | private void ChildDelink(OdePrim odePrim) | 1132 | protected void ChildDelink(OdePrim odePrim) |
1133 | { | 1133 | { |
1134 | // Okay, we have a delinked child.. need to rebuild the body. | 1134 | // Okay, we have a delinked child.. need to rebuild the body. |
1135 | lock (childrenPrim) | 1135 | lock (childrenPrim) |
@@ -1173,7 +1173,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1173 | 1173 | ||
1174 | } | 1174 | } |
1175 | 1175 | ||
1176 | private void changeSelectedStatus(float timestep) | 1176 | protected void changeSelectedStatus(float timestep) |
1177 | { | 1177 | { |
1178 | if (m_taintselected) | 1178 | if (m_taintselected) |
1179 | { | 1179 | { |
@@ -1603,7 +1603,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1603 | m_taintrot = _orientation; | 1603 | m_taintrot = _orientation; |
1604 | } | 1604 | } |
1605 | 1605 | ||
1606 | private void resetCollisionAccounting() | 1606 | protected void resetCollisionAccounting() |
1607 | { | 1607 | { |
1608 | m_collisionscore = 0; | 1608 | m_collisionscore = 0; |
1609 | m_interpenetrationcount = 0; | 1609 | m_interpenetrationcount = 0; |
@@ -2132,7 +2132,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
2132 | m_taintaddangularforce = false; | 2132 | m_taintaddangularforce = false; |
2133 | } | 2133 | } |
2134 | 2134 | ||
2135 | private void changevelocity(float timestep) | 2135 | protected void changevelocity(float timestep) |
2136 | { | 2136 | { |
2137 | if (!m_isSelected) | 2137 | if (!m_isSelected) |
2138 | { | 2138 | { |
@@ -2622,7 +2622,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
2622 | public override bool PIDActive { set { m_usePID = value; } } | 2622 | public override bool PIDActive { set { m_usePID = value; } } |
2623 | public override float PIDTau { set { m_PIDTau = value; } } | 2623 | public override float PIDTau { set { m_PIDTau = value; } } |
2624 | 2624 | ||
2625 | private void createAMotor(PhysicsVector axis) | 2625 | protected void createAMotor(PhysicsVector axis) |
2626 | { | 2626 | { |
2627 | if (Body == IntPtr.Zero) | 2627 | if (Body == IntPtr.Zero) |
2628 | return; | 2628 | return; |
diff --git a/OpenSim/Region/Physics/OdePlugin/ODETestClass.cs b/OpenSim/Region/Physics/OdePlugin/ODETestClass.cs index c913639..b955e4b 100644 --- a/OpenSim/Region/Physics/OdePlugin/ODETestClass.cs +++ b/OpenSim/Region/Physics/OdePlugin/ODETestClass.cs | |||
@@ -37,9 +37,9 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
37 | [TestFixture] | 37 | [TestFixture] |
38 | public class ODETestClass | 38 | public class ODETestClass |
39 | { | 39 | { |
40 | private OdePlugin cbt; | 40 | protected OdePlugin cbt; |
41 | private PhysicsScene ps; | 41 | protected PhysicsScene ps; |
42 | private IMeshingPlugin imp; | 42 | protected IMeshingPlugin imp; |
43 | 43 | ||
44 | [SetUp] | 44 | [SetUp] |
45 | public void Initialize() | 45 | public void Initialize() |
diff --git a/OpenSim/Region/Physics/OdePlugin/OdePhysicsJoint.cs b/OpenSim/Region/Physics/OdePlugin/OdePhysicsJoint.cs index 8180497..b7b39a4 100644 --- a/OpenSim/Region/Physics/OdePlugin/OdePhysicsJoint.cs +++ b/OpenSim/Region/Physics/OdePlugin/OdePhysicsJoint.cs | |||
@@ -34,7 +34,7 @@ using OpenSim.Region.Physics.OdePlugin; | |||
34 | 34 | ||
35 | namespace OpenSim.Region.Physics.OdePlugin | 35 | namespace OpenSim.Region.Physics.OdePlugin |
36 | { | 36 | { |
37 | class OdePhysicsJoint : PhysicsJoint | 37 | public class OdePhysicsJoint : PhysicsJoint |
38 | { | 38 | { |
39 | public override bool IsInPhysicsEngine | 39 | public override bool IsInPhysicsEngine |
40 | { | 40 | { |
diff --git a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs index 3adabcf..9a1645d 100644 --- a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs +++ b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs | |||
@@ -52,10 +52,10 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
52 | /// </summary> | 52 | /// </summary> |
53 | public class OdePlugin : IPhysicsPlugin | 53 | public class OdePlugin : IPhysicsPlugin |
54 | { | 54 | { |
55 | //private static readonly log4net.ILog m_log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | 55 | //protected static readonly log4net.ILog m_log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); |
56 | 56 | ||
57 | private CollisionLocker ode; | 57 | protected CollisionLocker ode; |
58 | private OdeScene _mScene; | 58 | protected OdeScene _mScene; |
59 | 59 | ||
60 | public OdePlugin() | 60 | public OdePlugin() |
61 | { | 61 | { |
@@ -124,62 +124,62 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
124 | 124 | ||
125 | public class OdeScene : PhysicsScene | 125 | public class OdeScene : PhysicsScene |
126 | { | 126 | { |
127 | private ILog m_log; | 127 | protected ILog m_log; |
128 | // private Dictionary<string, sCollisionData> m_storedCollisions = new Dictionary<string, sCollisionData>(); | 128 | // protected Dictionary<string, sCollisionData> m_storedCollisions = new Dictionary<string, sCollisionData>(); |
129 | 129 | ||
130 | CollisionLocker ode; | 130 | protected CollisionLocker ode; |
131 | 131 | ||
132 | protected Random fluidRandomizer = new Random(Environment.TickCount); | 132 | protected Random fluidRandomizer = new Random(Environment.TickCount); |
133 | 133 | ||
134 | private const uint m_regionWidth = Constants.RegionSize; | 134 | protected const uint m_regionWidth = Constants.RegionSize; |
135 | private const uint m_regionHeight = Constants.RegionSize; | 135 | protected const uint m_regionHeight = Constants.RegionSize; |
136 | 136 | ||
137 | private float ODE_STEPSIZE = 0.020f; | 137 | protected float ODE_STEPSIZE = 0.020f; |
138 | private float metersInSpace = 29.9f; | 138 | protected float metersInSpace = 29.9f; |
139 | 139 | ||
140 | public float gravityx = 0f; | 140 | public float gravityx = 0f; |
141 | public float gravityy = 0f; | 141 | public float gravityy = 0f; |
142 | public float gravityz = -9.8f; | 142 | public float gravityz = -9.8f; |
143 | 143 | ||
144 | private float contactsurfacelayer = 0.001f; | 144 | protected float contactsurfacelayer = 0.001f; |
145 | 145 | ||
146 | private int worldHashspaceLow = -4; | 146 | protected int worldHashspaceLow = -4; |
147 | private int worldHashspaceHigh = 128; | 147 | protected int worldHashspaceHigh = 128; |
148 | 148 | ||
149 | private int smallHashspaceLow = -4; | 149 | protected int smallHashspaceLow = -4; |
150 | private int smallHashspaceHigh = 66; | 150 | protected int smallHashspaceHigh = 66; |
151 | 151 | ||
152 | private float waterlevel = 0f; | 152 | protected float waterlevel = 0f; |
153 | private int framecount = 0; | 153 | protected int framecount = 0; |
154 | //private int m_returncollisions = 10; | 154 | //protected int m_returncollisions = 10; |
155 | 155 | ||
156 | private IntPtr contactgroup; | 156 | protected IntPtr contactgroup; |
157 | private IntPtr LandGeom; | 157 | protected IntPtr LandGeom; |
158 | 158 | ||
159 | private IntPtr WaterGeom; | 159 | protected IntPtr WaterGeom; |
160 | 160 | ||
161 | private float nmTerrainContactFriction = 255.0f; | 161 | protected float nmTerrainContactFriction = 255.0f; |
162 | private float nmTerrainContactBounce = 0.1f; | 162 | protected float nmTerrainContactBounce = 0.1f; |
163 | private float nmTerrainContactERP = 0.1025f; | 163 | protected float nmTerrainContactERP = 0.1025f; |
164 | 164 | ||
165 | private float mTerrainContactFriction = 75f; | 165 | protected float mTerrainContactFriction = 75f; |
166 | private float mTerrainContactBounce = 0.1f; | 166 | protected float mTerrainContactBounce = 0.1f; |
167 | private float mTerrainContactERP = 0.05025f; | 167 | protected float mTerrainContactERP = 0.05025f; |
168 | 168 | ||
169 | private float nmAvatarObjectContactFriction = 250f; | 169 | protected float nmAvatarObjectContactFriction = 250f; |
170 | private float nmAvatarObjectContactBounce = 0.1f; | 170 | protected float nmAvatarObjectContactBounce = 0.1f; |
171 | 171 | ||
172 | private float mAvatarObjectContactFriction = 75f; | 172 | protected float mAvatarObjectContactFriction = 75f; |
173 | private float mAvatarObjectContactBounce = 0.1f; | 173 | protected float mAvatarObjectContactBounce = 0.1f; |
174 | 174 | ||
175 | private float avPIDD = 3200f; | 175 | protected float avPIDD = 3200f; |
176 | private float avPIDP = 1400f; | 176 | protected float avPIDP = 1400f; |
177 | private float avCapRadius = 0.37f; | 177 | protected float avCapRadius = 0.37f; |
178 | private float avStandupTensor = 2000000f; | 178 | protected float avStandupTensor = 2000000f; |
179 | private float avDensity = 80f; | 179 | protected float avDensity = 80f; |
180 | private float avHeightFudgeFactor = 0.52f; | 180 | protected float avHeightFudgeFactor = 0.52f; |
181 | private float avMovementDivisorWalk = 1.3f; | 181 | protected float avMovementDivisorWalk = 1.3f; |
182 | private float avMovementDivisorRun = 0.8f; | 182 | protected float avMovementDivisorRun = 0.8f; |
183 | 183 | ||
184 | public bool meshSculptedPrim = true; | 184 | public bool meshSculptedPrim = true; |
185 | 185 | ||
@@ -200,66 +200,66 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
200 | 200 | ||
201 | public int bodyFramesAutoDisable = 20; | 201 | public int bodyFramesAutoDisable = 20; |
202 | 202 | ||
203 | private float[] _heightmap; | 203 | protected float[] _heightmap; |
204 | 204 | ||
205 | private float[] _watermap; | 205 | protected float[] _watermap; |
206 | private bool m_filterCollisions = true; | 206 | protected bool m_filterCollisions = true; |
207 | 207 | ||
208 | // private float[] _origheightmap; | 208 | // protected float[] _origheightmap; |
209 | 209 | ||
210 | private d.NearCallback nearCallback; | 210 | protected d.NearCallback nearCallback; |
211 | public d.TriCallback triCallback; | 211 | public d.TriCallback triCallback; |
212 | public d.TriArrayCallback triArrayCallback; | 212 | public d.TriArrayCallback triArrayCallback; |
213 | private List<OdeCharacter> _characters = new List<OdeCharacter>(); | 213 | protected List<OdeCharacter> _characters = new List<OdeCharacter>(); |
214 | private List<OdePrim> _prims = new List<OdePrim>(); | 214 | protected List<OdePrim> _prims = new List<OdePrim>(); |
215 | private List<OdePrim> _activeprims = new List<OdePrim>(); | 215 | protected List<OdePrim> _activeprims = new List<OdePrim>(); |
216 | private List<OdePrim> _taintedPrim = new List<OdePrim>(); | 216 | protected List<OdePrim> _taintedPrim = new List<OdePrim>(); |
217 | private List<OdeCharacter> _taintedActors = new List<OdeCharacter>(); | 217 | protected List<OdeCharacter> _taintedActors = new List<OdeCharacter>(); |
218 | private List<d.ContactGeom> _perloopContact = new List<d.ContactGeom>(); | 218 | protected List<d.ContactGeom> _perloopContact = new List<d.ContactGeom>(); |
219 | private List<PhysicsActor> _collisionEventPrim = new List<PhysicsActor>(); | 219 | protected List<PhysicsActor> _collisionEventPrim = new List<PhysicsActor>(); |
220 | public Dictionary<IntPtr, String> geom_name_map = new Dictionary<IntPtr, String>(); | 220 | public Dictionary<IntPtr, String> geom_name_map = new Dictionary<IntPtr, String>(); |
221 | public Dictionary<IntPtr, PhysicsActor> actor_name_map = new Dictionary<IntPtr, PhysicsActor>(); | 221 | public Dictionary<IntPtr, PhysicsActor> actor_name_map = new Dictionary<IntPtr, PhysicsActor>(); |
222 | private bool m_NINJA_physics_joints_enabled = false; | 222 | protected bool m_NINJA_physics_joints_enabled = false; |
223 | //private Dictionary<String, IntPtr> jointpart_name_map = new Dictionary<String,IntPtr>(); | 223 | //protected Dictionary<String, IntPtr> jointpart_name_map = new Dictionary<String,IntPtr>(); |
224 | private Dictionary<String, List<PhysicsJoint>> joints_connecting_actor = new Dictionary<String, List<PhysicsJoint>>(); | 224 | protected Dictionary<String, List<PhysicsJoint>> joints_connecting_actor = new Dictionary<String, List<PhysicsJoint>>(); |
225 | private d.ContactGeom[] contacts = new d.ContactGeom[80]; | 225 | protected d.ContactGeom[] contacts = new d.ContactGeom[80]; |
226 | private List<PhysicsJoint> requestedJointsToBeCreated = new List<PhysicsJoint>(); // lock only briefly. accessed by external code (to request new joints) and by OdeScene.Simulate() to move those joints into pending/active | 226 | protected List<PhysicsJoint> requestedJointsToBeCreated = new List<PhysicsJoint>(); // lock only briefly. accessed by external code (to request new joints) and by OdeScene.Simulate() to move those joints into pending/active |
227 | private List<PhysicsJoint> pendingJoints = new List<PhysicsJoint>(); // can lock for longer. accessed only by OdeScene. | 227 | protected List<PhysicsJoint> pendingJoints = new List<PhysicsJoint>(); // can lock for longer. accessed only by OdeScene. |
228 | private List<PhysicsJoint> activeJoints = new List<PhysicsJoint>(); // can lock for longer. accessed only by OdeScene. | 228 | protected List<PhysicsJoint> activeJoints = new List<PhysicsJoint>(); // can lock for longer. accessed only by OdeScene. |
229 | private List<string> requestedJointsToBeDeleted = new List<string>(); // lock only briefly. accessed by external code (to request deletion of joints) and by OdeScene.Simulate() to move those joints out of pending/active | 229 | protected List<string> requestedJointsToBeDeleted = new List<string>(); // lock only briefly. accessed by external code (to request deletion of joints) and by OdeScene.Simulate() to move those joints out of pending/active |
230 | private Object externalJointRequestsLock = new Object(); | 230 | protected Object externalJointRequestsLock = new Object(); |
231 | private Dictionary<String, PhysicsJoint> SOPName_to_activeJoint = new Dictionary<String, PhysicsJoint>(); | 231 | protected Dictionary<String, PhysicsJoint> SOPName_to_activeJoint = new Dictionary<String, PhysicsJoint>(); |
232 | private Dictionary<String, PhysicsJoint> SOPName_to_pendingJoint = new Dictionary<String, PhysicsJoint>(); | 232 | protected Dictionary<String, PhysicsJoint> SOPName_to_pendingJoint = new Dictionary<String, PhysicsJoint>(); |
233 | 233 | ||
234 | private d.Contact contact; | 234 | protected d.Contact contact; |
235 | private d.Contact TerrainContact; | 235 | protected d.Contact TerrainContact; |
236 | private d.Contact AvatarMovementprimContact; | 236 | protected d.Contact AvatarMovementprimContact; |
237 | private d.Contact AvatarMovementTerrainContact; | 237 | protected d.Contact AvatarMovementTerrainContact; |
238 | private d.Contact WaterContact; | 238 | protected d.Contact WaterContact; |
239 | 239 | ||
240 | //Ckrinke: Comment out until used. We declare it, initialize it, but do not use it | 240 | //Ckrinke: Comment out until used. We declare it, initialize it, but do not use it |
241 | //Ckrinke private int m_randomizeWater = 200; | 241 | //Ckrinke protected int m_randomizeWater = 200; |
242 | private int m_physicsiterations = 10; | 242 | protected int m_physicsiterations = 10; |
243 | private float m_SkipFramesAtms = 0.40f; // Drop frames gracefully at a 400 ms lag | 243 | protected float m_SkipFramesAtms = 0.40f; // Drop frames gracefully at a 400 ms lag |
244 | private PhysicsActor PANull = new NullPhysicsActor(); | 244 | protected PhysicsActor PANull = new NullPhysicsActor(); |
245 | private float step_time = 0.0f; | 245 | protected float step_time = 0.0f; |
246 | //Ckrinke: Comment out until used. We declare it, initialize it, but do not use it | 246 | //Ckrinke: Comment out until used. We declare it, initialize it, but do not use it |
247 | //Ckrinke private int ms = 0; | 247 | //Ckrinke protected int ms = 0; |
248 | public IntPtr world; | 248 | public IntPtr world; |
249 | //private bool returncollisions = false; | 249 | //protected bool returncollisions = false; |
250 | // private uint obj1LocalID = 0; | 250 | // protected uint obj1LocalID = 0; |
251 | private uint obj2LocalID = 0; | 251 | protected uint obj2LocalID = 0; |
252 | //private int ctype = 0; | 252 | //protected int ctype = 0; |
253 | private OdeCharacter cc1; | 253 | protected OdeCharacter cc1; |
254 | private OdePrim cp1; | 254 | protected OdePrim cp1; |
255 | private OdeCharacter cc2; | 255 | protected OdeCharacter cc2; |
256 | private OdePrim cp2; | 256 | protected OdePrim cp2; |
257 | //private int cStartStop = 0; | 257 | //protected int cStartStop = 0; |
258 | //private string cDictKey = ""; | 258 | //protected string cDictKey = ""; |
259 | 259 | ||
260 | public IntPtr space; | 260 | public IntPtr space; |
261 | 261 | ||
262 | //private IntPtr tmpSpace; | 262 | //protected IntPtr tmpSpace; |
263 | // split static geometry collision handling into spaces of 30 meters | 263 | // split static geometry collision handling into spaces of 30 meters |
264 | public IntPtr[,] staticPrimspace; | 264 | public IntPtr[,] staticPrimspace; |
265 | 265 | ||
@@ -267,7 +267,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
267 | 267 | ||
268 | public IMesher mesher; | 268 | public IMesher mesher; |
269 | 269 | ||
270 | private IConfigSource m_config; | 270 | protected IConfigSource m_config; |
271 | 271 | ||
272 | public bool physics_logging = false; | 272 | public bool physics_logging = false; |
273 | public int physics_logging_interval = 0; | 273 | public int physics_logging_interval = 0; |
@@ -493,7 +493,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
493 | } | 493 | } |
494 | } | 494 | } |
495 | 495 | ||
496 | internal void waitForSpaceUnlock(IntPtr space) | 496 | public void waitForSpaceUnlock(IntPtr space) |
497 | { | 497 | { |
498 | //if (space != IntPtr.Zero) | 498 | //if (space != IntPtr.Zero) |
499 | //while (d.SpaceLockQuery(space)) { } // Wait and do nothing | 499 | //while (d.SpaceLockQuery(space)) { } // Wait and do nothing |
@@ -517,7 +517,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
517 | /// <param name="space">The space that contains the geoms. Remember, spaces are also geoms</param> | 517 | /// <param name="space">The space that contains the geoms. Remember, spaces are also geoms</param> |
518 | /// <param name="g1">a geometry or space</param> | 518 | /// <param name="g1">a geometry or space</param> |
519 | /// <param name="g2">another geometry or space</param> | 519 | /// <param name="g2">another geometry or space</param> |
520 | private void near(IntPtr space, IntPtr g1, IntPtr g2) | 520 | protected void near(IntPtr space, IntPtr g1, IntPtr g2) |
521 | { | 521 | { |
522 | // no lock here! It's invoked from within Simulate(), which is thread-locked | 522 | // no lock here! It's invoked from within Simulate(), which is thread-locked |
523 | 523 | ||
@@ -912,7 +912,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
912 | } | 912 | } |
913 | } | 913 | } |
914 | 914 | ||
915 | private bool checkDupe(d.ContactGeom contactGeom, int atype) | 915 | protected bool checkDupe(d.ContactGeom contactGeom, int atype) |
916 | { | 916 | { |
917 | bool result = false; | 917 | bool result = false; |
918 | //return result; | 918 | //return result; |
@@ -982,7 +982,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
982 | return result; | 982 | return result; |
983 | } | 983 | } |
984 | 984 | ||
985 | private void collision_accounting_events(PhysicsActor p1, PhysicsActor p2, float collisiondepth) | 985 | protected void collision_accounting_events(PhysicsActor p1, PhysicsActor p2, float collisiondepth) |
986 | { | 986 | { |
987 | // obj1LocalID = 0; | 987 | // obj1LocalID = 0; |
988 | //returncollisions = false; | 988 | //returncollisions = false; |
@@ -1160,7 +1160,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1160 | /// This is our collision testing routine in ODE | 1160 | /// This is our collision testing routine in ODE |
1161 | /// </summary> | 1161 | /// </summary> |
1162 | /// <param name="timeStep"></param> | 1162 | /// <param name="timeStep"></param> |
1163 | private void collision_optimized(float timeStep) | 1163 | protected void collision_optimized(float timeStep) |
1164 | { | 1164 | { |
1165 | _perloopContact.Clear(); | 1165 | _perloopContact.Clear(); |
1166 | 1166 | ||
@@ -1249,7 +1249,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1249 | #endregion | 1249 | #endregion |
1250 | 1250 | ||
1251 | // TODO: unused | 1251 | // TODO: unused |
1252 | // private float GetTerrainHeightAtXY(float x, float y) | 1252 | // protected float GetTerrainHeightAtXY(float x, float y) |
1253 | // { | 1253 | // { |
1254 | // return (float)_origheightmap[(int)y * Constants.RegionSize + (int)x]; | 1254 | // return (float)_origheightmap[(int)y * Constants.RegionSize + (int)x]; |
1255 | // } | 1255 | // } |
@@ -1295,7 +1295,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1295 | } | 1295 | } |
1296 | } | 1296 | } |
1297 | 1297 | ||
1298 | private PhysicsActor AddPrim(String name, PhysicsVector position, PhysicsVector size, Quaternion rotation, | 1298 | protected PhysicsActor AddPrim(String name, PhysicsVector position, PhysicsVector size, Quaternion rotation, |
1299 | IMesh mesh, PrimitiveBaseShape pbs, bool isphysical) | 1299 | IMesh mesh, PrimitiveBaseShape pbs, bool isphysical) |
1300 | { | 1300 | { |
1301 | PhysicsVector pos = new PhysicsVector(position.X, position.Y, position.Z); | 1301 | PhysicsVector pos = new PhysicsVector(position.X, position.Y, position.Z); |
@@ -1370,28 +1370,28 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1370 | } | 1370 | } |
1371 | 1371 | ||
1372 | // internal utility function: must be called within a lock (OdeLock) | 1372 | // internal utility function: must be called within a lock (OdeLock) |
1373 | private void InternalAddActiveJoint(PhysicsJoint joint) | 1373 | protected void InternalAddActiveJoint(PhysicsJoint joint) |
1374 | { | 1374 | { |
1375 | activeJoints.Add(joint); | 1375 | activeJoints.Add(joint); |
1376 | SOPName_to_activeJoint.Add(joint.ObjectNameInScene, joint); | 1376 | SOPName_to_activeJoint.Add(joint.ObjectNameInScene, joint); |
1377 | } | 1377 | } |
1378 | 1378 | ||
1379 | // internal utility function: must be called within a lock (OdeLock) | 1379 | // internal utility function: must be called within a lock (OdeLock) |
1380 | private void InternalAddPendingJoint(OdePhysicsJoint joint) | 1380 | protected void InternalAddPendingJoint(OdePhysicsJoint joint) |
1381 | { | 1381 | { |
1382 | pendingJoints.Add(joint); | 1382 | pendingJoints.Add(joint); |
1383 | SOPName_to_pendingJoint.Add(joint.ObjectNameInScene, joint); | 1383 | SOPName_to_pendingJoint.Add(joint.ObjectNameInScene, joint); |
1384 | } | 1384 | } |
1385 | 1385 | ||
1386 | // internal utility function: must be called within a lock (OdeLock) | 1386 | // internal utility function: must be called within a lock (OdeLock) |
1387 | private void InternalRemovePendingJoint(PhysicsJoint joint) | 1387 | protected void InternalRemovePendingJoint(PhysicsJoint joint) |
1388 | { | 1388 | { |
1389 | pendingJoints.Remove(joint); | 1389 | pendingJoints.Remove(joint); |
1390 | SOPName_to_pendingJoint.Remove(joint.ObjectNameInScene); | 1390 | SOPName_to_pendingJoint.Remove(joint.ObjectNameInScene); |
1391 | } | 1391 | } |
1392 | 1392 | ||
1393 | // internal utility function: must be called within a lock (OdeLock) | 1393 | // internal utility function: must be called within a lock (OdeLock) |
1394 | private void InternalRemoveActiveJoint(PhysicsJoint joint) | 1394 | protected void InternalRemoveActiveJoint(PhysicsJoint joint) |
1395 | { | 1395 | { |
1396 | activeJoints.Remove(joint); | 1396 | activeJoints.Remove(joint); |
1397 | SOPName_to_activeJoint.Remove(joint.ObjectNameInScene); | 1397 | SOPName_to_activeJoint.Remove(joint.ObjectNameInScene); |
@@ -1445,7 +1445,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1445 | } | 1445 | } |
1446 | } | 1446 | } |
1447 | 1447 | ||
1448 | private void DeleteRequestedJoints() | 1448 | protected void DeleteRequestedJoints() |
1449 | { | 1449 | { |
1450 | List<string> myRequestedJointsToBeDeleted; | 1450 | List<string> myRequestedJointsToBeDeleted; |
1451 | lock (externalJointRequestsLock) | 1451 | lock (externalJointRequestsLock) |
@@ -1525,7 +1525,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1525 | 1525 | ||
1526 | // for pending joints we don't know if their associated bodies exist yet or not. | 1526 | // for pending joints we don't know if their associated bodies exist yet or not. |
1527 | // the joint is actually created during processing of the taints | 1527 | // the joint is actually created during processing of the taints |
1528 | private void CreateRequestedJoints() | 1528 | protected void CreateRequestedJoints() |
1529 | { | 1529 | { |
1530 | List<PhysicsJoint> myRequestedJointsToBeCreated; | 1530 | List<PhysicsJoint> myRequestedJointsToBeCreated; |
1531 | lock (externalJointRequestsLock) | 1531 | lock (externalJointRequestsLock) |
@@ -1611,7 +1611,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1611 | return joint; | 1611 | return joint; |
1612 | } | 1612 | } |
1613 | 1613 | ||
1614 | private void RemoveAllJointsConnectedToActor(PhysicsActor actor) | 1614 | protected void RemoveAllJointsConnectedToActor(PhysicsActor actor) |
1615 | { | 1615 | { |
1616 | //m_log.Debug("RemoveAllJointsConnectedToActor: start"); | 1616 | //m_log.Debug("RemoveAllJointsConnectedToActor: start"); |
1617 | if (actor.SOPName != null && joints_connecting_actor.ContainsKey(actor.SOPName) && joints_connecting_actor[actor.SOPName] != null) | 1617 | if (actor.SOPName != null && joints_connecting_actor.ContainsKey(actor.SOPName) && joints_connecting_actor[actor.SOPName] != null) |