diff options
author | Robert Adams | 2013-08-08 08:36:36 -0700 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2013-09-20 21:02:20 +0100 |
commit | 826f8ce79127040b787c9a87696c92a9cb558cdb (patch) | |
tree | d5fddf8d1c0da1d7d237a49247797c528c1e6cff /OpenSim/Region/Physics/BulletSPlugin/BSLinkset.cs | |
parent | BulletSim: Linkset.Refresh() calls internal ScheduleRebuild() to recreate the... (diff) | |
download | opensim-SC_OLD-826f8ce79127040b787c9a87696c92a9cb558cdb.zip opensim-SC_OLD-826f8ce79127040b787c9a87696c92a9cb558cdb.tar.gz opensim-SC_OLD-826f8ce79127040b787c9a87696c92a9cb558cdb.tar.bz2 opensim-SC_OLD-826f8ce79127040b787c9a87696c92a9cb558cdb.tar.xz |
BulletSim: add physChangeLinkSpring to change linkset link to be a spring constraint. Add implementation to create spring constraint. Send up property updates for linkset children at the end of flexible linkset links. The simulator probably doesn't do the right thing yet.
Diffstat (limited to 'OpenSim/Region/Physics/BulletSPlugin/BSLinkset.cs')
-rwxr-xr-x | OpenSim/Region/Physics/BulletSPlugin/BSLinkset.cs | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSLinkset.cs b/OpenSim/Region/Physics/BulletSPlugin/BSLinkset.cs index d4b1c1e..2058e3a 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BSLinkset.cs +++ b/OpenSim/Region/Physics/BulletSPlugin/BSLinkset.cs | |||
@@ -79,6 +79,8 @@ public abstract class BSLinkset | |||
79 | } | 79 | } |
80 | public virtual void ResetLink() { } | 80 | public virtual void ResetLink() { } |
81 | public virtual void SetLinkParameters(BSConstraint constrain) { } | 81 | public virtual void SetLinkParameters(BSConstraint constrain) { } |
82 | // Returns 'true' if physical property updates from the child should be reported to the simulator | ||
83 | public virtual bool ShouldUpdateChildProperties() { return false; } | ||
82 | } | 84 | } |
83 | 85 | ||
84 | public LinksetImplementation LinksetImpl { get; protected set; } | 86 | public LinksetImplementation LinksetImpl { get; protected set; } |
@@ -224,6 +226,21 @@ public abstract class BSLinkset | |||
224 | return ret; | 226 | return ret; |
225 | } | 227 | } |
226 | 228 | ||
229 | // Check the type of the link and return 'true' if the link is flexible and the | ||
230 | // updates from the child should be sent to the simulator so things change. | ||
231 | public virtual bool ShouldReportPropertyUpdates(BSPrimLinkable child) | ||
232 | { | ||
233 | bool ret = false; | ||
234 | |||
235 | BSLinkInfo linkInfo; | ||
236 | if (m_children.TryGetValue(child, out linkInfo)) | ||
237 | { | ||
238 | ret = linkInfo.ShouldUpdateChildProperties(); | ||
239 | } | ||
240 | |||
241 | return ret; | ||
242 | } | ||
243 | |||
227 | // Called after a simulation step to post a collision with this object. | 244 | // Called after a simulation step to post a collision with this object. |
228 | // Return 'true' if linkset processed the collision. 'false' says the linkset didn't have | 245 | // Return 'true' if linkset processed the collision. 'false' says the linkset didn't have |
229 | // anything to add for the collision and it should be passed through normal processing. | 246 | // anything to add for the collision and it should be passed through normal processing. |
@@ -432,6 +449,13 @@ public abstract class BSLinkset | |||
432 | return com; | 449 | return com; |
433 | } | 450 | } |
434 | 451 | ||
452 | #region Extension | ||
453 | public virtual object Extension(string pFunct, params object[] pParams) | ||
454 | { | ||
455 | return null; | ||
456 | } | ||
457 | #endregion // Extension | ||
458 | |||
435 | // Invoke the detailed logger and output something if it's enabled. | 459 | // Invoke the detailed logger and output something if it's enabled. |
436 | protected void DetailLog(string msg, params Object[] args) | 460 | protected void DetailLog(string msg, params Object[] args) |
437 | { | 461 | { |