Commit Graph

294 Commits (5cb404453976f5178f81a9d8d8937043c1794f40)

Author SHA1 Message Date
Justin Clark-Casey (justincc) 1615e7d29f Eliminate duplicate AttachmentPoint properties by always using the one stored in the root part's state field. 2011-08-27 00:33:24 +01:00
Justin Clark-Casey (justincc) 33a894f3d2 refactor: move SOP.IsAttachment and AttachmentPoint up into SOG to avoid pointless duplication of identical values 2011-08-27 00:15:21 +01:00
Justin Clark-Casey (justincc) 15a514fcbc refactor: simplify SOP.AttachedAvatar into SOG.AttachedAvatar
This does a tiny bit to reduce code complexity, memory requirement and the cpu time of pointlessly setting this field to the same value in every SOP
2011-08-26 23:06:41 +01:00
Justin Clark-Casey (justincc) 5f3ffc195f refactor: move SOG.DetachToGround() to AttachmentsModule.DetachSceneObjectToGround() and remove redundant code 2011-08-26 22:49:11 +01:00
Justin Clark-Casey (justincc) 002313bf13 refactor: move sog.DetachToInventoryPrep() into AttachmentsModule.DetachSingleAttachmentToInv() 2011-08-26 22:02:23 +01:00
Justin Clark-Casey (justincc) 6d4432f440 refactor: simplify EntityBase.IsDeleted property 2011-08-24 22:34:26 +01:00
Justin Clark-Casey (justincc) 9ba4511d3e add SOG helper properties IsPhantom, IsTemporary, etc. to improve code readability
use these in some sog methods
2011-08-24 21:53:12 +01:00
Justin Clark-Casey (justincc) 5d6c9644fa early code to allow scripts to force npcs not to fly when moving to target
this is to allow walking on prims.  it will be up to the script writer to be sure that there is a continuous path.
currently implemented in osNpcMoveToTarget(), but none of this is final.
2011-08-10 01:47:37 +01:00
Justin Clark-Casey (justincc) ba89fc3aa1 Add regression test for setting phantom status on a scene object. This is not yet complete. 2011-08-05 23:42:05 +01:00
Justin Clark-Casey (justincc) a333c60f28 refactor: rename the move to position methods to move to target to be consistent with terminology used by scene object part and elsewhere 2011-08-03 22:34:05 +01:00
Justin Clark-Casey (justincc) 2964467708 get rid of vestigal move to parameters 2011-08-03 22:11:05 +01:00
Justin Clark-Casey (justincc) c122489e09 Partially fix autopilot/go here
This now works again except that it requires a click or avatar mvmt to get going
This is because the ScenePresence.HandleAgentUpdate() method doesn't trigger until the client does something significant, at which point autopilot takes over.
Even clicking is enough to trigger.
This will be improved presently.
2011-08-02 23:41:12 +01:00
Justin Clark-Casey (justincc) bc3679b67d Fix undo when changing just the root prim's position in a linkset.
I think (ha ha) this largely fixes undo, except for the fact that rotation a set of prims with 'edit linked parts' selected doesn't quite work properly (though this works fine if the checkbox isn't selected).
Also, the double undo bug for resize is still present.
Redo might be incredibly buggy, haven't even looked at that yet.
2011-07-19 05:46:17 +01:00
Justin Clark-Casey (justincc) 0ef29da9b2 refactor: rename UpdatePrimPosition() to UpdatePrimGroupPosition() for consistency 2011-07-19 05:20:04 +01:00
Justin Clark-Casey (justincc) 62325829ec comment out all kinds of debugging guff 2011-07-19 05:14:58 +01:00
Justin Clark-Casey (justincc) 1fdb16f1cd Fix undo for rotation of the root prim in a linkset on its own.
The only obviously broken things right now are the undo of the position of just a root prim (stays in place) and the fact that resizes need two undoes.
2011-07-19 05:05:50 +01:00
Justin Clark-Casey (justincc) b2722e984a Fix undo of rotation of single prims in a linkset 2011-07-19 04:40:02 +01:00
Justin Clark-Casey (justincc) 97f1edfd95 Fix undo of prim group rotation.
This isn't that great since I think I broke it a few commits earlier.
Undo of rotation of individual prims in a linkset is still broken
2011-07-19 04:15:27 +01:00
Justin Clark-Casey (justincc) c94dc95844 fix undo when resizing of non-root individual prims in a linkset
undo resize, rotation and position still needs fixing when only editing root prim of a linkset
2011-07-19 03:27:16 +01:00
Justin Clark-Casey (justincc) 430a4aeba8 Fix undo for resizing linksets
This involves implementing a boolean in UndoState to signal whether the undo needs to be done for an entire group/linkset or just a single prim
Resizing individual components of linksets is still dodgy.
Resizing still has to be down twice, since for some reason the client is sending two multiobjectupdate packets on every resize except the very first.  This applies to single prims and linksets.  Need to look into this.
2011-07-19 03:01:54 +01:00
Justin Clark-Casey (justincc) 6fc74b36d1 Make various tweaks to undo code in an effort to get things working better.
Undo rotation and position appear to be working.
Resizing a single prim appears to be working, though the undo has to be done twice.
Resizing a group of prims still does not work properly - possibly because in the UndoState we don't store a knowledge of when we're resizing a whole group rather than individual prims.
This needs to be addressed.
2011-07-18 04:54:21 +01:00
Justin Clark-Casey (justincc) f5ddf37112 Replace ifs in SOG.GroupResize() with Math.Min()
Also fiddle a bit with undo.  This is not currently working properly, though to be fair it also didn't appear to work in 0.7.1.1 either (at least for resize).
Will get some more attention soon.
2011-07-16 05:23:21 +01:00
Justin Clark-Casey (justincc) 9a80adf33a remove now unncessary parts of SceneObjectGroup.Resize() 2011-07-16 04:49:21 +01:00
Justin Clark-Casey (justincc) 2b68ac4ba3 refactor: Push all part resize code down into SceneObjectPart.Resize() 2011-07-16 04:22:57 +01:00
Justin Clark-Casey (justincc) df2a59d31b refactor: make SceneObjectGroup.GroupScale() a property rather than a mehod 2011-07-16 03:30:14 +01:00
Justin Clark-Casey (justincc) 982e71b6b8 eliminate unused and redundant SceneObjectGroup.AssetReceived() 2011-07-16 03:08:28 +01:00
Justin Clark-Casey (justincc) c82f19e41c fix build break from last commit 2011-07-16 03:06:30 +01:00
Justin Clark-Casey (justincc) 27fae36a21 remove the need to supply SceneObjectGroup.GroupResize() with a localId.
This is utterly pointless scene we already know which sog we're dealing with.
2011-07-16 02:53:36 +01:00
Justin Clark-Casey (justincc) 50bd48542c Add very basic test for resizing a scene object with one prim 2011-07-16 02:44:00 +01:00
Justin Clark-Casey (justincc) da7340b9fb If resized shape is a mesh/sculpt, leave it to the mesh asset callback to trigger the physics actor taint.
In the last commit, the fix was made by updating all the child prim physics actors with the new size rather than just the root part.
2011-07-16 01:42:56 +01:00
Justin Clark-Casey (justincc) 18652eb87e Fix physics proxy regeneration when a mesh with more than one submesh is resized
Addresses http://opensimulator.org/mantis/view.php?id=5584
2011-07-16 01:36:27 +01:00
root e9dbe54ab1 Fix some local id issues in physics glue 2011-07-15 20:07:59 +01:00
Robert Adams b55076990c fix duplication of physical objects for physics engines that care about the initial value of localID 2011-07-15 11:37:34 -07:00
Justin Clark-Casey (justincc) df0e5cc9fe When a mesh object is added to a scene, delay adding the physics actor until the sculpt data has been added to the shape (possibly via an async asset service request)
This prevents spurious 'no asset data' for meshes added on startup.
2011-07-12 02:33:09 +01:00
Justin Clark-Casey (justincc) 0badf3718d refactor: push the part of SceneObjectGroup.CheckSculptAndLoad() that actually deals with the part into a SceneObjectPart.CheckSculptAndLoad() method 2011-07-11 03:35:29 +01:00
Justin Clark-Casey (justincc) 2f3d0e209f When a sculpt/mesh texture is received by a part on a callback request, don't do the unnecessary work of copying the base shape.
Just setting the new base shape is enough to reinsert the sculpt data and set the taint.
Also cleans up a few more left-in debugging messages.
2011-07-11 03:13:59 +01:00
Justin Clark-Casey (justincc) 01b98c2e62 refactor: Make arguments for SceneObjectGroup.UpdatePrimFlags() more readable 2011-07-11 02:18:19 +01:00
Mic Bowman ad84728aba Add localID to physical object creation functions. 2011-06-15 11:31:32 -07:00
Mic Bowman 29da57e380 Add the PhysActor to the correct SOP when duplicating a physical
prim. Thanks, MisterBlue
2011-06-15 11:26:45 -07:00
Justin Clark-Casey (justincc) b5518dc906 minor: Add some commented out destructor logging messages for potential future use.
At the moment, client and scene objects are being garbage collected as expected, at least in simple scenarios.
2011-06-10 20:40:14 +01:00
Melanie 28c25d8477 Allow disabling the legacy backup mechanism to avoid the object clone if
backup is not used.
2011-05-24 04:03:51 +01:00
Diva Canto 73caa4e94a Minor correction to yesterday's changes. Make normal prim crossing (no attach) work well again. 2011-04-29 08:42:51 -07:00
Diva Canto 9892e115cc Fatpack message on agent transfers: 1 message only (UpdateAgent) containing the agent and all attachments. Preserves backwards compatibility -- older sims get passed attachments one by one. Meaning that I finally introduced versioning in the simulation service. 2011-04-28 20:19:54 -07:00
Mic Bowman 452ae375f0 Merge branch 'master' into test-merge0418 2011-04-18 11:29:43 -07:00
Justin Clark-Casey (justincc) aaf9125869 simplify coalesced object tests by using existing scene object set up utils
this change makes it possible to set an absolute position on a group before it is put into a scene.
2011-04-14 17:33:55 +01:00
Mic Bowman 69d014e1dc First pass at moving object property requests into a queue similar
to the entity update queue. The number of property packets can
become significant when selecting/deselecting large numbers of
objects.

This is experimental code.
2011-04-12 15:58:57 -07:00
Justin Clark-Casey (justincc) 8318915d7e Signal prim count taint if the AbsolutePosition of a scene object changes.
This updates prim counts correctly if an object is moved by something other than an avatar (e.g. scripts, region modules)
Create TestMoveOwnerObject() regression test for this case.
2011-04-06 20:48:00 +01:00
Justin Clark-Casey (justincc) 2497962360 Change some text to make the autoreturn mechanism more obvious, and align with the fact that it's one word rather than two. 2011-04-05 22:25:00 +01:00
Justin Clark-Casey (justincc) 7e72afcb3e Only force prim persistence before delete if the prim is the result of an unpersisted delink
This considerably improves delete performance for objects with large linksets
2010-12-03 00:12:59 +00:00
Marck e1c72cedb3 Let CHANGED_SCALE also trigger when editing prims and linksets with the viewer's edit tools.
This event used to trigger only when the scale was changed with a script.
2010-11-22 19:38:44 +01:00
Melanie 7bb005b0d1 Change the way attachments are persisted. Editing a worn attachment will now
save properly, as will the results of a resizer script working. Attachment
positions are no longer saved on each move, but instead are saved once on
logout. Attachment script states are saved as part of the attachment now
when detaching.
2010-11-16 21:01:56 +00:00
Melanie 9a5d0984a5 Fix autoreturn to not return zero objects 2010-10-07 02:16:36 +01:00
Melanie abfede7819 Plumb the path for multiple object deletes 2010-10-06 20:00:51 +01:00
Justin Clark-Casey (justincc) 6325fa515d Add UUID to physics prim name parameter so that diagnostic messages can be made more useful.
If a separate UUID parameter is better for the future then this can be added later on.
2010-09-25 00:51:40 +01:00
Justin Clark-Casey (justincc) a85779e477 If the uuid of a SceneObjectGroup (RootPart) is changed before adding to the scene, remove the old uuid reference from m_parts as well as adding the new one.
The separate remove and set operations is SOG.set_UUID() are both locked under m_parts.SyncRoot since they are logically atomic (though this isn't such an issue if the SOG isn't part of a scene)
Added unit test for this behaviour.
Also changed the second m_parts.AddOrReplace() to m_parts.Add().  As the old reference is now removed we never end up replacing an identical uuid.  And if we replace a uuid that's already there (from a child part) then this is an error.
2010-09-21 00:58:54 +01:00
John Hurliman b49cb3355f Fixed a regression in SOG.Copy() 2010-09-16 17:57:00 -07:00
John Hurliman 860b2a502f Changed SceneObjectGroup to store parts with the fast and thread-safe MapAndArray collection 2010-09-16 17:30:46 -07:00
Justin Clark-Casey (justincc) 39d27fc879 rename SceneObjectGroup.DeleteGroup() to DeleteGroupFromScene() to improve code readability 2010-09-15 22:29:58 +01:00
Justin Clark-Casey (justincc) 16f296f489 Instead of locking SOG.Children when a group is being removed from the scene, iterate over an unlocked list instead
Previously, deadlock was possible because deleting a group took a SOG.Children lock then an m_entityUpdates.SyncRoot lock in LLClientView
At the same time, a thread starting from LLClientView.ProcessEntityUpdates() could take an m_entityUpdates.SyncRoot lock then later attempt to take a SOG.Children lock in PermissionsModule.GenerateClientFlags() and later on
Taking a children list in SOG appears to be a better solution than changing PermissionsModule to not relook up the prim.  Going the permission modules root would require that all downstream modules not take a SOG.Children lock either
2010-09-15 21:51:13 +01:00
Justin Clark-Casey (justincc) 36f81c66e5 Comment out SOG storing debug log message
This can get very spammy with regularly changing objects.  Please uncomment if required.
2010-09-14 00:05:38 +01:00
John Hurliman c03b24cbfd Merged 2010-09-12 14:21:51 -07:00
John Hurliman 0db1ed0b5a * Added ISimulationDataService and IEstateDataService
* Removed StorageManager
* CONFIG CHANGE: There are no more database settings in OpenSim.ini. Check the config-include configuration files for region store and estate store database settings
2010-09-12 14:20:26 -07:00
Jeff Ames f1f0bc23f4 Formatting cleanup. 2010-09-12 13:43:49 -04:00
John Hurliman 109b517583 Fixed the naming mess around data connectors for simulation data 2010-09-11 20:43:06 -07:00
John Hurliman b597a295c4 Second pass at cleaning up thread safety in EntityManager and SceneGraph 2010-09-10 12:41:36 -07:00
Justin Clark-Casey (justincc) 11f4a65f42 Fix deletion persistence when freshly delinked prims are removed
Previously, Scene.Inventory.DeRezObjects() forced the persistence of prims before deletion.
This is necessary so that freshly delinked prims can be deleted (otherwise they remain as parts of their old group and reappear on server restart).
However, DeRezObjects() deleted to user inventory, which is required by llDie() or direct region module unlink and deletion.
Therefore, forced persistence has been pushed down into Scene.UnlinkSceneObject() to be more general, this is still on the DeRezObjects() path.

Uncommented TestDelinkPersistence() since this now passes.
Tests required considerable elaboration of MockRegionDataPlugin to reflect underlying storing of parts.
2010-09-07 01:12:06 +01:00
Justin Clark-Casey (justincc) 953b7f4917 Add test to check persistence of newly added pre-linked objects
Added a MockRegionDataPlugin to do in-memory persistence for tests since adding this to OpenSim.Data.Null.NullDataStore doesn't seem appropriate
NullDataStore can do nothing because OpenSim only ever retrieve region objects from the database on startup.  Adding an in-memory store here would be unecessary overhead.
2010-09-06 23:00:24 +01:00
Justin Clark-Casey (justincc) 6cbf66827b refactor: move SOG.AttachToAgent() into AttachmentsModule 2010-09-01 01:11:52 +01:00
Justin Clark-Casey (justincc) 1c0b4457cd Improve liveness by operating on list copies of SOG.Children where appropriate 2010-08-28 00:40:33 +01:00
Justin Clark-Casey (justincc) 166ab59420 replace m_parts.Count linknum with 0 in CopyRootPart since m_parts.Count is always 0 (and any other number would cause an error anyway) 2010-08-26 00:15:26 +01:00
Justin Clark-Casey (justincc) 8031f8ec09 Improve consistency of locking for SOG.m_parts in order to avoid race conditions in linking and unlinking 2010-08-26 00:08:53 +01:00
Justin Clark-Casey (justincc) 24d06b12c2 If setting SOG.UUID, update the SOG.m_parts index as well as the root part UUID
Being able to change a SOG.UUID is useful for region modules that want to supply their own UUID, before the object is rezzed
2010-08-25 23:05:54 +01:00
Justin Clark-Casey (justincc) 39a748b47a refactor: Use SOP.Flags rather than SOP.ObjectFlags 2010-08-13 20:23:53 +01:00
Mikko Pallari 3f942a4f74 Removed abstract SetText method from EntityBase to make cleaner API.
Signed-off-by: Melanie <melanie@t-data.com>
2010-08-10 19:37:15 +01:00
Justin Clark-Casey (justincc) 2a1c11fda9 On shift-copy of an object, set up a new physics actor (as appropriate) for every copied prim, not just the root
This addresses http://opensimulator.org/mantis/view.php?id=4295
2010-08-10 20:15:44 +01:00
Justin Clark-Casey (justincc) 903cfa8c7e minor: Remove overly verbose schedule full update log message for attachments 2010-08-07 22:28:42 +01:00
Justin Clark-Casey (justincc) f067f733ea add userExposed parameter to part copy event 2010-07-28 19:38:20 +01:00
Justin Clark-Casey (justincc) b51b2efdc8 Add EventManager.OnSceneObjectPreSave() for future use. This is triggered immediately before a copy of the group is persisted to storage 2010-07-26 23:34:22 +01:00
Melanie ac1a34714d Allow Megaregions to start properly after an unclean shutdown 2010-07-20 23:24:04 +01:00
Melanie Thielker 85a9c305a2 Remove AgentID and GroupOD from the signature of SOG.Copy(). They were never
used, but made for a very mispleading read of the code in the callers.
2010-06-28 01:43:26 +01:00
Melanie Thielker 4cdda2cae9 Fix Copy on Ray, Drag Copy and other little things. Removed the wrong and
nonworking ownership assignment in SOG, which messed things up before.
No longer trust the client to send the ID of the person something is copied
as, since it allows to run a script with someone else's permissions. Properly
adjust inventory ownership and perms.
2010-06-28 01:36:40 +01:00
Diva Canto e80cb815df Bug fix on attachments: attach->drop->attach works now. 2010-06-09 12:51:24 -07:00
Justin Clark-Casey (justincc) b6076d7b33 Reduce number of full updates sent on region crossing for attachments/huds to 1 from 3
This is one step towards reducing hud glitches on region crossing, since the viewer fails to display prims if it receives child full updates before the root prim full update
This commit also introduces a mechanism in LLClientView to stop child attachment updates ever going out before the root one
This is a very temporary mechanism and will be commented out when the next step of the fix (to give root prims higher udpate priority) is committed
This code is a foreport from the equivalent changes in 0.6.9-post-fixes
2010-06-08 15:07:57 +01:00
Melanie Thielker 4867dd135d Fix prim returns I broke earlier 2010-06-01 02:12:56 +01:00
Melanie Thielker 2fce7d9bcf Split GetAxisAlignedBoundingBox into two methods to allow calculation of
combined bounding boxes and offsets
2010-06-01 02:10:08 +01:00
Melanie Thielker e515467c5e Fix create selection getting overwritten by multiple updates for the same prim. 2010-05-31 17:55:56 +01:00
John Hurliman 93ef65c690 * Moving all of the prioritization/reprioritization code into a new file Prioritizer.cs
* Simplified the interest management code to make it easier to add new policies. Prioritization and reprioritization share code paths now
* Improved the distance and front back policies to always give your avatar the highest priority
2010-05-21 13:55:36 -07:00
Dan Lake 73e9b0be72 Inconsistent locking of ScenePresence array in SceneGraph. Fixed by eliminating option to return the actual list. Callers can now either request a copy of the array as a new List or ask the SceneGraph to call a delegate function on every ScenePresence. Iteration and locking of the ScenePresences now takes place only within the SceneGraph class.
This patch also applies a fix to Combat/CombatModule.cs which had unlocked iteration of the ScenePresences and inconsistent try/catch around the use of those ScenePresences.
2010-03-17 11:21:27 -07:00
Jeff Ames f58a0394ed Formatting cleanup. Add copyright notices. 2010-03-10 13:15:36 +09:00
Justin Clark-Casey (justincc) 716e6f20e1 compiler warnings revealed that public PlaySoundSlavePrims properties were changing the wrong protected fields.
correcting these may resolve the sound problems seen recently on the mailing list, though not guaranteed.
2010-03-03 23:40:32 +00:00
Justin Clark-Casey (justincc) 8305e6af07 refactor: push sog.SendPartFullUpdate() down into sop where it better belongs
no functional changes
2010-03-03 23:29:09 +00:00
Justin Clark-Casey (justincc) edb176447b Fix bug where approximately half the time, attachments would rez only their root prim until right clicked (or otherwise updated).
The root cause of this problem was that multiple ObjectUpdates were being sent on attachment which differed enough to confuse the client.
Sometimes these would eliminate each other and sometimes not, depending on whether the scheduler looked at the queued updates.
The solution here is to only schedule the ObjectUpdate once the attachment code has done all it needs to do.
2010-03-03 22:14:06 +00:00
Jeff Ames 2dea162073 Formatting cleanup. 2010-02-22 12:25:59 +09:00
Justin Clark-Casey (justincc) 4c90ee2943 Merge branch 'master' of ssh://justincc@opensimulator.org/var/git/opensim 2010-02-16 19:08:06 +00:00
Justin Clark-Casey (justincc) 052f2b3e27 minor: Make SOG.DelinkFromGroup() return the newly delinked scene object instead of void 2010-02-16 14:36:08 +00:00
Revolution 9821c4f566 Revolution is on the roll again! :)
Fixes: Undo, T-pose of others on login, modifiedBulletX works again, feet now stand on the ground instead of in the ground, adds checks to CombatModule. Adds: Redo, Land Undo, checks to agentUpdate (so one can not fall off of a region), more vehicle parts. Finishes almost all of LSL (1 function left, 2 events).

Direct flames and kudos to Revolution, please

Signed-off-by: Melanie <melanie@t-data.com>
2010-02-14 22:18:46 +00:00
Justin Clark-Casey (justincc) 9f4883d146 refactor: Reuse SceneObjectGroup.IsAttachmentCheckFull() in Scene.AddSceneObject since this wraps a check that is much less clear 2010-02-08 19:10:54 +00:00
Justin Clark-Casey (justincc) 96d5c8196a minor: add reminder to lock SOG.Children before using it directly in order to avoid threading issues 2010-02-02 15:45:41 +00:00
Melanie 2320b17ca9 Whitespace cleanup 2010-01-11 02:04:05 +00:00
Revolution a0859754c0 Adds llRotTarget and the events at_rot_target and not_at_rot_target.
Signed-off-by: Melanie <melanie@t-data.com>
2010-01-11 02:00:40 +00:00
Revolution 3ec502f551 Readds llCollisionFilter and adds llPassCollision.
Applied with whitespace cleanup

Signed-off-by: Melanie <melanie@t-data.com>
2009-12-31 23:29:32 +00:00
Melanie e530180c1e Glue code for a couple of new LSL function implementations 2009-12-22 00:26:12 +00:00
Melanie 5259a32319 Remove extra forced updates. They're not needed for each prim. Really. 2009-12-06 02:53:50 +00:00
Melanie e3a22ff37d Eliminate multiple updates on link/unlink 2009-12-06 02:53:34 +00:00
Teravus Ovares (Dan Olivares) 781db43a76 * Fixes the 10x10x10 hard physics limitation. (wierdly, you have to set this for each region in your Regions.ini[PhysicalPrimMax = 10(default)])
* Adds a configurable maximum object mass before the mass is clamped.  Default is 10000.01.  Configurable by changing maximum_mass_object in the [ODEPhysicsSettings] section.
* Clamping the mass is important for limiting the amount of CPU an object can consume in physics calculations.  Too high, and the object overcomes restitution forces by gravity alone. This generates more collisions potentially leading to 'deep think'.
2009-12-03 20:21:10 -05:00
Melanie b9eb244d6d Reset update flag when a SOG is deleted. This fixes llDie(); 2009-11-27 08:59:03 +00:00
Melanie 9d63f90467 Remove the old (Remoting) region crossing code. Fix the new code to
pass script state and assembly again properly. Reintroduce respecting tht
TrustBinaries flag. Changes the interregion protocol! No version bump
because it was broken anyway, so with a version mismatch it will simply
stay broken, but not crash. Region corssing still doesn't work because
there is still monkey business with both rezzed prims being pushed across
a border and attached prims when walking across a border. Teleport is
untested by may work.
2009-11-26 17:03:09 +00:00
Diva Canto d5c18f6149 Make GroupRootUpdate be a terse update. This method is not used by opensim (it should), but it's used by external modules. 2009-11-14 14:14:08 -08:00
John Hurliman ec2ebf2598 Removing EntityBase.Rotation 2009-11-04 16:08:10 -08:00
John Hurliman 1927945053 Another race condition fix in SceneObjectGroup 2009-11-02 15:09:07 -08:00
John Hurliman 59eb378d16 Small performance tweaks to code called by the heartbeat loop 2009-10-28 23:10:16 -07:00
John Hurliman 1c9696a9d2 Always send a time dilation of 1.0 while we debug rubberbanding issues 2009-10-28 15:11:01 -07:00
John Hurliman d199767e69 Experimental change of PhysicsVector to Vector3. Untested 2009-10-26 18:23:43 -07:00
John Hurliman 730930955a Changing Scene.ForEachClient to use the synchronous for loop instead of Parallel. This is quite possibly the source of some deadlocking, and at the very least the synchronous version gives better stack traces
* Lock the LLUDPClient RTO math * Add a helper function for backing off the RTO, and follow the optional advice in RFC 2988 to clear existing SRTT and RTTVAR values during a backoff

* Removing the unused PrimitiveBaseShape.SculptImage parameter * Improved performance of SceneObjectPart instantiation * ZeroMesher now drops SculptData bytes like Meshmerizer, to allow the texture data to be GCed * Improved typecasting speed in MySQLLegacyRegionData.BuildShape()

* Improved the instantiation of PrimitiveBaseShape
2009-10-25 00:40:21 -07:00
John Hurliman 62f1a5e36d Implemented a "FrontBack" prioritizer, using distance plus the plane equation to give double weight to prims/avatars in front of you 2009-10-23 02:38:59 -07:00
John Hurliman 588361e2a2 Experimental change to use an immutable array for iterating ScenePresences, avoiding locking and copying the list each time it is accessed 2009-10-23 01:02:36 -07:00
Melanie c4969d47d9 Merge branch 'master' into vehicles 2009-10-22 07:12:10 +01:00
John Hurliman 142008121e * Change Util.FireAndForget to use ThreadPool.UnsafeQueueUserWorkItem(). This avoids .NET remoting and a managed->unmanaged->managed jump. Overall, a night and day performance difference
* Initialize the LLClientView prim full update queue to the number of prims in the scene for a big performance boost
* Reordered some comparisons on hot code paths for a minor speed boost
* Removed an unnecessary call to the expensive DateTime.Now function (if you *have* to get the current time as opposed to Environment.TickCount, always use DateTime.UtcNow)
* Don't fire the queue empty callback for the Resend category
* Run the outgoing packet handler thread loop for each client synchronously. It seems like more time was being spent doing the execution asynchronously, and it made deadlocks very difficult to track down
* Rewrote some expensive math in LandObject.cs
* Optimized EntityManager to only lock on operations that need locking, and use TryGetValue() where possible
* Only update the attachment database when an object is attached or detached
* Other small misc. performance improvements
2009-10-19 15:19:09 -07:00
John Hurliman 4b75353cbf Object update prioritization by Jim Greensky of Intel Labs, part one. This implements a simple distance prioritizer based on initial agent positions. Re-prioritizing and more advanced priority algorithms will follow soon 2009-10-15 16:35:27 -07:00
Melanie 6deef7d0f3 Merge branch 'master' into vehicles 2009-10-15 21:14:13 +01:00
Dan Lake 5976ac16b0 Optimized heartbeat by calling Update() only on updated objects.
During the heartbeat loop, Update() is called on every SceneObjectGroup which in turn checks if any SceneObjectPart has changed. For large regions (> 100k prims) this work consumes 20-30% of a CPU even though there are only a few objects updating each frame.

There is only one other reason to check every object on every frame, and that is the case where a script has registered the object with an "at target" listener. We can easily track when an object is registered or unregistered with an AtTarget, so this is not a reason to check every object every heartbeat.

In the attached patch, I have added a dictionary to the scene which tracks the objects which have At Targets. Each heartbeat, the AtTarget() function will be called on every object registered with a listener for that event. Also, I added a dictionary to SceneGraph which stores references to objects which have been queued for updates during the heartbeat. At each heartbeat, Update() is called only on the objects which have generated updates during that beat.
2009-10-13 19:32:59 -07:00
Melanie 46955f4260 Merge branch 'master' into vehicles 2009-10-02 19:04:46 +01:00
dr scofield (aka dirk husemann) 2107b67f1b - cleaning up LandData/ILandObject capitalization issues
- adding LandDataSerializer to OAR mechanics
2009-10-02 11:31:30 +02:00
Melanie 212e132e79 Revert "* Adding Scale to EntityBase * Fixing the incorrect initialization of EntityBase.Rotation * Removed SceneObjectGroup.GroupRotation and added overrides for Scale/Rotation/Velocity"
This reverts commit 39842eb4af.
2009-10-02 00:47:01 +01:00
Melanie d6301db382 Revert "* Adding Scale to EntityBase * Fixing the incorrect initialization of EntityBase.Rotation * Removed SceneObjectGroup.GroupRotation and added overrides for Scale/Rotation/Velocity"
This reverts commit 39842eb4af.
2009-10-02 00:45:31 +01:00
Melanie 41ff39414b Merge branch 'master' into vehicles 2009-10-01 14:08:15 +01:00
John Hurliman cb26878f96 Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2009-09-30 17:51:34 -07:00
Jeff Ames 606e831ff5 Formatting cleanup. 2009-10-01 09:38:36 +09:00
John Hurliman acfe2d9f4e Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2009-09-30 15:28:23 -07:00
Kitto Flora 07df0e0ab0 Merge branch '0.6.7-post-fixes' into vehicles 2009-09-30 19:07:18 +02:00
opensim 827b0fb199 Commit initial version of KittoFlora's vehicle changes 2009-09-30 18:51:02 +02:00
Jeff Ames ee205e7e81 Formatting cleanup. 2009-10-01 01:17:47 +09:00
Teravus Ovares (Dan Olivares) 2bb513329a * Does a full battery of tests to ensure that the object isn't an attachment before border crossing
* Fixes 'Inconsistent Attachment State' when teleporting into another region besides the SW most region slot on a MegaRegion.
* Fixes a host of other unintended attachment border cross edge cases that lead to Inconsistent attachment state.
2009-09-25 16:06:04 -04:00
John Hurliman 39842eb4af * Adding Scale to EntityBase * Fixing the incorrect initialization of EntityBase.Rotation * Removed SceneObjectGroup.GroupRotation and added overrides for Scale/Rotation/Velocity 2009-09-16 17:17:40 -07:00
John Hurliman f42d085ab1 SceneObjectGroup cleanup. Removes the default constructor and unnecessary null checks on m_rootPart 2009-09-16 15:06:08 -07:00
Teravus Ovares (Dan Olivares) 9505297fb1 * One last attempt to get the bordercrossing/primcrossing/attachmentcrossing right in the new border framework.
* This also contains some inactive preliminary code for disconnecting combined regions that will be used to make one root region a virtual region of a new root region.
2009-09-02 04:39:00 -04:00
Melanie f32de6fe88 Thank you, dslake, for a set of patches to improve OpenSim startup
and idle performance.
2009-09-02 03:33:31 +01:00
Teravus Ovares (Dan Olivares) b997174d08 * Fix attachment cross issues with new borders. 2009-08-31 20:07:33 -04:00
Teravus Ovares (Dan Olivares) 66c40dd3de * Switch border cross tests over to the new Border class.
* Use List<Border> for each cardinal to allow for irregular regions.
2009-08-20 19:24:31 -04:00
Diva Canto e02062051d Making attachments work again. Tons of debug more. This needs more testing and a lot of cleaning. 2009-08-16 16:17:19 -07:00
Diva Canto 6808b9109e Merge branch 'master' of ssh://diva@opensimulator.org/var/git/opensim into inventory-connector 2009-08-16 08:59:58 -07:00
Jeff Ames 9d9fcac038 Misc cleanup. 2009-08-16 17:14:21 +09:00
Diva Canto 1bbf06405c Changed FromAssetID to FromItemID 2009-08-15 09:36:45 -07:00
Diva Canto ea940d98f9 Added ToXml2() to ISceneObject, so that components other than regions can use this abstraction. 2009-08-06 16:41:24 -07:00
Melanie 17bdc45c5c Add plumbing for the SceneObjectDeleter to wait for the script engine to
allow final deletion of objects. Meant to support the attach(NULL_KEY) event,
2009-08-04 03:17:13 +01:00
lbsa71 169a353cca * minor ccc 2009-07-24 06:59:27 +00:00
Teravus Ovares bb4b81d70f * patch from jonc
* Fixes scaling a group in some situations.
* fixes mantis #3886
* Thanks jonc!
2009-07-17 21:32:35 +00:00
MW acea31518b fixed the bug where changing the rotation of a selection of prims in a linkset, made each of those prims rotate around its own centre rather than around the geometric centre of the selection like they should do (and like the client expects).
This involved adding a new OnUpdatePrimSingleRotationPosition event to IClientAPI so that we can get the changed position from the client. 
Btw adding new events to IClientAPI is really tedious where you have to copy the change across to at least 5 or 6 other files. 
[Note this doesn't fix the bug where any rotation changes to the root prim (but not the whole linkset) cause rotation errors on the child prims.]
2009-07-17 14:58:54 +00:00
MW a266e6dc4b Bounding Box/find rez from inventory point code now seems to be working correctly.
So next step is to clean up that code and wait for bug reports.
2009-07-15 19:46:32 +00:00
MW 856d5f4375 Yet more work on fixing the boundingbox code. 2009-07-15 18:55:28 +00:00