Commit Graph

114 Commits

Author SHA1 Message Date
Justin Clark-Casey (justincc)
2bc8dcfdbd minor: add method doc to make it clear that click action is fired when the click action is changed, not when a prim is clicked 2011-06-10 02:27:45 +01:00
Justin Clark-Casey (justincc)
90567a9eaa refactor Scene.RezObject() to use AddNewSceneObject() rather than copy/pasting code with small differences 2011-05-21 00:02:53 +01:00
Justin Clark-Casey (justincc)
4b0fc4faef implement Scene.GetSceneObjectGroup(string name) to match the equivalent GetSOP method 2011-05-20 23:41:14 +01:00
Justin Clark-Casey (justincc)
91a9f30b16 implement Scene.GetSceneObjectGroup(UUID fullID) using existing index 2011-05-20 23:34:34 +01:00
Justin Clark-Casey (justincc)
7ed419217f add test for rezzing an object from a prim item 2011-05-20 23:22:27 +01:00
Melanie
13d6e05d5a Implement agent limits 2011-04-21 23:03:38 +01:00
Justin Clark-Casey (justincc)
58efd761d1 Add coalesced scene objects class and serializer. This is currently only used by the TestRezCoalescedObject() regression test.
This structure matches the existing one for SceneObjects and will allow code to be reused by the uuid gatherer, other tests, etc.
Test is not yet fully implemented due to a bug in rezzing coalesced objects where they all get the same name as the item.
Only one object should get the same name as the item, which appears to be the one selected last when the the objects were coalesced in the first place.
This bug will be addressed shortly.
2011-04-13 21:17:43 +01:00
Justin Clark-Casey (justincc)
9bc2705f37 Fix bug where on duplication, the root part local id was continually used in populating the local id scene object index instead of each part's local id 2011-04-06 20:52:36 +01:00
Justin Clark-Casey (justincc)
f2d2470c25 When an object is duplicated, add it to the full/local id SOG indexes as well as Entities 2011-03-26 02:24:32 +00:00
Justin Clark-Casey (justincc)
26d16567e1 Make SceneGraph.ForEachSOG() execute once for each SOG, not once for each prim (e.g. a SOG with 3 prims would have the action executed three times).
To do this, a new SceneObjectGroupsByFullID index in SceneGraph which just index's prims by their root part UUID, in order to avoid the inefficiency of filtering existing lists.
Existing callers to SceneGraph.ForEachSOG() did not fail due to the multiple per SOG action executions - they were probably just much less efficient.
Code suggests that no callers expected ForEachSOG() to execute actions on sog multiple times
2011-03-26 00:53:19 +00:00
Justin Clark-Casey (justincc)
f30bf429c2 refactor: rename SOG collections in SceneGraph to make it clearer that they are indexing each part's UUID, not just the root part. 2011-03-26 00:42:48 +00:00
Justin Clark-Casey (justincc)
b34743e5fe Add an initial confidence-building TestAddObject() for prim counts. 2011-03-22 23:47:36 +00:00
Justin Clark-Casey (justincc)
2f5394e70d Fix bug where avatars in other regions would not always show up on the mini-map 2011-02-24 22:33:54 +00:00
Mic Bowman
240c0eaf1d Remove the RestorePresences functions (which don't seem to be doing
anything) and clean up the code in AddNewClient (so Appearance only
gets assigned once, not three times).
2011-01-26 13:33:34 -08:00
Justin Clark-Casey (justincc)
e62b3dba8a reinstate IAttachmentsModule.UpdateAttachmentPosition() since this is being used by a 3rd party region module and contains non-obvious attachment specific code
There are no functional changes.  UpdateAttachmentPosition() is adapted to the new approach of only saving attachment state on logout
2010-12-14 00:11:41 +00:00
Justin Clark-Casey (justincc)
a918c8df97 fix the minimap sitting avatar location bug
a sitting avatar should have it's offset position added to the scene object, not its absolute position
2010-12-10 03:46:16 +00: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
1fcac7203d Prevent nullrefs in scene object deletion. Mantis #5156 2010-10-27 20:47:27 +01:00
Melanie
511751a733 I really have to say it again and again: e.Message is NOT enough data for
troubleshooting. It MUST be combined with e.StackTrace, or e.ToString() must
be used.
Fix one more instance of that cr.p
2010-10-03 22:36:27 +01:00
Melanie
8e547d3491 Prevent setting arbitrary groups on your objects. 2010-09-27 02:11:55 +01: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)
7ae9266186 Remove SceneGraph.DetachObject() which was accidentally left around after being migrated to AttachmentsModule 2010-09-13 21:20:31 +01:00
Jeff Ames
f1f0bc23f4 Formatting cleanup. 2010-09-12 13:43:49 -04:00
John Hurliman
b597a295c4 Second pass at cleaning up thread safety in EntityManager and SceneGraph 2010-09-10 12:41:36 -07:00
John Hurliman
dd277a0d02 First pass at cleaning up thread safety in EntityManager and SceneGraph 2010-09-10 12:04:12 -07:00
Melanie
8fda08d858 Make sure unlinked child prims get persisted 2010-09-07 11:48:28 +01:00
Melanie Thielker
c47de94263 Adjust the "Magic numbers" we use because we can't reference the actual
script state enum to reflect recent changes.
2010-08-31 22:36:46 +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)
f3f4428700 refactor: break out attachment position change code in Scene.UpdatePrimPosition() and move into AttachmentsModule
This allows region modules to change attachment positions.
2010-08-26 21:50:19 +01:00
Justin Clark-Casey (justincc)
df702417dc Remove mono compiler warnings 2010-08-26 16:27:41 +01:00
Justin Clark-Casey (justincc)
87a6554d4b Merge branch 'master' of ssh://opensimulator.org/var/git/opensim
Resolve merge conflicts

Conflicts:
	OpenSim/Region/Framework/Scenes/SceneGraph.cs
2010-08-26 00:35:03 +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
Melanie Thielker
604423d52b Make scene object directories more robust and prevent deleted SOP's from
sticking around
2010-08-25 23:19:30 +01:00
Justin Clark-Casey (justincc)
d69e992665 Split out actual scene object insertion code from Scene.Inventory.RezObject and move into SceneGraph.AddNewSceneObject()
The new SceneGraph method is more consumable by region modules that want to extract objects from inventory and add them to the scene in separate stages.
This change also reduces the number of redundant client updates scheduled when an object is rezzed directly by a script or region module
This code does not touch direct rez by a user
2010-08-24 23:25:19 +01:00
Justin Clark-Casey (justincc)
4e2caab756 Add new SceneGraphTests class. Add simple TestDuplicateObject() 2010-08-07 01:06:47 +01:00
Justin Clark-Casey (justincc)
6c8c8d669b minor: a few miscellaneous comments 2010-08-07 00:45:04 +01:00
Justin Clark-Casey (justincc)
4d83b2d8a6 remove unused BasicQuadTreeNode 2010-07-30 21:06:45 +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
Melanie Thielker
660a560d3b Make drag copy and copy-on-ray handle friends list perms properly 2010-06-27 20:59:51 +01:00
Justin Clark-Casey (justincc)
52b711af82 stop KeyNotFoundException() being thrown in RemoveScenePresence if the agent isn't present in the presence dictionary
the code to do this was there but was being circumvented by newmap[agentID] before the check actually took place
2010-06-25 18:55:20 +01:00
Dan Lake
ca2abc43ad Refactor SendCoarseLocations for better performance. Instead of computing list of all locations fresh for every scene presence on every frame, we will instead compute the list once every 50 frames and send to all connected presences at that time. Also, we only add 60 items to the list when there are more than 60 presences in the scene. For 1000 users, this change yields a 99.8% reduction in list processing and a 98% reduction in network bandwidth for coarse locations. 2010-06-08 16:44:18 -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
e515467c5e Fix create selection getting overwritten by multiple updates for the same prim. 2010-05-31 17:55:56 +01:00
Justin Clark-Casey (justincc)
5287c5f7fb rearrange SceneGraph.AddSceneObject() to return earlier if an object with that uuid is already in the scene
this means that we don't perform pointless work
2010-05-21 21:57:56 +01:00
Justin Clark-Casey (justincc)
f83acf533b Fix a problem where SceneGraph.AddSceneObject() would return false on successfully adding an object rather than true, in defiance of its method documentation
This meant that the returns were inconsistent - false would be returned both for various scene object failure conditions (e.g. root part was null) and if the object was successfully added.
2010-05-21 21:22:53 +01:00
Dan Lake
36bcab5f07 Refactor scene presence list for lockless iteration. Lock contention will now only be for simultaneous add/removes of scene presences from the scene. 2010-05-15 02:20:23 -07:00
Melanie
22b3217113 Fix link security issue 2010-04-30 11:46:50 +01:00
Melanie
21cad5d3ac All scripts are now created suspended and are only unsuspended when the object
is fully rezzed and all scripts in it are instantiated. This ensures that link
messages will not be lost on rez/region crossing and makes heavily scripted
objects reliable.
2010-04-19 06:29:26 +01:00
Justin Clark-Casey (justincc)
57c293d604 refactor: crudely move DetachSingleAttachmentToGround() over to the AttachmentsModule 2010-04-16 23:15:13 +01:00