Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Stop llPushObject() from causing problems by adding force via a taint rather ↵ | Justin Clark-Casey (justincc) | 2011-11-04 | 1 | -2/+25 |
| | | | | | | | than directly. This isn't a perfect solution since there can be a race between the taint processing and taint setting, as force needs to be reset after processing. Needs careful locking in the future. | ||||
* | Add taint target velocity for ODECharacters as is already done for ↵ | Justin Clark-Casey (justincc) | 2011-10-29 | 1 | -7/+12 |
| | | | | | | | ODECharacter position and position and velocity for ODEPrims. This is to help stop surprises if the velocity is set in the middle of physics calculations, though this probably isn't a huge problem. It's more for consistency and for the next step of removing some scene locks | ||||
* | tidy up OdeCharacter so that we just use OpenMetaverse.Vector3 assignment ↵ | Justin Clark-Casey (justincc) | 2011-10-29 | 1 | -51/+39 |
| | | | | | | directly where possible, instead of transferring X, Y and Z components separately some of this is probably a hold over from using ODE.Vector3, which is still necessary in some places. | ||||
* | Move position set from taint to logically better position at top of ↵ | Justin Clark-Casey (justincc) | 2011-10-29 | 1 | -12/+12 |
| | | | | ODECharacter.ProcessTaints() though this makes no practical difference | ||||
* | Stop setting _position as well as m_taint_position in ODECharacter.Position | Justin Clark-Casey (justincc) | 2011-10-29 | 1 | -4/+1 |
| | | | | | setting position at the same time as taint appears to undermine the whole purpose of taint testing doesn't reveal any obvious regressions in doing this | ||||
* | Fix a bug I introduced yesterday in ODE physics where prim scripts would ↵ | Justin Clark-Casey (justincc) | 2011-10-27 | 1 | -1/+22 |
| | | | | only receive the very first collision. | ||||
* | Clear OdeCharacter CollisionEventUpdate when we subscribe or unsubscribe ↵ | Justin Clark-Casey (justincc) | 2011-10-25 | 1 | -0/+2 |
| | | | | from collision events | ||||
* | Remove unused fields from CollisionEventUpdate | Justin Clark-Casey (justincc) | 2011-10-25 | 2 | -2/+2 |
| | |||||
* | When sending object collision updates, don't null out and recreate the ↵ | Justin Clark-Casey (justincc) | 2011-10-25 | 1 | -13/+3 |
| | | | | CollisionEventUpdate() if the number of collisions falls to zero. Reuse the existing one instead. | ||||
* | For ScenePresence collision events, instead of creating a new ↵ | Justin Clark-Casey (justincc) | 2011-10-25 | 1 | -5/+3 |
| | | | | | | CollisionEventsThisFrame every time we need to send some new ones, reuse the existing one instead. This assumes that the listener is using the data synchronously, which is currently the case. | ||||
* | Fix bug where collision event listeners were not removed once the listener ↵ | Justin Clark-Casey (justincc) | 2011-10-25 | 1 | -4/+5 |
| | | | | | | | had gone away. This was causing continuous use of temporary memory even when all avatars had left the scene. Memory does leak but it does cause more calls to the garbage collector, which would pause the scene thread for a very short while during collection. | ||||
* | minor: rename a parameter in OdeScene.Simulate() from actor -> prim since ↵ | Justin Clark-Casey (justincc) | 2011-10-25 | 1 | -4/+4 |
| | | | | it's an OdePrim | ||||
* | very minor removal of old commented out line of code in OdeScene | Justin Clark-Casey (justincc) | 2011-10-21 | 1 | -5/+3 |
| | |||||
* | remove unnecessary null check on _collisionEventPrim | Justin Clark-Casey (justincc) | 2011-10-20 | 1 | -3/+0 |
| | |||||
* | Get OdeScene to use passed in time step rather than hard-coded 0.089 | Justin Clark-Casey (justincc) | 2011-10-20 | 1 | -22/+23 |
| | | | | However, I still don't recommend changing MinFrameTime from 0.089, high values do not work well and lower values don't seem to make much difference | ||||
* | For now, stop passing timeStep into methods where it's not actually used. | Justin Clark-Casey (justincc) | 2011-10-20 | 2 | -13/+5 |
| | |||||
* | Temporarily put in log lines to record time taken to set terrain in OdeScene. | Justin Clark-Casey (justincc) | 2011-10-18 | 1 | -0/+6 |
| | |||||
* | Store scene identifier passed in to OdeScene for later debug messages | Justin Clark-Casey (justincc) | 2011-10-18 | 1 | -2/+5 |
| | |||||
* | Don't bother taking OdeLock during OdeScene construction, since there can be ↵ | Justin Clark-Casey (justincc) | 2011-10-18 | 1 | -16/+13 |
| | | | | no contention until the object is constructed. | ||||
* | Remove unnecessary lock of OdeLock in OdePrim.changeadd() | Justin Clark-Casey (justincc) | 2011-10-18 | 1 | -18/+13 |
| | | | | This taint can only ever be processed from the OdeScene.Simulate() loop, which already locks OdeLock. | ||||
* | minor: method doc to explain a lock of OdeLock | Justin Clark-Casey (justincc) | 2011-10-18 | 2 | -1/+3 |
| | |||||
* | Remove the unused CollisionLocker from ODE | Justin Clark-Casey (justincc) | 2011-10-18 | 4 | -97/+81 |
| | | | | Despite its name, this wasn't actually being used in any collision checking | ||||
* | Implement osNpcSit(). This is still in development so don't trust it | Justin Clark-Casey (justincc) | 2011-10-17 | 1 | -0/+1 |
| | | | | | | | | | Format is osNpcSit(<npc-uuid>, <target-uuid>, OS_NPC_SIT_IMMEDIATE) e.g. osNpcSit(npc, llGetKey(), OS_NPC_SIT_IMMEDIATE); At the moment, sit only succeeds if the part has a sit target set. NPC immediately sits on the target even if miles away - they do not walk up to it. This method is in development - it may change so please don't trust it yet. Standing will follow shortly since that's kind of important once you're sitting :) | ||||
* | reduce access to ODECharacter methods to make code analysis easier. ↵ | Justin Clark-Casey (justincc) | 2011-10-15 | 2 | -54/+36 |
| | | | | Eliminate redundant argument on ProcessTaints() | ||||
* | restrict unnecessary access levels on ODEPrim fields/properties | Justin Clark-Casey (justincc) | 2011-10-15 | 1 | -19/+17 |
| | |||||
* | refactor: make methods that do not need to be public in ODE private or ↵ | Justin Clark-Casey (justincc) | 2011-10-15 | 2 | -128/+195 |
| | | | | internal to aid code reading/analysis. Remove some unused method arguments | ||||
* | Change hardcoded ODE total frame time to match the default total frame time ↵ | Justin Clark-Casey (justincc) | 2011-10-14 | 1 | -1/+1 |
| | | | | | | | (0.09375 -> 0.089). No apparant ill effects - because the default stepsize is 0.2, there are still 5 physics steps per physics frame. This is a precursor to using the elapsed value passed in (and now changeable in config). | ||||
* | More method doc and formatting changes. Makes DestroyOdeStructures() private | Justin Clark-Casey (justincc) | 2011-10-13 | 1 | -6/+10 |
| | |||||
* | refactor: move 3x copy/pasted ode structure removal code in ODECharacter ↵ | Justin Clark-Casey (justincc) | 2011-10-13 | 1 | -90/+57 |
| | | | | | | into a DestroyOdeStructures() method also adds some method doc | ||||
* | Remove unused local variable i from OdeScene.Simulate() | Justin Clark-Casey (justincc) | 2011-10-05 | 1 | -3/+0 |
| | |||||
* | adjust some whitespace to trigger another build, to check the last failure ↵ | Justin Clark-Casey (justincc) | 2011-09-17 | 1 | -2/+2 |
| | | | | was just a glitch | ||||
* | Stop the avatar stalling on its first boarder cross when using the ODE plugin | Justin Clark-Casey (justincc) | 2011-09-16 | 1 | -6/+13 |
| | | | | | | When upgrading the previously child agent to a root, the code was setting the Size parameter on the ODECharacter PhysicsActor. This in turn reset Velocity, which cause the border stall. I'm fixing this by commenting out the Velocity = Vector3.Zero lines since they don't appear to play a useful purpose | ||||
* | If SP.MoveToTarget has been called with a force walk, begin by landing the ↵ | Justin Clark-Casey (justincc) | 2011-08-11 | 1 | -1/+5 |
| | | | | | | avatar. There is a bug here - once an avatar has landed it glides to its new position instead of performing a walk animation | ||||
* | Add a OS_NPC_LAND_AT_TARGET option to osMoveToTarget() | Justin Clark-Casey (justincc) | 2011-08-10 | 1 | -0/+2 |
| | | | | | | | Default for this function is now not to automatically land. This allows better control by scripts when an avatar is going to be landing on a prim rather than the ground. Stopping the avatar involves faking a collision, to avoid the pid controller making it overshoot. A better approach would be to gradually slow the avatar as we near the target | ||||
* | Move common gemo/agent map name code into CreateGeom() | Justin Clark-Casey (justincc) | 2011-08-01 | 1 | -11/+5 |
| | | | | Fix build break. | ||||
* | Instead of preserving old name in geom_name_map in change size or shape, use ↵ | Justin Clark-Casey (justincc) | 2011-08-01 | 1 | -7/+3 |
| | | | | | | the Name property instead. This is equivalent since the prim 'name' is never changed. In fact, this propery is never used for prims | ||||
* | comment out unused code in OdeScene.TriCallback() | Justin Clark-Casey (justincc) | 2011-08-01 | 1 | -12/+12 |
| | |||||
* | On geom removal, remove the name from the OdeScene.geom_name_map too | Justin Clark-Casey (justincc) | 2011-08-01 | 1 | -0/+1 |
| | |||||
* | remove the unused ODEPrim.prev_geom field | Justin Clark-Casey (justincc) | 2011-08-01 | 1 | -3/+0 |
| | |||||
* | When an ODE geom is removed (as when a non-phantom prim is deleted, resized ↵ | Justin Clark-Casey (justincc) | 2011-08-01 | 1 | -0/+2 |
| | | | | | | 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 | ||||
* | refactor: centralize prim geom removal code from four places to one | Justin Clark-Casey (justincc) | 2011-08-01 | 2 | -43/+44 |
| | |||||
* | minor: add note to RemovePrimThreadLocked() to the effect that it contrary ↵ | Justin Clark-Casey (justincc) | 2011-08-01 | 2 | -1/+4 |
| | | | | to the summary, it is being called from within Simulate() lock (OdeLock) | ||||
* | If a prim changes size or shape, add actor to _parent_scene.actor_name_map ↵ | Justin Clark-Casey (justincc) | 2011-08-01 | 1 | -1/+4 |
| | | | | | | | | 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. | ||||
* | minor: indentation correction | Justin Clark-Casey (justincc) | 2011-08-01 | 1 | -17/+13 |
| | |||||
* | Remove _mesh field since the mesh data no longer needs to be stored after ↵ | Justin Clark-Casey (justincc) | 2011-07-31 | 1 | -49/+16 |
| | | | | | | 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. | ||||
* | refactor: Remove argument to pass in an initial mesh to OdePrim since this ↵ | Justin Clark-Casey (justincc) | 2011-07-31 | 2 | -27/+5 |
| | | | | | | 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. | ||||
* | minor: correct method doc for last commit | Justin Clark-Casey (justincc) | 2011-07-31 | 1 | -1/+1 |
| | |||||
* | refactor: rename CreateGeom _mesh argument to mesh, so as to not confuse ↵ | Justin Clark-Casey (justincc) | 2011-07-31 | 1 | -3/+3 |
| | | | | this with the pre-existing _mesh field | ||||
* | minor: method doc | Justin Clark-Casey (justincc) | 2011-07-31 | 2 | -4/+20 |
| | |||||
* | Refactor: Replace instances of m_isphysical with IsPhysical rather than have ↵ | Justin Clark-Casey (justincc) | 2011-07-30 | 1 | -33/+40 |
| | | | | | | some code reference the private var and other the public var without any functionality difference. Add some method doc to IsPhysical |