aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes/SceneGraph.cs (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Replacing te linking code with the code from Avination. Link sets prims are nowMelanie2011-11-051-1/+1
| | | | numbered properly even when sets are linked to sets.
* Renamed ForEachRootScenePresence to ForEachAvatar. Cleaned up calls toDan Lake2011-11-031-1/+1
| | | | | | | | | | | | | | the 3 iteration functions so more of them are using the correct iteration for the action they are performing. The 3 iterators that seem to fit all actions within OpenSim at this time are: ForEachAvatar: Perform an action on all avatars (root presences) ForEachClient: Perform an action on all clients (root or child clients) ForEachRootClient: Perform an action on all clients that have an avatar There are still a dozen places or so calling the old ForEachScenePresence that will take a little more refactoring to eliminate.
* Changes UpdateFlag in SOP to an enumeration of NONE, TERSE and FULL.Dan Lake2011-11-021-1/+1
| | | | | | | | | | | | | | | | | UpdateFlag is now referenced/used only within SOP and SOG. Outsiders are using ScheduleFullUpdate, ScheduleTerseUpdate or ClearUpdateSchedule on SOP consistently now. Also started working toward eliminating those calls to ScheduleFullUpdate, ScheduleTerseUpdate or ClearUpdateSchedule from outside SOP in favor of just setting properties on SOP and let SOP decide if an update should be scheduled. This consolidates the update policy within SOP and the client rather than everywhere that makes changes to SOP. Some places forget to call update while others call it multiple times, "just to be sure". UpdateFlag and Schedule*Update will both be made private shortly. UpdateFlag is intended to be transient and internal to SOP so it has been removed from XML serializer for SOPs.
* Remove the SyncRoot locking from Scene which was only being done around the ↵Justin Clark-Casey (justincc)2011-10-291-22/+16
| | | | | | main physics loop and ScenePresence position and velocity setting This is no longer necessary with ODECharacter taints (ODEPrim was already not taking part in this). BSCharacter was already tainting.
* Added new ForEachRootScenePresence to Scene since almost every delegate ↵Dan Lake2011-10-271-1/+15
| | | | passed to ForEachScenePresence checks for !IsChildAgent first. It consolidates child and root handling for coming refactors.
* Instead of adding stat agentMS in all kinds of places, calculate it instead ↵Justin Clark-Casey (justincc)2011-10-061-0/+6
| | | | | | | | in the main Scene.Update() loop, like the other stats Some of the places where agentMS was added were in separate threads launched by the update loop. I don't believe this is correct, since such threads are no longer contributing to frame time. Some of the places were also driven by client input rather than the scene loop. I don't believe it's appropriate to add this kind of stuff to scene loop stats. These changes hopefully have the nice affect of making the broken out frame stats actually add up to the total frame time
* Make reported sim fps more accurate, in line with frame time msJustin Clark-Casey (justincc)2011-10-051-0/+5
| | | | Also remove some unused fields and improve naming on others.
* Stop attempts to rewear already worn items from removing and reattaching.Justin Clark-Casey (justincc)2011-09-131-2/+2
| | | | | | | | Viewer 2/3 will sometimes attempt to rewear attachments, even though they have already been attached during the main login process. This change ignores those attempts. This stops script failures during login, as the rewearing was racing with the script startup code. It might also help with attachments being abnormally put into deleted state. Hopefully resolves some more of http://opensimulator.org/mantis/view.php?id=5644
* Comment out attachments code in Scene.IncomingCreateObject(UUID userID, UUID ↵Justin Clark-Casey (justincc)2011-09-131-2/+23
| | | | | | | | | itemID) for now As far as I can see, this is only invoked by a PUT request to ObjectHandlers, which is not being used anyway. Invoking attachments code at this point is probably inappropriate since it would still be invoked when the client entered the scene. Being commented to simplify analysis of attachments issues. Can be uncommented when in use. Also, small tweak to lock and log removal of a SOG from the SceneObjectGroupsByLocalPartID collection in SceneGraph.GetGroupByPrim() if an inconsistency is found.
* stop the duplicate remove of the root part ids from the full part and local ↵Justin Clark-Casey (justincc)2011-09-131-2/+0
| | | | | | part indexes in SG.DeleteSceneObject() this is unnecessary because the parts array iterated through contains the root part as well as the non-root parts
* In SG.AddSceneObject(), stop unnecessarily adding the root part to object ↵Justin Clark-Casey (justincc)2011-09-131-7/+5
| | | | | | indexes sepearately from the other parts. The SOG.Parts property contains the root part as well as the non-root parts
* stop the redundant passing in of RegionInfo to SceneGraph, since the Scene ↵Justin Clark-Casey (justincc)2011-09-121-5/+2
| | | | is always passed in at the same time.
* minor: if the script engine fails to find a prim for a script, also print ↵Justin Clark-Casey (justincc)2011-09-121-0/+4
| | | | out that prim's local id in the error message.
* Eliminate pointless checks of SOG.RootPart != nullJustin Clark-Casey (justincc)2011-09-011-1/+1
| | | | It's never possible for SOG to have no RootPart, except in the first few picosends of the big bang when it's pulled from region persistence or deserialized
* Remove pointless cluttering SOP.ParentGroup != null checks.Justin Clark-Casey (justincc)2011-09-011-19/+10
| | | | | The only times when ParentGroup might be null is during regression tests (which might not be a valid thing) and when scene objects are being constructed from the database. At all other times it's not possible for a SOP not to have a SOG parent.
* refactor: migrate DropObject handling fully into AttachmentsModule from SceneJustin Clark-Casey (justincc)2011-08-301-7/+0
|
* Related to #4689 - Adding missing null check for SceneObjectPartMakopoppo2011-08-271-4/+10
| | | | Signed-off-by: BlueWall <jamesh@bluewallgroup.com>
* Don't try to save changed attachment states when an NPC with attachments is ↵Justin Clark-Casey (justincc)2011-08-181-2/+3
| | | | | | | removed from the scene. This is done by introducing a PresenceType enum into ScenePresence which currently has two values, User and Npc. This seems better than a SaveAttachments flag in terms of code comprehension, though I'm still slightly uneasy about introducing these semantics to core objects
* refactor: rename UpdatePrimPosition() to UpdatePrimGroupPosition() for ↵Justin Clark-Casey (justincc)2011-07-191-2/+2
| | | | consistency
* Rename UpdatePrimRotation() to UpdatePrimGroupRotation() since this is what ↵Justin Clark-Casey (justincc)2011-07-191-3/+3
| | | | it actually does and is more consistent with other method names.
* Stop undo of just the root prim position in the linkset from shifting the ↵Justin Clark-Casey (justincc)2011-07-191-1/+0
| | | | | | whole linkset. However, what happens now is that undo just doesn't do anything when the root prim is selected on its own. This requires more code than just fiddling with undo states.
* fix undo when resizing of non-root individual prims in a linksetJustin Clark-Casey (justincc)2011-07-191-1/+1
| | | | undo resize, rotation and position still needs fixing when only editing root prim of a linkset
* Make various tweaks to undo code in an effort to get things working better.Justin Clark-Casey (justincc)2011-07-181-0/+1
| | | | | | | 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.
* Replace ifs in SOG.GroupResize() with Math.Min()Justin Clark-Casey (justincc)2011-07-161-0/+1
| | | | | 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.
* refactor: Push all part resize code down into SceneObjectPart.Resize()Justin Clark-Casey (justincc)2011-07-161-4/+5
|
* add test for resizing one part in a groupJustin Clark-Casey (justincc)2011-07-161-1/+1
|
* remove the need to supply SceneObjectGroup.GroupResize() with a localId.Justin Clark-Casey (justincc)2011-07-161-1/+1
| | | | This is utterly pointless scene we already know which sog we're dealing with.
* refactor: Make arguments to SceneGraph.UpdatePrimFlags() more readableJustin Clark-Casey (justincc)2011-07-111-6/+11
|
* minor: add method doc to make it clear that click action is fired when the ↵Justin Clark-Casey (justincc)2011-06-101-1/+10
| | | | click action is changed, not when a prim is clicked
* refactor Scene.RezObject() to use AddNewSceneObject() rather than ↵Justin Clark-Casey (justincc)2011-05-211-8/+9
| | | | copy/pasting code with small differences
* implement Scene.GetSceneObjectGroup(string name) to match the equivalent ↵Justin Clark-Casey (justincc)2011-05-201-1/+30
| | | | GetSOP method
* implement Scene.GetSceneObjectGroup(UUID fullID) using existing indexJustin Clark-Casey (justincc)2011-05-201-0/+16
|
* add test for rezzing an object from a prim itemJustin Clark-Casey (justincc)2011-05-201-0/+3
|
* Implement agent limitsMelanie2011-04-211-0/+5
|
* Add coalesced scene objects class and serializer. This is currently only ↵Justin Clark-Casey (justincc)2011-04-131-0/+2
| | | | | | | | | 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.
* Fix bug where on duplication, the root part local id was continually used in ↵Justin Clark-Casey (justincc)2011-04-061-1/+1
| | | | populating the local id scene object index instead of each part's local id
* When an object is duplicated, add it to the full/local id SOG indexes as ↵Justin Clark-Casey (justincc)2011-03-261-1/+29
| | | | well as Entities
* Make SceneGraph.ForEachSOG() execute once for each SOG, not once for each ↵Justin Clark-Casey (justincc)2011-03-261-5/+25
| | | | | | | | 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
* refactor: rename SOG collections in SceneGraph to make it clearer that they ↵Justin Clark-Casey (justincc)2011-03-261-30/+30
| | | | are indexing each part's UUID, not just the root part.
* Add an initial confidence-building TestAddObject() for prim counts.Justin Clark-Casey (justincc)2011-03-221-6/+7
|
* Fix bug where avatars in other regions would not always show up on the mini-mapJustin Clark-Casey (justincc)2011-02-241-1/+2
|
* Remove the RestorePresences functions (which don't seem to be doingMic Bowman2011-01-261-2/+2
| | | | | anything) and clean up the code in AddNewClient (so Appearance only gets assigned once, not three times).
* reinstate IAttachmentsModule.UpdateAttachmentPosition() since this is being ↵Justin Clark-Casey (justincc)2010-12-141-7/+2
| | | | | | 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
* fix the minimap sitting avatar location bugJustin Clark-Casey (justincc)2010-12-101-1/+1
| | | | a sitting avatar should have it's offset position added to the scene object, not its absolute position
* Change the way attachments are persisted. Editing a worn attachment will nowMelanie2010-11-161-5/+12
| | | | | | | 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.
* Prevent nullrefs in scene object deletion. Mantis #5156Melanie2010-10-271-1/+4
|
* I really have to say it again and again: e.Message is NOT enough data forMelanie2010-10-031-2/+1
| | | | | | troubleshooting. It MUST be combined with e.StackTrace, or e.ToString() must be used. Fix one more instance of that cr.p
* Prevent setting arbitrary groups on your objects.Melanie2010-09-271-0/+3
|
* Changed SceneObjectGroup to store parts with the fast and thread-safe ↵John Hurliman2010-09-161-33/+20
| | | | MapAndArray collection
* Remove SceneGraph.DetachObject() which was accidentally left around after ↵Justin Clark-Casey (justincc)2010-09-131-10/+0
| | | | being migrated to AttachmentsModule