Robert Adams
e57c0e6731
BulletSim: fix buoyancy so it's properly set by a script when an
...
object is selected.
Update TODO list.
2012-12-27 22:12:26 -08:00
Robert Adams
7230990679
BulletSim: fix odd code that wasn't really recomputing the mass of a
...
rebuilt linkset. I was burnt by making get/set methods with side
effects. I should know better.
2012-12-27 22:12:26 -08:00
Robert Adams
f3baed5827
BulletSim: add physical parameter min/max constants in BSParam. I just don't like raw numbers scattered around the code.
2012-12-27 22:12:25 -08:00
Robert Adams
e98e223927
BulletSim: complete applyImpulse function in BSCharacter (like I said
...
I did last time).
2012-12-27 22:12:25 -08:00
teravus
29cdf0f3dd
* Merges BulletSim Updates to BulletSimN(BulletSNPlugin)
2012-12-18 15:00:10 -05:00
Robert Adams
225b564573
BulletSim: scale the force for external AddForce by the simulation
...
step time so it will be applied completely the next step. The internal
AddForce routine does not scale the force.
2012-12-26 10:25:50 -08:00
Robert Adams
d1ede1df3a
BulletSim: make llBuoyancy work. For some reason, Bullet resets an
...
object's individual gravity to the world gravity when the object
is added to the physical world.
2012-12-25 23:55:25 -08:00
Robert Adams
5f71ee57c4
BulletSim: stop avatar from sliding VERY slowly after walking by
...
only zeroing the movement motor in the UpdateProperties routine.
2012-12-25 23:54:10 -08:00
Robert Adams
bbc5a5089f
BulletSim: Rename some of the interface structures (BulletWorld, ...)
...
to get ready for...
Start creation of BulletAPITemplate. This defines the abstract interface
functions. Following commits will move over to the new interface.
This will enable switching between the managed and unmanaged version of
Bullet.
2012-12-24 20:18:06 -08:00
Robert Adams
4759a8acee
BulletSim: Default avatar density changed to 3.5 which is WAY closer
...
to the SL value.
Fixed frictin values for physical materials which were just wrong
which caused things that should have slipped to not.
2012-12-24 20:16:10 -08:00
Robert Adams
80cee1b85a
BulletSim: Fix single physical prim reporting its mass as zero.
...
Properly return root mass as mass of just the root prim rather
than the mass of the linkset. SOG has the logic to add the masses
together to get the linkset mass.
Update TODO list.
2012-12-24 08:56:02 -08:00
teravus
9318870607
* Update BulletSimN terrain implementation to default to Heightfield, it's less CPU intensive.
2012-12-23 16:17:18 -05:00
teravus
92e4f9f412
* Initial commit of BulletSimN (BulletSNPlugin). Purely C# implementation of BulletSim. This is designed to be /as close as possible/ to the BulletSim plugin while still being entirely in the managed space to make keeping it up to date easy as possible (no thinking work). This implementation is /slower/ then the c++ version just because it's fully managed, so it's not appropriate for huge sims, but it will run small ones OK. At the moment, it supports all known features of BulletSim. Think of it like.. POS but everything works. To use this plugin, set the physics plugin to BulletSimN.
2012-12-23 15:21:25 -05:00
Robert Adams
30807b81cc
BulletSim: modify avatar motor code to make falling movement better. Clean up some usages. Disable motor when done.
2012-12-22 17:09:40 -08:00
Robert Adams
144322a7c9
BulletSim: remove post step one-time taints (doesn't make any sense). Rename pre and post step event invocation routines to Trigger* to be consistant. Remove old, unused code.
2012-12-22 17:07:52 -08:00
Robert Adams
16e49035f7
BulletSim: add Enabled parameter and operation to motors.
2012-12-22 17:06:13 -08:00
Robert Adams
5b2cbc0ae6
BulletSim: remove all special vehicle code from BSScene. Replace per-frame updates for vehicles with per-frame action registration. One fewer special case.
2012-12-21 23:24:31 -08:00
Robert Adams
a54392d7cc
BulletSim: remove the movement decay while flying. Made flying slow down over time.
2012-12-21 23:05:05 -08:00
Robert Adams
37fb691ba5
BulletSim: Fix llApplyImpulse so it works after the first impulse. The problem was Bullet deactivating the object between the pushes (when, as far as the physics engine is concerned, it isn't moving).
2012-12-21 23:03:27 -08:00
Robert Adams
3d659fe97d
BulletSim: add BSPhysObject code to manage registrations of preStep events. Use same to implement setForce and setTorque so the values are restored at the beginning of each step (since Bullet zeros forces applied last step). Simplify implementation of AddForce and AddTorque by relying on the addition of forces in Bullet.
2012-12-21 17:27:53 -08:00
Robert Adams
6dbf9c8ed4
BulletSim: repair vehicle problems introduced in previous 'improvements'. Fix line endings in BSParams.
2012-12-21 15:21:32 -08:00
Robert Adams
ae4d932e7f
BulletSim: Move all the parameter variables, tables and get and fetch logic to a separate, static class for easier addition and to remove all that bulk from the BSScene class.
2012-12-21 13:35:44 -08:00
Robert Adams
2e3e95e846
BulletSim: small fix to avatar movement motor use which keeps avatar from flying up forever. This doesn't fix the overall problem but keeps avatar flying from being totally unusable.
2012-12-21 10:04:12 -08:00
Robert Adams
8c99f63239
BulletSim: avatar movement smoothed with motor that modifies avatar velocity to target velocity. Fails in incorporating physical world effects (gravity) so avatar doesn't fly correctly.
2012-12-21 10:00:03 -08:00
Robert Adams
b4f8a05e9a
BulletSim: Better detail logging of VMotor actions.
2012-12-21 09:56:31 -08:00
Robert Adams
750492796d
BulletSim: begin movement of parameters from pinned memory block to variables all in managed code. Add note to TODO list to remember to do the rest. Other updates to TODO list.
2012-12-21 09:55:20 -08:00
Robert Adams
9d2f569d60
BulletSim: fix incorrectly defined property changed flag.
2012-12-20 16:06:52 -08:00
Robert Adams
e522bdb96a
BulletSim: Check for unspecified TimeScale in BSVMotor and don't scale if not specified. Add test dump routine. Don'e zero current and target values when error goes to zero as the values could be used externally to store the actual target values, etc.
2012-12-20 16:05:33 -08:00
Robert Adams
a5b2539cf9
BulletSim: replace use of funky nullable values for vehicle property update control (m_known* stuff). Bitmaps will be quicker to test and to clear.
2012-12-20 10:32:33 -08:00
Robert Adams
e73dac4deb
BulletSim: angularMotorUp working again (seems a little slow as it takes longer than timescale to correct, but getting better). Disabled angularDeflection (need to resolve interactions between angular corrections). Update TODO list.
2012-12-20 10:19:16 -08:00
Robert Adams
b7ad44e3a6
BulletSim: reorganize motor step code to separate error computation allowing subclass for PID error correction.
2012-12-20 08:35:36 -08:00
Robert Adams
a9b9c0f035
BulletSim: improve angularVerticalAttraction calculation to compute angular correction velocity rather than estimating correction (excuse to use trig functions).
2012-12-18 23:05:59 -08:00
Robert Adams
7b84bcfbb8
BulletSim: initial implementation of a PID motor. Not hooked up yet.
2012-12-18 22:59:59 -08:00
Robert Adams
cf89e29ac3
BulletSim: comments and TODO list update
2012-12-18 19:25:51 -08:00
Robert Adams
d15bfcf614
Replace axis rotation numeric constants (STATUS_ROTATE_XYZ) with symbols. Also made it so llSetStatus() can individually enable disable rotation axi using the bitmask of flags.
2012-12-18 19:25:40 -08:00
Justin Clark-Casey (justincc)
ae67435146
Disable UDPPacketBuffer pooling for now to resolve an issue on Windows of interference between incoming packets.
...
On Windows, concurrent multi-threaded processing of inbound UDP somehow allows different data input processing to interfere with each other.
Possibly the endpoint reference is being switched, though I don't yet know the mechanism. Not seen on Mono.
Also resolveable by setting RecyclePackets = false or RecycleBaseUDPPackets = false in [PacketPool]
Or async_packet_handling = false in [ClientStack.LindenUDP]
For now, will simply disable this particular pooling though will revisit this issue.
In response to http://opensimulator.org/mantis/view.php?id=6468
2012-12-19 01:51:30 +00:00
Justin Clark-Casey (justincc)
235afebf03
Merge branch 'master' of ssh://opensimulator.org/var/git/opensim
2012-12-17 22:19:42 +00:00
Robert Adams
8653ea93b2
BulletSim: apply friction to linear and angular motion before returning advanced motor value. This seems to be the problem with BulletSim vehicles turning too quickly. Also removed the configuration parameter that controlled the timestep scaling kludge for angular velocity that was added to research the question of quick turning.
2012-12-17 13:51:39 -08:00
Justin Clark-Casey (justincc)
e6fd8365af
Extend default 1 second wait for event completion to other thread script reset (as called by llResetOtherScript()).
...
As with script stop (via llDie()) aborting other scripts event threads, llResetOtherScript() can also abort any current event thread on another script.
On mono 2.6, 2.10 and possibly later this may cause locking problems in certain code areas.
This commit reuses the recently introduced [XEngine] WaitForEventCompletionOnScriptStop to make this a 1 sec timeout, rather than 0 secs.
2012-12-17 21:37:02 +00:00
Robert Adams
11532a4390
BulletSim: fix vehicles going underground when unsat. Problem was that, when doing unsit, the order of operations on the prims and the vehicle is very chaotic and not in a good order so the root prim was being left physical and thus it fell for a bit. Also changed default of velocity scaling to be closer to the movement standard.
2012-12-17 13:22:04 -08:00
Robert Adams
021623a17d
BulletSim: fix vehicles being shot in the air at border crossings because of mis-application of correction to postion for below groundness.
2012-12-16 22:31:22 -08:00
Robert Adams
2b8efa24dd
BulletSim: add parameter to UpdateProperties call into the linkset so changes from the physics engine can be differentiated from changes made by the user. This eliminates a linkset rebuild loop. Also add logic to not rebuild or freak out when the object/linkset crosses a terrain boundry.
2012-12-16 21:19:13 -08:00
Robert Adams
3f2aaffd4d
BulletSim: add even more to the TODO list.
2012-12-16 21:19:13 -08:00
Robert Adams
7ed860d3ac
BulletSim: add check for border crossing in character position sanity check.
2012-12-16 21:19:12 -08:00
Robert Adams
4cbc5082ff
BulletSim: refactor to combine common terrain height testing code. Add function to test if a position is over known terrain.
2012-12-16 21:19:12 -08:00
Robert Adams
8a95953bb7
BulletSim: experimentally remove unit displacement from prim border crossing test. This seems to cause border crossing to be sensed either a little early or a little late depending on which directin the object is moving. If border crossings become totally borked or someone remembers why this was displacement was done, revert this change.
2012-12-16 21:19:12 -08:00
Robert Adams
f3b1efd889
BulletSim: remove some errors on shutdown by moving terrain destruction until after physical object destruction. TerrainManager also made disposable and that feature used.
2012-12-16 21:19:11 -08:00
Robert Adams
ace1f1e931
BulletSim: rip out old code for linkset child position fetching. BulletSim doesn't need to do that bookkeeping because SOG/SOP already does it.
2012-12-16 21:19:10 -08:00
Justin Clark-Casey (justincc)
1a262bdde7
Make WebStatsModule properly handle scenes added or removed after initial startup.
...
This may have been the cause of the DivByZero in http://opensimulator.org/mantis/view.php?id=6460
2012-12-15 00:45:27 +00:00
Justin Clark-Casey (justincc)
494e6a5f11
minor: If the physics module tells us that an object has gone out of bounds, more helpfully log the name, id, position and region of that object.
2012-12-15 00:30:17 +00:00
Justin Clark-Casey (justincc)
56ec177b3b
minor: Add commented out log lines to ScenePresenceAnimator for future debug use (such as logging anim pack contents sent to clients)
2012-12-14 23:42:23 +00:00
Justin Clark-Casey (justincc)
2816551215
Merge branch 'master' of ssh://opensimulator.org/var/git/opensim
2012-12-14 23:29:33 +00:00
Justin Clark-Casey (justincc)
750ad2d3af
Fix issue where calling llVolumeDetect(FALSE) would not remove phantom flag, causing subsequent issues if physics was re-enabled.
...
Added regression tests
Addresses http://opensimulator.org/mantis/view.php?id=6365
2012-12-14 22:15:40 +00:00
Robert Adams
664dad53dd
BulletSim: Add more to the TODO list. Clean up and improve some comments.
2012-12-13 23:08:01 -08:00
Robert Adams
469c6c000a
Return the last set targetVelocity rather than the current velocity as the default action made available in PhysicsActor.TargetVelocity. Doesn't change any physics operation but makes DSG work better as the targetVelocity value does not keep moving around.
2012-12-13 16:32:25 -08:00
Robert Adams
31d3952477
BulletSim: fix problem with continuious rebuilding of physical linksets. This caused movement problems and large prim vehicles to take up a LOT of simulation time.
2012-12-13 16:32:19 -08:00
Robert Adams
60950bfab5
BulletSim: correct line endings in new BulletSimData.cs file.
2012-12-13 16:32:12 -08:00
Robert Adams
3b2b785a46
BulletSim: Add 'BulletSimData' which separates structures created
...
for the operation of BulletSim and those defintiions/structures defined
so they can be used in the unmanaged world.
Consolidate setting of collision flags so implementation is not scattered.
2012-12-13 16:32:06 -08:00
Robert Adams
9e0dd9952b
BulletSim: remove extra linkset rebuilds.
2012-12-13 16:32:00 -08:00
Justin Clark-Casey (justincc)
0b93a68030
minor: add some more detail to the logging if an LLClientView fails to process a packet
2012-12-13 23:32:28 +00:00
Justin Clark-Casey (justincc)
3c91d0e00d
Merge branch 'master' of ssh://opensimulator.org/var/git/opensim
2012-12-13 23:21:52 +00:00
Justin Clark-Casey (justincc)
523213060b
Add WaitForEventCompletionOnScriptStop [XEngine] config param to OpenSimDefaults.ini to allow change of the wait time for an event to complete on script removal before aborting its thread
...
Default is 1000, as has previously been the case.
This parameter exists for further debug work concerning mono 2.10 crashes that may be related to locks not being removed on Thread.Abort
2012-12-13 23:21:25 +00:00
Dan Lake
88b094cbf7
Simplify sit code a bit by determining correct animation in HandleSit instead of HandleSitRequest. This eliminates m_nextSitAnimation, an unneeded state-saving variable in ScenePresence
2012-12-13 13:05:28 -08:00
Justin Clark-Casey (justincc)
8e8da20af2
Merge branch 'master' of ssh://opensimulator.org/var/git/opensim
2012-12-13 01:12:12 +00:00
Justin Clark-Casey (justincc)
6fca93f0b1
Fix sounds so that they play from inventory after teleport rather than only on initial login region.
...
Regression from commit ed162a10
(Fri Oct 5 13:50:12 2012)
We had started listening for the client login event for attaching the sound trigger event rather than OnNewClient
Addresses http://opensimulator.org/mantis/view.php?id=6453
Many thanks to danbanner for identifying the exact commit where this went wrong, which made identifying the fix easy.
2012-12-13 01:03:35 +00:00
Robert Adams
e1814aa827
BulletSim: fix problem of avatar's floating off the ground after unsitting. Reworked size/scale logic so physical scale is kept in Bullet and physObject scale is the preferred size -- usually same as size but avatars are computed differently.
2012-12-12 16:51:43 -08:00
Robert Adams
6f1f7f0206
BulletSim: non-functional commenting and reorganization of material attribute specifications.
2012-12-12 16:51:36 -08:00
Robert Adams
7bb5613dc6
BulletSim: updates and rearrangement of the TODO list.
2012-12-12 16:51:29 -08:00
Justin Clark-Casey (justincc)
512e4c9313
Log situations where workitem event threads are aborted on stop request because they failed to complete event processing within the given timeout.
...
This is for bug hunting purposes where thread aborts may be causing dangling lock issues and subsequent vm crashes on mono (with ReaderWriterLockSlim, etc.)
2012-12-12 23:30:26 +00:00
Justin Clark-Casey (justincc)
047270bdc8
Add "debug script log" command to allow setting a numeric debug level on individual IScriptInstances for debugging purposes.
...
Current, state changes and event fires can be logged for individual scripts.
See command help for more details.
2012-12-12 23:13:34 +00:00
Justin Clark-Casey (justincc)
418c0cb01d
Add asset id to "show script" and "show scripts" command output to make it easier to extract and inspect the script's asset via "dump asset"
2012-12-12 22:06:09 +00:00
Robert Adams
bb6eeb5429
BulletSim: do not return the current velocity for targetVelocity.
2012-12-12 11:01:36 -08:00
Robert Adams
a082ce9da7
BulletSim: fix crash caused by the creation of a linkset child that is under the terrain. Users can sure find some interesting corner conditions.
2012-12-11 14:27:09 -08:00
Robert Adams
d4e0e98c00
BulletSim: protect character property setting to remove crash from taints setting properties after the destroy character taint.
2012-12-11 13:54:26 -08:00
Robert Adams
63099184db
BulletSim: protect prim property setting to remove crash from taints setting properties after the destroy object taint has happened.
2012-12-11 13:42:23 -08:00
Robert Adams
905d7c43ad
BulletSim: modify LIMIT_MOTOR_UP to limit BOAT types to be at water rather than ground level. This makes boats float at water level better but not perfectly. There probably needs to be some interaction between HOVER and LIMIT_MOTOR_UP.
2012-12-11 00:35:16 -08:00
Robert Adams
8b861e880a
BulletSim: add ini file and command line parameters to control
...
dumping of physical vehicle parameters (out of Bullet) on each
simulation step and to optionally scale vehicle angular velocity
by the time step. The latter looks to be part of a difference
between angular parameters for ODE and BulletSim. SL docs say
angular velocity is measured in radians/timeScale. Not sure if this
is different than what ODE does.
2012-12-11 00:13:13 -08:00
Robert Adams
ebf30e7ba6
BulletSim: set mass for single prim linksets when going physical. This fixes single prim vehicles not working (the surf board now zooms).
2012-12-11 00:02:20 -08:00
Robert Adams
93393fb975
BulletSim: comment out some chatty debug logging. Rearrange some code in BSDynamics to make velocity vs force calculation clearer.
2012-12-10 16:46:12 -08:00
Robert Adams
9df85eadf4
BulletSim: Fix crash on the destruction of physical linksets.
...
While fixing the above, add methods to physical body and shape pointer
wrapper so routines won't have to know that IntPtr.Zero means no
physical instance.
Fix problem with physical linksets failing after a few sits and
unsits by properly restoring child prom positions for compound
linksets after multiple selection and deselections.
2012-12-10 15:35:53 -08:00
Robert Adams
a19896cc56
BulletSim: some comments about rebuilding linksets (having to recompute and restore a child's position in the world based on its position in the moved linkset).
2012-12-09 22:32:46 -08:00
Robert Adams
ce5083a504
BulletSim: adjust friction and restitution based on material type.
2012-12-09 22:32:46 -08:00
Diva Canto
af8d53657d
HGAssetMapper: Get wasn't really working. It's true that some assets are copied in the process of being gathered their UUID, but not all. Specifically, terminal assets like textures aren't copied. We have to go one more time through the ids.
2012-12-09 22:05:12 -08:00
Diva Canto
b8178f5a50
Switched the order by which foreign inventory and foreign assets are brought in, to avoid race conditions on the client.
2012-12-09 22:03:21 -08:00
Diva Canto
cb80d8a29c
UserManagementModule: search the local cache for names too.
...
Inventory transfers: don't do async on asset transfers or now.
2012-12-09 15:31:11 -08:00
Robert Adams
04e64d73df
BulletSim: set material properties for static objects. Move Linkset.MakeStatic() after call to ForceActivationState2() since linkset might change activation state. Make BSPrim.CreateGeomAndObject public as linkset rebuilding might need access to it. Only rebuild prim if selection state is actually changes -- OpenSimulator calls PhysObject.Selected() multiple times whenever a prim is selected or deselected.
2012-12-08 09:14:40 -08:00
Robert Adams
216c121935
BulletSim: fix small problem with setting size/scale of native shapes which caused the native shapes to be rebuilt when not necessary.
2012-12-08 09:14:34 -08:00
Robert Adams
addb791f3d
BulletSim: update comments and add more to TODO list.
2012-12-08 09:14:28 -08:00
Justin Clark-Casey (justincc)
63cff49bce
Re-enable code disabled in f605a62
to allow a TaskInventoryAccepted message to nominate a non-root destination folder.
...
This is in relation to http://opensimulator.org/mantis/view.php?id=6311
This is after further analysis which shows the viewer expects the server to move the folder for #RLV give but then should be renaming the folder itself.
For some reason this is not happening, possibly because we are not sending BulkUpdates or because we are not using transaction IDs properly.
This needs to be fixed in the future.
However, moving the folder even if the rename isn't correctly triggered in the viewer seems preferable to disabling this code altogether.
2012-12-08 01:29:58 +00:00
Justin Clark-Casey (justincc)
4e622f6816
Merge branch 'master' of ssh://opensimulator.org/var/git/opensim
2012-12-07 00:53:47 +00:00
Justin Clark-Casey (justincc)
0568c76a88
Use a thread abort safe version of OpenMetaverse.DoubleDictionary with the aim of avoiding OpenSimulator problems due to script thread aborts.
...
When an object is removed, its scripts are stopped and then the thread running them is aborted if stop takes too long.
However, it appears that aborting a thread at just the wrong moment when it is obtaining a ReaderWriterLockSlim lock can leave this lock in an inconsistent state.
One symptom of this is that mono leaps to 100% cpu and a vm thread dump reveals lots of threads waiting for a ReaderWriterLockSlim lock without any thread actually holding it.
This is probably the same problem as encountered originally in commit 12cebb12
This commit looks to plaster this problem by putting lock obtaining methods inside finally blocks which should be uninterruptible by thread aborts.
2012-12-07 00:47:04 +00:00
Robert Adams
7fd8202ae3
BulletSim: rewrite and improve vehicle angularDeflection, verticalAttraction,
...
linearMotorUp and related vehicle forces.
Fixed problems with downward vehicle position correction forces being too large.
Add vehicle collision flag so can sense whether vehicle is on the ground.
2012-12-06 09:31:12 -08:00
Robert Adams
edd1b353a5
BulletSim: update and add to the TODO list.
2012-12-06 09:31:05 -08:00
Robert Adams
18fe35906d
BulletSim: add detail logging detail flag so I don't have to comment and uncomment the detail logging when changing the depth of logged info.
2012-12-06 09:30:57 -08:00
Robert Adams
cc59e3cbdf
BulletSim: only check position sanity if the prim is physical -- the user can do anything dumb they wish.
2012-12-06 09:30:50 -08:00
Robert Adams
2ecd8e6720
BulletSim: add values for material friction and restitution. Fix line endings in material definition file.
2012-12-06 09:30:42 -08:00
Robert Adams
6d7f66f781
BulletSim: Don't add gravity to down force -- let Bullet do that. Add VehicleAddForce to set of managed vehicle prim properties.
2012-12-06 09:30:35 -08:00
Robert Adams
e599a8b242
BulletSim: Vehicle angular vertical attraction works. Other vehicle angular forces commented out for the moment for debugging.
2012-12-06 09:30:28 -08:00
Justin Clark-Casey (justincc)
1c9ecc55d3
Instead of printing script errors out to console, put to debug log so that we also get timestamps.
...
This commit also adds script name, part name, uuid, etc. for later identification.
This information has been sent to console since 2009 but may be turned down if it proves too noisy.
However, I still currently need it to investigate some region problems probably triggered by scripting.
2012-12-06 00:22:52 +00:00
Justin Clark-Casey (justincc)
e60fe958df
minor: Fix more compiler warnings in CoreModules tests by properly overriding OpenSimTestCase.SetUp()
2012-12-05 23:44:12 +00:00