Justin Clark-Casey (justincc)
047ef9c2a5
minor: remove some mono compiler warnings in OdePlugin
2013-07-08 23:36:57 +01:00
Justin Clark-Casey (justincc)
aae76f7be4
Stop logging spurious asset data for {0} is zero length error for sculpts/mesh
...
ODEPrim, for instance, always hits this code path twice at the moment
Firstly before any sculpt data has been loaded (hence the spurious message)
Secondly when any sculpt data has been loaded or failed to load (when the message would be valid).
Hence comment this out and rely on the message in ODEPrim.MeshAssetReceived() instead
(though this is not ideal since it requires all physics plugins to copy/paste similar code).
2012-11-28 02:01:04 +00:00
Justin Clark-Casey (justincc)
ff6c69000e
Log warning if mesh/sculpt asset couldn't be found by ODEPrim.MeshAssetReceived() callback.
...
Presumably this is now more useful if the false positive from the old method of loading mesh assets have been eliminated.
2012-10-30 01:40:59 +00:00
Justin Clark-Casey (justincc)
cccf695327
Add asset != null check to ODEPrim.MeshAssetReceived instead of throwing exception.
...
In some cases (such as failure to receive response from asset service), it is possible for a null to be returned from IAssetService.Get(string, object, AssetRetrieved).
2012-10-30 01:14:48 +00:00
Justin Clark-Casey (justincc)
37de965233
Make MeshAssetReceived private.
...
Keep methods private unless they need to be opened up to external callers. Reduces analysis complexity.
2012-10-30 01:08:00 +00:00
Justin Clark-Casey (justincc)
aeeed29d62
correct ODEPrim.MeshAssetReveived -> MeshAssetReceived
2012-10-30 01:07:14 +00:00
Justin Clark-Casey (justincc)
5bc07a15f5
minor: remove unnecessary bit of method doc from OdePrim.BadMeshAssetCollideBits that monodevelop inserted automatically
2012-10-20 02:52:38 +01:00
Justin Clark-Casey (justincc)
d2b19f00da
Fix minor issues from commit 28483150
...
Fix spelling of collide, change to more self-documenting property BadMeshAssetCollideBits, add method doc, change to private to reduce code analysis complexity
2012-10-20 02:49:16 +01:00
UbitUmarov
28483150e2
[UNTESTED] core Ode: let broken mesh physical prims collide with land as
...
the defaul basic box so they don't go off world.
2012-10-19 01:19:48 +01:00
UbitUmarov
b058ba5859
[UNTESTED] core Ode: stop trying to load a broken asset. Make broken
...
assets behave like phantom by Nebadon request
2012-10-19 00:30:48 +01:00
UbitUmarov
1e7fb2dc36
i update core ode plugin and make it load is meshs (i hope)
...
Signed-off-by: Melanie <melanie@t-data.com >
2012-10-18 20:58:12 +01:00
teravus
a2ab3b88de
Soliciting for comments on smoothness of physics objects for this build.
...
This introduces expected contact point hints to the ODE Collider to better determine when to throttle updates as excessive. This /should/ smooth physics objects out again, however, I cannot know every configuration of OpenSimulator, so I'm requesting that testers please examine this change on their build.
Thanks!
2012-10-03 18:30:44 -04:00
teravus
e56ef2720e
I propose that 0.5m/step change for linear velocity is too big of a change to control the reporting of a new angular velocity. I think that this could be here for one of two reasons, 1. vehicles and llMoveToTarget with axis lock, or 2. To attempt to make things look more stable in the physics scene then they really are, however, this also really affects the angular velocity reporting negatively causing things to spin wildly and jump back into place repeatedly. To compromise, if the prim is a vehicle or is being used as a motor target, the original functionality is still applied. If that's not the case, angular velocity is reported with a linear velocity of 0.02m/step. To be clear on the effect of the physical world... When you push things, there's still a lag time where you walk into the object but once the object is in motion, it begins to move as you would expect so results in slightly more realistic motion.
2012-10-03 02:30:23 -04:00
teravus
df3d1d1301
Minor Modification, switch /2 to 0.5f in ODEPrim.Velocity
2012-10-02 23:14:35 -04:00
Justin Clark-Casey (justincc)
c6f30e044b
Restore _parent_scene.actor_name_map[prim_geom] = this; accidentally removed from ODEPrim.SetGeom.
...
This occurred in 7a574be3fd from Sat 21 Apr 2012.
This should fix collision detection.
Mnay thanks to tglion for the spot and the fix in http://opensimulator.org/mantis/view.php?id=5988
2012-04-24 20:15:10 +01:00
Justin Clark-Casey (justincc)
ae2b8f7007
Comment out spurious Body != IntPtr.Zero code after disableBody(), since disableBody() sets Body == IntPtr.Zero on all code paths.
2012-04-21 03:42:54 +01:00
Justin Clark-Casey (justincc)
f609594595
refactor: Simplify ODEPrim.AddChildPrim() by returning early where appropriate.
2012-04-21 03:23:51 +01:00
Justin Clark-Casey (justincc)
7a574be3fd
Remove redundant prim_geom != IntPtr.Zero checks in ODEPrim.
...
prim_geom == IntPtr.Zero only before a new add prim taint is processed (which is the first taint) or in operations such as scale change which are done in taint or under lock.
Therefore, we can remove these checks which were not consistently applied anyway.
If there is a genuine problem, better to see it quickly in a NullReferenceException than hide the bug.
2012-04-21 00:12:07 +01:00
Justin Clark-Casey (justincc)
566327a948
If a physical prim is manually moved (e.g. by a user) then set the geometry position as well as the body position
...
This is necessary to stop the moved prim snapping back to the original position on deselection if moved only once
This resolves http://opensimulator.org/mantis/view.php?id=5966
2012-04-20 23:24:24 +01:00
Justin Clark-Casey (justincc)
1c0f3a1f21
Fix crash where two scene loop threads could changes m_MeshToTriMeshMap at the same time.
...
Have to lock m_MeshToTriMeshMap as property is static and with more than one region two scene loops could try to manipulate at the same time.
2012-03-20 00:40:03 +00:00
Justin Clark-Casey (justincc)
f67f37074f
Stop spurious scene loop startup timeout alarms for scenes with many prims.
...
On the first frame, all startup scene objects are added to the physics scene.
This can cause a considerable delay, so we don't start raising the alarm on scene loop timeouts until the second frame.
This commit also slightly changes the behaviour of timeout reporting.
Previously, a report was made for the very first timed out thread, ignoring all others until the next watchdog check.
Instead, we now report every timed out thread, though we still only do this once no matter how long the timeout.
2012-02-24 05:02:33 +00:00
Dan Lake
a1dc4e830d
Remove unused SetAcceleration and add set on Acceleration parameter
2011-12-20 13:40:24 -08:00
Justin Clark-Casey (justincc)
daf99f8c0a
slightly simplify OdeScene.Simulate() by removing bool processtaints, since we can inspect count of taint lists instead.
...
also groups OdeCharacter.CreateOdeStructures() and DestroyOdeStructures() together
2011-11-22 21:51:00 +00:00
Justin Clark-Casey (justincc)
225b925f4e
Comment out calls to OdeScene.waitForSpaceUnlock() since that method does nothing right now
2011-11-21 19:48:31 +00:00
Justin Clark-Casey (justincc)
cead87005b
Have ODECharacter and ODEPrim both use PhysicsActor.Name instead of maintaining their own properties
2011-11-21 18:06:04 +00:00
Justin Clark-Casey (justincc)
b6d83e9c0f
Stop OdePrim and OdeCharacter insanely overriding set LocalID to set their own private m_localID property but leaving get to return the then unset PhysicsActor.LocalId!
...
Instead, just have both subclasses use the PhysicsActor.LocalID property.
This restores collision functionality that fell away in 45c7789 yesterday
2011-11-16 23:01:59 +00:00
Justin Clark-Casey (justincc)
f7b8c54c24
Add comment for experimental effect of removing the Thread.Sleep(20) in ODEPrim.changevelocity()
2011-11-04 23:43:17 +00:00
Justin Clark-Casey (justincc)
820242bc49
Fix a bug I introduced yesterday in ODE physics where prim scripts would only receive the very first collision.
2011-10-27 02:05:59 +01:00
Justin Clark-Casey (justincc)
0f83f87233
Remove unused fields from CollisionEventUpdate
2011-10-25 22:39:08 +01:00
Justin Clark-Casey (justincc)
b9f106f484
When sending object collision updates, don't null out and recreate the CollisionEventUpdate() if the number of collisions falls to zero. Reuse the existing one instead.
2011-10-25 22:28:40 +01:00
Justin Clark-Casey (justincc)
f10a824e47
Remove unnecessary lock of OdeLock in OdePrim.changeadd()
...
This taint can only ever be processed from the OdeScene.Simulate() loop, which already locks OdeLock.
2011-10-18 20:58:59 +01:00
Justin Clark-Casey (justincc)
5515c45e3b
minor: method doc to explain a lock of OdeLock
2011-10-18 20:56:11 +01:00
Justin Clark-Casey (justincc)
71d221cdc0
Remove the unused CollisionLocker from ODE
...
Despite its name, this wasn't actually being used in any collision checking
2011-10-18 17:35:58 +01:00
Justin Clark-Casey (justincc)
9cc2694776
restrict unnecessary access levels on ODEPrim fields/properties
2011-10-15 01:31:09 +01:00
Justin Clark-Casey (justincc)
f2132329a3
refactor: make methods that do not need to be public in ODE private or internal to aid code reading/analysis. Remove some unused method arguments
2011-10-15 01:20:40 +01:00
Justin Clark-Casey (justincc)
1e798136c3
adjust some whitespace to trigger another build, to check the last failure was just a glitch
2011-09-17 01:33:55 +01:00
Justin Clark-Casey (justincc)
05e94ff27e
Move common gemo/agent map name code into CreateGeom()
...
Fix build break.
2011-08-01 07:04:13 +01:00
Justin Clark-Casey (justincc)
f9d6a91252
Instead of preserving old name in geom_name_map in change size or shape, use the Name property instead.
...
This is equivalent since the prim 'name' is never changed. In fact, this propery is never used for prims
2011-08-01 06:52:52 +01:00
Justin Clark-Casey (justincc)
ccb4b76242
On geom removal, remove the name from the OdeScene.geom_name_map too
2011-08-01 06:40:29 +01:00
Justin Clark-Casey (justincc)
f79df6f43f
remove the unused ODEPrim.prev_geom field
2011-08-01 06:35:59 +01:00
Justin Clark-Casey (justincc)
f32dbef647
When an ODE geom is removed (as when a non-phantom prim is deleted, resized or shape changed, also remove the OdeScene.actor_name_map entry pointing to the phys actor
...
This is to stop a small memory leak over time when prims are deleted or phantom-toggled
2011-08-01 06:32:30 +01:00
Justin Clark-Casey (justincc)
6618948ff9
refactor: centralize prim geom removal code from four places to one
2011-08-01 06:15:02 +01:00
Justin Clark-Casey (justincc)
509200d5cd
minor: add note to RemovePrimThreadLocked() to the effect that it contrary to the summary, it is being called from within Simulate() lock (OdeLock)
2011-08-01 05:48:27 +01:00
Justin Clark-Casey (justincc)
dfa2f7d715
If a prim changes size or shape, add actor to _parent_scene.actor_name_map with new prim_geom key, as the old one becomes invalid.
...
This resolves http://opensimulator.org/mantis/view.php?id=5603 where changing size or shape would stop collision_start being fired in a running script.
In both this and existing code we are not removing old actors from actor_name_map when the existing prim_geom is removed, which leads to a small memory leak over time.
This needs to be fixed.
2011-08-01 05:43:04 +01:00
Justin Clark-Casey (justincc)
d041276517
Remove _mesh field since the mesh data no longer needs to be stored after it's initially used.
...
This may improve memory usage for regions using mesh and sculpts, though I suspect that it doesn't address the current memory leak.
2011-07-31 01:03:52 +01:00
Justin Clark-Casey (justincc)
bd8f538f80
refactor: Remove argument to pass in an initial mesh to OdePrim since this is no longer required and it prevents removal of the _mesh field (which is only used temporarily)
...
If passing in a mesh becomes important again in the future then this can be reinstated.
2011-07-31 00:49:49 +01:00
Justin Clark-Casey (justincc)
196a774b24
minor: correct method doc for last commit
2011-07-31 00:45:20 +01:00
Justin Clark-Casey (justincc)
454312f5bc
refactor: rename CreateGeom _mesh argument to mesh, so as to not confuse this with the pre-existing _mesh field
2011-07-31 00:44:23 +01:00
Justin Clark-Casey (justincc)
f1ce17071d
minor: method doc
2011-07-31 00:43:02 +01:00
Justin Clark-Casey (justincc)
e08be91c84
Refactor: Replace instances of m_isphysical with IsPhysical rather than have some code reference the private var and other the public var without any functionality difference.
...
Add some method doc to IsPhysical
2011-07-30 23:44:47 +01:00