Changed Enum type SceneObjectPartProperties to SceneObjectPartSyncProperties,

to indicate they are the properties synchronzed by the sync protocol.
Also, added UUID to PrimSyncInfo.
Encode/Decode SOP to/from OSDmap seems working fine now.
dsg
Huaiyu (Kitty) Liu 2011-04-15 10:42:57 -07:00
parent d0938f57eb
commit 9dfc0e92b8
21 changed files with 570 additions and 563 deletions

View File

@ -612,7 +612,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
so.IsSelected = false; // fudge.... so.IsSelected = false; // fudge....
//so.ScheduleGroupForFullUpdate(); //so.ScheduleGroupForFullUpdate();
so.ScheduleGroupForFullUpdate(new List<SceneObjectPartProperties>(){SceneObjectPartProperties.FullUpdate}); //just force it to sychronize all properties so.ScheduleGroupForFullUpdate(new List<SceneObjectPartSyncProperties>(){SceneObjectPartSyncProperties.FullUpdate}); //just force it to sychronize all properties
} }
// In case it is later dropped again, don't let // In case it is later dropped again, don't let

View File

@ -355,7 +355,7 @@ namespace OpenSim.Region.CoreModules.Avatar.ObjectCaps
} }
//rootGroup.ScheduleGroupForFullUpdate(); //rootGroup.ScheduleGroupForFullUpdate();
rootGroup.ScheduleGroupForFullUpdate(new List<SceneObjectPartProperties>(){SceneObjectPartProperties.FullUpdate}); //seems like new object rootGroup.ScheduleGroupForFullUpdate(new List<SceneObjectPartSyncProperties>(){SceneObjectPartSyncProperties.FullUpdate}); //seems like new object
pos = m_scene.GetNewRezLocation(Vector3.Zero, rootpos, UUID.Zero, rot, (byte)1, 1, true, allparts[0].GroupScale(), false); pos = m_scene.GetNewRezLocation(Vector3.Zero, rootpos, UUID.Zero, rot, (byte)1, 1, true, allparts[0].GroupScale(), false);
responsedata["int_response_code"] = 200; //501; //410; //404; responsedata["int_response_code"] = 200; //501; //410; //404;

View File

@ -1603,7 +1603,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
{ {
grp.OffsetForNewRegion(oldGroupPosition); grp.OffsetForNewRegion(oldGroupPosition);
//grp.ScheduleGroupForFullUpdate(); //grp.ScheduleGroupForFullUpdate();
grp.ScheduleGroupForFullUpdate(new List<SceneObjectPartProperties>(){SceneObjectPartProperties.Position}); grp.ScheduleGroupForFullUpdate(new List<SceneObjectPartSyncProperties>(){SceneObjectPartSyncProperties.Position});
} }
} }

View File

@ -587,7 +587,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
if (!attachment) if (!attachment)
{ {
//group.ScheduleGroupForFullUpdate(); //group.ScheduleGroupForFullUpdate();
group.ScheduleGroupForFullUpdate(new List<SceneObjectPartProperties>(){SceneObjectPartProperties.FullUpdate}); //new object group.ScheduleGroupForFullUpdate(new List<SceneObjectPartSyncProperties>(){SceneObjectPartSyncProperties.FullUpdate}); //new object
float offsetHeight = 0; float offsetHeight = 0;
pos = m_Scene.GetNewRezLocation( pos = m_Scene.GetNewRezLocation(
@ -708,7 +708,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
rootPart.ParentGroup.ResumeScripts(); rootPart.ParentGroup.ResumeScripts();
//rootPart.ScheduleFullUpdate(); //rootPart.ScheduleFullUpdate();
rootPart.ScheduleFullUpdate(new List<SceneObjectPartProperties>(){SceneObjectPartProperties.FullUpdate}); rootPart.ScheduleFullUpdate(new List<SceneObjectPartSyncProperties>(){SceneObjectPartSyncProperties.FullUpdate});
} }
if (!m_Scene.Permissions.BypassPermissions()) if (!m_Scene.Permissions.BypassPermissions())

View File

@ -574,7 +574,7 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule
primToUpdate.OffsetPosition = pos; primToUpdate.OffsetPosition = pos;
parent.HasGroupChanged = true; parent.HasGroupChanged = true;
//parent.ScheduleGroupForTerseUpdate(); //parent.ScheduleGroupForTerseUpdate();
parent.ScheduleGroupForTerseUpdate(new List<SceneObjectPartProperties>(){SceneObjectPartProperties.OffsetPosition}); parent.ScheduleGroupForTerseUpdate(new List<SceneObjectPartSyncProperties>(){SceneObjectPartSyncProperties.OffsetPosition});
} }
} }

View File

@ -252,7 +252,7 @@ namespace OpenSim.Region.CoreModules.World.Media.Moap
SetPartMediaFlags(part, face, me != null); SetPartMediaFlags(part, face, me != null);
//part.ScheduleFullUpdate(); //part.ScheduleFullUpdate();
part.ScheduleFullUpdate(new List<SceneObjectPartProperties>() { SceneObjectPartProperties.MediaUrl, SceneObjectPartProperties.Shape}); part.ScheduleFullUpdate(new List<SceneObjectPartSyncProperties>() { SceneObjectPartSyncProperties.MediaUrl, SceneObjectPartSyncProperties.Shape});
part.TriggerScriptChangedEvent(Changed.MEDIA); part.TriggerScriptChangedEvent(Changed.MEDIA);
} }
@ -459,7 +459,7 @@ namespace OpenSim.Region.CoreModules.World.Media.Moap
// Arguably, we could avoid sending a full update to the avatar that just changed the texture. // Arguably, we could avoid sending a full update to the avatar that just changed the texture.
//part.ScheduleFullUpdate(); //part.ScheduleFullUpdate();
part.ScheduleFullUpdate(new List<SceneObjectPartProperties>(){SceneObjectPartProperties.Shape, SceneObjectPartProperties.MediaUrl}); part.ScheduleFullUpdate(new List<SceneObjectPartSyncProperties>(){SceneObjectPartSyncProperties.Shape, SceneObjectPartSyncProperties.MediaUrl});
part.TriggerScriptChangedEvent(Changed.MEDIA); part.TriggerScriptChangedEvent(Changed.MEDIA);
@ -538,7 +538,7 @@ namespace OpenSim.Region.CoreModules.World.Media.Moap
UpdateMediaUrl(part, agentId); UpdateMediaUrl(part, agentId);
//part.ScheduleFullUpdate(); //part.ScheduleFullUpdate();
part.ScheduleFullUpdate(new List<SceneObjectPartProperties>(){SceneObjectPartProperties.MediaUrl}); part.ScheduleFullUpdate(new List<SceneObjectPartSyncProperties>(){SceneObjectPartSyncProperties.MediaUrl});
part.TriggerScriptChangedEvent(Changed.MEDIA); part.TriggerScriptChangedEvent(Changed.MEDIA);

View File

@ -149,7 +149,7 @@ namespace OpenSim.Region.CoreModules.World.Objects.BuySell
part.TriggerScriptChangedEvent(Changed.OWNER); part.TriggerScriptChangedEvent(Changed.OWNER);
group.ResumeScripts(); group.ResumeScripts();
//part.ScheduleFullUpdate(); //part.ScheduleFullUpdate();
part.ScheduleFullUpdate(new List<SceneObjectPartProperties>() { SceneObjectPartProperties.FullUpdate }); //quite some properties changed, let's just force all to be synchronized part.ScheduleFullUpdate(new List<SceneObjectPartSyncProperties>() { SceneObjectPartSyncProperties.FullUpdate }); //quite some properties changed, let's just force all to be synchronized
break; break;

View File

@ -60,7 +60,7 @@ namespace OpenSim.Region.Framework.Interfaces
/// <summary> /// <summary>
/// The mapping of a property (identified by its name) to the index of a bucket. /// The mapping of a property (identified by its name) to the index of a bucket.
/// </summary> /// </summary>
Dictionary<SceneObjectPartProperties, string> PrimPropertyBucketMap { get; } Dictionary<SceneObjectPartSyncProperties, string> PrimPropertyBucketMap { get; }
/// <summary> /// <summary>
/// The text description of the properties in each bucket, e.g. "General", "Physics" /// The text description of the properties in each bucket, e.g. "General", "Physics"
/// </summary> /// </summary>
@ -71,7 +71,7 @@ namespace OpenSim.Region.Framework.Interfaces
//void QueueSceneObjectPartForUpdate(SceneObjectPart part); //void QueueSceneObjectPartForUpdate(SceneObjectPart part);
void QueueScenePresenceForTerseUpdate(ScenePresence presence); void QueueScenePresenceForTerseUpdate(ScenePresence presence);
void ProcessAndEnqueuePrimUpdatesByLocal(SceneObjectPart part, List<SceneObjectPartProperties> updatedProperties); void ProcessAndEnqueuePrimUpdatesByLocal(SceneObjectPart part, List<SceneObjectPartSyncProperties> updatedProperties);
void SyncOutPrimUpdates(); void SyncOutPrimUpdates();
//The folloiwng calls deal with object updates, and will insert each update into an outgoing queue of each SyncConnector //The folloiwng calls deal with object updates, and will insert each update into an outgoing queue of each SyncConnector

View File

@ -2211,7 +2211,7 @@ namespace OpenSim.Region.Framework.Scenes
group.CreateScriptInstances(param, true, DefaultScriptEngine, 3); group.CreateScriptInstances(param, true, DefaultScriptEngine, 3);
//group.ScheduleGroupForFullUpdate(); //group.ScheduleGroupForFullUpdate();
group.ScheduleGroupForFullUpdate(new List<SceneObjectPartProperties>(){SceneObjectPartProperties.FullUpdate}); //new object, all properties have new value group.ScheduleGroupForFullUpdate(new List<SceneObjectPartSyncProperties>(){SceneObjectPartSyncProperties.FullUpdate}); //new object, all properties have new value
return group; return group;
} }
@ -2277,7 +2277,7 @@ namespace OpenSim.Region.Framework.Scenes
sog.SetOwnerId(ownerID); sog.SetOwnerId(ownerID);
sog.SetGroup(groupID, remoteClient); sog.SetGroup(groupID, remoteClient);
//sog.ScheduleGroupForFullUpdate(); //sog.ScheduleGroupForFullUpdate();
sog.ScheduleGroupForFullUpdate(new List<SceneObjectPartProperties>(){SceneObjectPartProperties.OwnerID, SceneObjectPartProperties.GroupID}); sog.ScheduleGroupForFullUpdate(new List<SceneObjectPartSyncProperties>(){SceneObjectPartSyncProperties.OwnerID, SceneObjectPartSyncProperties.GroupID});
SceneObjectPart[] partList = sog.Parts; SceneObjectPart[] partList = sog.Parts;

View File

@ -213,7 +213,7 @@ namespace OpenSim.Region.Framework.Scenes
isAttachment = true; isAttachment = true;
else else
//part.ParentGroup.ScheduleGroupForFullUpdate(); //part.ParentGroup.ScheduleGroupForFullUpdate();
part.ParentGroup.ScheduleGroupForFullUpdate(new List<SceneObjectPartProperties>(){SceneObjectPartProperties.IsSelected}); part.ParentGroup.ScheduleGroupForFullUpdate(new List<SceneObjectPartSyncProperties>(){SceneObjectPartSyncProperties.IsSelected});
// If it's not an attachment, and we are allowed to move it, // If it's not an attachment, and we are allowed to move it,
// then we might have done so. If we moved across a parcel // then we might have done so. If we moved across a parcel

View File

@ -2416,7 +2416,7 @@ namespace OpenSim.Region.Framework.Scenes
} }
//sceneObject.ScheduleGroupForFullUpdate(); //sceneObject.ScheduleGroupForFullUpdate();
sceneObject.ScheduleGroupForFullUpdate(new List<SceneObjectPartProperties>(){SceneObjectPartProperties.FullUpdate}); //new object, all properties have new value sceneObject.ScheduleGroupForFullUpdate(new List<SceneObjectPartSyncProperties>(){SceneObjectPartSyncProperties.FullUpdate}); //new object, all properties have new value
return sceneObject; return sceneObject;
} }
@ -4536,7 +4536,7 @@ namespace OpenSim.Region.Framework.Scenes
if (ent is SceneObjectGroup) if (ent is SceneObjectGroup)
{ {
//((SceneObjectGroup)ent).ScheduleGroupForFullUpdate(); //((SceneObjectGroup)ent).ScheduleGroupForFullUpdate();
((SceneObjectGroup)ent).ScheduleGroupForFullUpdate(new List<SceneObjectPartProperties>(){SceneObjectPartProperties.None}); //This is not due to property being updated, hence passing "None" property. ((SceneObjectGroup)ent).ScheduleGroupForFullUpdate(new List<SceneObjectPartSyncProperties>(){SceneObjectPartSyncProperties.None}); //This is not due to property being updated, hence passing "None" property.
} }
} }
} }

View File

@ -437,7 +437,7 @@ namespace OpenSim.Region.Framework.Scenes
if (sendClientUpdates) if (sendClientUpdates)
//sceneObject.ScheduleGroupForFullUpdate(); //sceneObject.ScheduleGroupForFullUpdate();
sceneObject.ScheduleGroupForFullUpdate(new List<SceneObjectPartProperties>() { SceneObjectPartProperties.None }); sceneObject.ScheduleGroupForFullUpdate(new List<SceneObjectPartSyncProperties>() { SceneObjectPartSyncProperties.None });
return true; return true;
} }
@ -1954,7 +1954,7 @@ namespace OpenSim.Region.Framework.Scenes
copy.CreateScriptInstances(0, false, m_parentScene.DefaultScriptEngine, 1); copy.CreateScriptInstances(0, false, m_parentScene.DefaultScriptEngine, 1);
copy.HasGroupChanged = true; copy.HasGroupChanged = true;
//copy.ScheduleGroupForFullUpdate(); //copy.ScheduleGroupForFullUpdate();
copy.ScheduleGroupForFullUpdate(new List<SceneObjectPartProperties>(){SceneObjectPartProperties.FullUpdate}); //new object, all property values are new copy.ScheduleGroupForFullUpdate(new List<SceneObjectPartSyncProperties>(){SceneObjectPartSyncProperties.FullUpdate}); //new object, all property values are new
copy.ResumeScripts(); copy.ResumeScripts();
// required for physics to update it's position // required for physics to update it's position

View File

@ -1017,7 +1017,7 @@ namespace OpenSim.Region.Framework.Scenes
AttachToBackup(); AttachToBackup();
m_scene.EventManager.TriggerParcelPrimCountTainted(); m_scene.EventManager.TriggerParcelPrimCountTainted();
//m_rootPart.ScheduleFullUpdate(); //m_rootPart.ScheduleFullUpdate();
m_rootPart.ScheduleFullUpdate(new List<SceneObjectPartProperties>() { SceneObjectPartProperties.GroupPosition, SceneObjectPartProperties.AttachmentPoint}); //Physics properties, such as Position, OffsetPosition, etc, should be tainted in ApplyPhysics() m_rootPart.ScheduleFullUpdate(new List<SceneObjectPartSyncProperties>() { SceneObjectPartSyncProperties.GroupPosition, SceneObjectPartSyncProperties.AttachmentPoint}); //Physics properties, such as Position, OffsetPosition, etc, should be tainted in ApplyPhysics()
m_rootPart.ClearUndoState(); m_rootPart.ClearUndoState();
} }
@ -1291,7 +1291,7 @@ namespace OpenSim.Region.Framework.Scenes
} }
//ScheduleGroupForFullUpdate(); //ScheduleGroupForFullUpdate();
ScheduleGroupForFullUpdate(new List<SceneObjectPartProperties>(){ SceneObjectPartProperties.Flags}); //do we also need to synchronize SOG properties such as m_scriptListens_atRotTarget? (does any acotr other than script engine care about it?) ScheduleGroupForFullUpdate(new List<SceneObjectPartSyncProperties>(){ SceneObjectPartSyncProperties.Flags}); //do we also need to synchronize SOG properties such as m_scriptListens_atRotTarget? (does any acotr other than script engine care about it?)
} }
public void SetText(string text, Vector3 color, double alpha) public void SetText(string text, Vector3 color, double alpha)
@ -1304,7 +1304,7 @@ namespace OpenSim.Region.Framework.Scenes
HasGroupChanged = true; HasGroupChanged = true;
//m_rootPart.ScheduleFullUpdate(); //m_rootPart.ScheduleFullUpdate();
m_rootPart.ScheduleFullUpdate(new List<SceneObjectPartProperties>() {SceneObjectPartProperties.Text, SceneObjectPartProperties.Color}); m_rootPart.ScheduleFullUpdate(new List<SceneObjectPartSyncProperties>() {SceneObjectPartSyncProperties.Text, SceneObjectPartSyncProperties.Color});
} }
/// <summary> /// <summary>
@ -1547,7 +1547,7 @@ namespace OpenSim.Region.Framework.Scenes
dupe.AttachToBackup(); dupe.AttachToBackup();
//ScheduleGroupForFullUpdate(); //ScheduleGroupForFullUpdate();
ScheduleGroupForFullUpdate(new List<SceneObjectPartProperties>(){SceneObjectPartProperties.FullUpdate}); ScheduleGroupForFullUpdate(new List<SceneObjectPartSyncProperties>(){SceneObjectPartSyncProperties.FullUpdate});
} }
return dupe; return dupe;
@ -1801,7 +1801,7 @@ namespace OpenSim.Region.Framework.Scenes
} }
//part.ScheduleFullUpdate(); //part.ScheduleFullUpdate();
part.ScheduleFullUpdate(new List<SceneObjectPartProperties>() {SceneObjectPartProperties.OwnerID, SceneObjectPartProperties.GroupID, SceneObjectPartProperties.LastOwnerID}); part.ScheduleFullUpdate(new List<SceneObjectPartSyncProperties>() {SceneObjectPartSyncProperties.OwnerID, SceneObjectPartSyncProperties.GroupID, SceneObjectPartSyncProperties.LastOwnerID});
} }
/// <summary> /// <summary>
@ -1927,7 +1927,7 @@ namespace OpenSim.Region.Framework.Scenes
/// Schedule a full update for this scene object /// Schedule a full update for this scene object
/// </summary> /// </summary>
//public void ScheduleGroupForFullUpdate() //public void ScheduleGroupForFullUpdate()
public void ScheduleGroupForFullUpdate(List<SceneObjectPartProperties> updatedProperties) public void ScheduleGroupForFullUpdate(List<SceneObjectPartSyncProperties> updatedProperties)
{ {
// if (IsAttachment) // if (IsAttachment)
// m_log.DebugFormat("[SOG]: Scheduling full update for {0} {1}", Name, LocalId); // m_log.DebugFormat("[SOG]: Scheduling full update for {0} {1}", Name, LocalId);
@ -1950,7 +1950,7 @@ namespace OpenSim.Region.Framework.Scenes
/// Schedule a terse update for this scene object /// Schedule a terse update for this scene object
/// </summary> /// </summary>
//public void ScheduleGroupForTerseUpdate() //public void ScheduleGroupForTerseUpdate()
public void ScheduleGroupForTerseUpdate(List<SceneObjectPartProperties> updatedProperties) public void ScheduleGroupForTerseUpdate(List<SceneObjectPartSyncProperties> updatedProperties)
{ {
// m_log.DebugFormat("[SOG]: Scheduling terse update for {0} {1}", Name, UUID); // m_log.DebugFormat("[SOG]: Scheduling terse update for {0} {1}", Name, UUID);
@ -2716,7 +2716,7 @@ namespace OpenSim.Region.Framework.Scenes
HasGroupChanged = true; HasGroupChanged = true;
part.TriggerScriptChangedEvent(Changed.SCALE); part.TriggerScriptChangedEvent(Changed.SCALE);
//ScheduleGroupForFullUpdate(); //ScheduleGroupForFullUpdate();
ScheduleGroupForFullUpdate(new List<SceneObjectPartProperties>(){SceneObjectPartProperties.None}); //above actions only update Scale for the given part, and part.Resize() will taint Scale as updated ScheduleGroupForFullUpdate(new List<SceneObjectPartSyncProperties>(){SceneObjectPartSyncProperties.None}); //above actions only update Scale for the given part, and part.Resize() will taint Scale as updated
//if (part.UUID == m_rootPart.UUID) //if (part.UUID == m_rootPart.UUID)
//{ //{
@ -2869,7 +2869,7 @@ namespace OpenSim.Region.Framework.Scenes
HasGroupChanged = true; HasGroupChanged = true;
m_rootPart.TriggerScriptChangedEvent(Changed.SCALE); m_rootPart.TriggerScriptChangedEvent(Changed.SCALE);
//ScheduleGroupForTerseUpdate(); //ScheduleGroupForTerseUpdate();
ScheduleGroupForTerseUpdate(new List<SceneObjectPartProperties>(){SceneObjectPartProperties.Scale}); ScheduleGroupForTerseUpdate(new List<SceneObjectPartSyncProperties>(){SceneObjectPartSyncProperties.Scale});
} }
} }
@ -2911,10 +2911,10 @@ namespace OpenSim.Region.Framework.Scenes
//we need to do a terse update even if the move wasn't allowed //we need to do a terse update even if the move wasn't allowed
// so that the position is reset in the client (the object snaps back) // so that the position is reset in the client (the object snaps back)
//ScheduleGroupForTerseUpdate(); //ScheduleGroupForTerseUpdate();
List<SceneObjectPartProperties> updatedProperties = new List<SceneObjectPartProperties>() { SceneObjectPartProperties.GroupPosition }; List<SceneObjectPartSyncProperties> updatedProperties = new List<SceneObjectPartSyncProperties>() { SceneObjectPartSyncProperties.GroupPosition };
if (IsAttachment) if (IsAttachment)
{ {
updatedProperties.Add(SceneObjectPartProperties.AttachedPos); updatedProperties.Add(SceneObjectPartSyncProperties.AttachedPos);
} }
ScheduleGroupForTerseUpdate(updatedProperties); ScheduleGroupForTerseUpdate(updatedProperties);
} }
@ -2980,7 +2980,7 @@ namespace OpenSim.Region.Framework.Scenes
HasGroupChanged = true; HasGroupChanged = true;
//ScheduleGroupForTerseUpdate(); //ScheduleGroupForTerseUpdate();
ScheduleGroupForTerseUpdate(new List<SceneObjectPartProperties>(){SceneObjectPartProperties.Position, SceneObjectPartProperties.OffsetPosition}); ScheduleGroupForTerseUpdate(new List<SceneObjectPartSyncProperties>(){SceneObjectPartSyncProperties.Position, SceneObjectPartSyncProperties.OffsetPosition});
} }
public void OffsetForNewRegion(Vector3 offset) public void OffsetForNewRegion(Vector3 offset)
@ -3013,7 +3013,7 @@ namespace OpenSim.Region.Framework.Scenes
HasGroupChanged = true; HasGroupChanged = true;
//ScheduleGroupForTerseUpdate(); //ScheduleGroupForTerseUpdate();
ScheduleGroupForTerseUpdate(new List<SceneObjectPartProperties>(){SceneObjectPartProperties.Orientation}); //Above actions only update m_rootPart's RotationOffset, and m_rootPart.UpdateRotation will taint RotationOffset as updated ScheduleGroupForTerseUpdate(new List<SceneObjectPartSyncProperties>(){SceneObjectPartSyncProperties.Orientation}); //Above actions only update m_rootPart's RotationOffset, and m_rootPart.UpdateRotation will taint RotationOffset as updated
} }
/// <summary> /// <summary>
@ -3040,7 +3040,7 @@ namespace OpenSim.Region.Framework.Scenes
HasGroupChanged = true; HasGroupChanged = true;
//ScheduleGroupForTerseUpdate(); //ScheduleGroupForTerseUpdate();
ScheduleGroupForTerseUpdate(new List<SceneObjectPartProperties>(){SceneObjectPartProperties.Position, SceneObjectPartProperties.Orientation}); //RotationOffset is only updated for m_rootPart, and m_rootPart.UpdateRotation should already taint RotationOffset as updated ScheduleGroupForTerseUpdate(new List<SceneObjectPartSyncProperties>(){SceneObjectPartSyncProperties.Position, SceneObjectPartSyncProperties.Orientation}); //RotationOffset is only updated for m_rootPart, and m_rootPart.UpdateRotation should already taint RotationOffset as updated
} }
/// <summary> /// <summary>
@ -3128,7 +3128,7 @@ namespace OpenSim.Region.Framework.Scenes
newRot *= Quaternion.Inverse(axRot); newRot *= Quaternion.Inverse(axRot);
prim.RotationOffset = newRot; prim.RotationOffset = newRot;
//prim.ScheduleTerseUpdate(); //prim.ScheduleTerseUpdate();
prim.ScheduleTerseUpdate(new List<SceneObjectPartProperties>(){ SceneObjectPartProperties.RotationOffset, SceneObjectPartProperties.OffsetPosition}); prim.ScheduleTerseUpdate(new List<SceneObjectPartSyncProperties>(){ SceneObjectPartSyncProperties.RotationOffset, SceneObjectPartSyncProperties.OffsetPosition});
} }
} }
@ -3143,7 +3143,7 @@ namespace OpenSim.Region.Framework.Scenes
} }
//m_rootPart.ScheduleTerseUpdate(); //m_rootPart.ScheduleTerseUpdate();
m_rootPart.ScheduleTerseUpdate(new List<SceneObjectPartProperties>(){SceneObjectPartProperties.RotationOffset}); m_rootPart.ScheduleTerseUpdate(new List<SceneObjectPartSyncProperties>(){SceneObjectPartSyncProperties.RotationOffset});
} }
#endregion #endregion

View File

@ -2800,7 +2800,7 @@ namespace OpenSim.Region.Framework.Scenes
//m_parentGroup.RootPart.m_groupPosition = newpos; //m_parentGroup.RootPart.m_groupPosition = newpos;
} }
//ScheduleTerseUpdate(); //ScheduleTerseUpdate();
ScheduleTerseUpdate(new List<SceneObjectPartProperties>(){SceneObjectPartProperties.Position}); ScheduleTerseUpdate(new List<SceneObjectPartSyncProperties>(){SceneObjectPartSyncProperties.Position});
//SendTerseUpdateToAllClients(); //SendTerseUpdateToAllClients();
} }
@ -2891,7 +2891,7 @@ namespace OpenSim.Region.Framework.Scenes
ParentGroup.HasGroupChanged = true; ParentGroup.HasGroupChanged = true;
//ScheduleFullUpdate(); //ScheduleFullUpdate();
ScheduleFullUpdate(new List<SceneObjectPartProperties>(){SceneObjectPartProperties.Scale}); ScheduleFullUpdate(new List<SceneObjectPartSyncProperties>(){SceneObjectPartSyncProperties.Scale});
} }
public void RotLookAt(Quaternion target, float strength, float damping) public void RotLookAt(Quaternion target, float strength, float damping)
@ -2934,7 +2934,7 @@ namespace OpenSim.Region.Framework.Scenes
/// Schedules this prim for a full update /// Schedules this prim for a full update
/// </summary> /// </summary>
//public void ScheduleFullUpdate() :: SYMMETRIC SYNC: changed the interface so that we can identify which property triggers calling this function //public void ScheduleFullUpdate() :: SYMMETRIC SYNC: changed the interface so that we can identify which property triggers calling this function
public virtual void ScheduleFullUpdate(List<SceneObjectPartProperties> updatedProperties) public virtual void ScheduleFullUpdate(List<SceneObjectPartSyncProperties> updatedProperties)
{ {
// m_log.DebugFormat("[SCENE OBJECT PART]: Scheduling full update for {0} {1}", Name, LocalId); // m_log.DebugFormat("[SCENE OBJECT PART]: Scheduling full update for {0} {1}", Name, LocalId);
@ -2969,7 +2969,7 @@ namespace OpenSim.Region.Framework.Scenes
/// rotation, velocity, rotational velocity and shape information. /// rotation, velocity, rotational velocity and shape information.
/// </summary> /// </summary>
//public void ScheduleTerseUpdate() //public void ScheduleTerseUpdate()
public virtual void ScheduleTerseUpdate(List<SceneObjectPartProperties> updatedProperties) public virtual void ScheduleTerseUpdate(List<SceneObjectPartSyncProperties> updatedProperties)
{ {
if (m_updateFlag < 1) if (m_updateFlag < 1)
{ {
@ -3675,7 +3675,7 @@ namespace OpenSim.Region.Framework.Scenes
ParentGroup.HasGroupChanged = true; ParentGroup.HasGroupChanged = true;
//ScheduleFullUpdate(); //ScheduleFullUpdate();
ScheduleFullUpdate(new List<SceneObjectPartProperties>(){SceneObjectPartProperties.Text}); ScheduleFullUpdate(new List<SceneObjectPartSyncProperties>(){SceneObjectPartSyncProperties.Text});
} }
public void StopLookAt() public void StopLookAt()
@ -3683,7 +3683,7 @@ namespace OpenSim.Region.Framework.Scenes
m_parentGroup.stopLookAt(); m_parentGroup.stopLookAt();
//m_parentGroup.ScheduleGroupForTerseUpdate(); //m_parentGroup.ScheduleGroupForTerseUpdate();
m_parentGroup.ScheduleGroupForTerseUpdate(new List<SceneObjectPartProperties>(){SceneObjectPartProperties.None});//in stopLookAt(), PhysicsActor shall already take care of tainting which properties have been updated m_parentGroup.ScheduleGroupForTerseUpdate(new List<SceneObjectPartSyncProperties>(){SceneObjectPartSyncProperties.None});//in stopLookAt(), PhysicsActor shall already take care of tainting which properties have been updated
} }
/// <summary> /// <summary>
@ -3706,7 +3706,7 @@ namespace OpenSim.Region.Framework.Scenes
m_parentGroup.stopMoveToTarget(); m_parentGroup.stopMoveToTarget();
//m_parentGroup.ScheduleGroupForTerseUpdate(); //m_parentGroup.ScheduleGroupForTerseUpdate();
m_parentGroup.ScheduleGroupForTerseUpdate(new List<SceneObjectPartProperties>(){SceneObjectPartProperties.None}); //in stopMoveToTarget(), PhysicsActor shall already take care of tainting which properties have been updated m_parentGroup.ScheduleGroupForTerseUpdate(new List<SceneObjectPartSyncProperties>(){SceneObjectPartSyncProperties.None}); //in stopMoveToTarget(), PhysicsActor shall already take care of tainting which properties have been updated
//m_parentGroup.ScheduleGroupForFullUpdate(); //m_parentGroup.ScheduleGroupForFullUpdate();
} }
@ -4255,7 +4255,7 @@ namespace OpenSim.Region.Framework.Scenes
ParentGroup.HasGroupChanged = true; ParentGroup.HasGroupChanged = true;
//ScheduleFullUpdate(); //ScheduleFullUpdate();
ScheduleFullUpdate(new List<SceneObjectPartProperties>(){SceneObjectPartProperties.Shape}); ScheduleFullUpdate(new List<SceneObjectPartSyncProperties>(){SceneObjectPartSyncProperties.Shape});
} }
public void UpdateGroupPosition(Vector3 pos) public void UpdateGroupPosition(Vector3 pos)
@ -4267,7 +4267,7 @@ namespace OpenSim.Region.Framework.Scenes
Vector3 newPos = new Vector3(pos.X, pos.Y, pos.Z); Vector3 newPos = new Vector3(pos.X, pos.Y, pos.Z);
GroupPosition = newPos; GroupPosition = newPos;
//ScheduleTerseUpdate(); //ScheduleTerseUpdate();
ScheduleFullUpdate(new List<SceneObjectPartProperties>(){SceneObjectPartProperties.GroupPosition}); ScheduleFullUpdate(new List<SceneObjectPartSyncProperties>(){SceneObjectPartSyncProperties.GroupPosition});
} }
} }
@ -4300,7 +4300,7 @@ namespace OpenSim.Region.Framework.Scenes
OffsetPosition = newPos; OffsetPosition = newPos;
//ScheduleTerseUpdate(); //ScheduleTerseUpdate();
ScheduleFullUpdate(new List<SceneObjectPartProperties>(){SceneObjectPartProperties.OffsetPosition}); ScheduleFullUpdate(new List<SceneObjectPartSyncProperties>(){SceneObjectPartSyncProperties.OffsetPosition});
} }
} }
@ -4590,7 +4590,7 @@ namespace OpenSim.Region.Framework.Scenes
ParentGroup.HasGroupChanged = true; ParentGroup.HasGroupChanged = true;
//ScheduleFullUpdate(); //ScheduleFullUpdate();
ScheduleFullUpdate(new List<SceneObjectPartProperties>() { SceneObjectPartProperties.Flags}); ScheduleFullUpdate(new List<SceneObjectPartSyncProperties>() { SceneObjectPartSyncProperties.Flags});
} }
public void UpdateRotation(Quaternion rot) public void UpdateRotation(Quaternion rot)
@ -4603,7 +4603,7 @@ namespace OpenSim.Region.Framework.Scenes
RotationOffset = rot; RotationOffset = rot;
ParentGroup.HasGroupChanged = true; ParentGroup.HasGroupChanged = true;
//ScheduleTerseUpdate(); //ScheduleTerseUpdate();
ScheduleFullUpdate(new List<SceneObjectPartProperties>() {SceneObjectPartProperties.RotationOffset}); ScheduleFullUpdate(new List<SceneObjectPartSyncProperties>() {SceneObjectPartSyncProperties.RotationOffset});
} }
} }
@ -4649,7 +4649,7 @@ namespace OpenSim.Region.Framework.Scenes
ParentGroup.HasGroupChanged = true; ParentGroup.HasGroupChanged = true;
TriggerScriptChangedEvent(Changed.SHAPE); TriggerScriptChangedEvent(Changed.SHAPE);
//ScheduleFullUpdate(); //ScheduleFullUpdate();
ScheduleFullUpdate(new List<SceneObjectPartProperties>() {SceneObjectPartProperties.Shape}); ScheduleFullUpdate(new List<SceneObjectPartSyncProperties>() {SceneObjectPartSyncProperties.Shape});
} }
/// <summary> /// <summary>
@ -4697,7 +4697,7 @@ namespace OpenSim.Region.Framework.Scenes
//ParentGroup.ScheduleGroupForFullUpdate(); //ParentGroup.ScheduleGroupForFullUpdate();
//This is sparta //This is sparta
//ScheduleFullUpdate(); //ScheduleFullUpdate();
ScheduleFullUpdate(new List<SceneObjectPartProperties>() {SceneObjectPartProperties.Shape}); ScheduleFullUpdate(new List<SceneObjectPartSyncProperties>() {SceneObjectPartSyncProperties.Shape});
} }
public void aggregateScriptEvents() public void aggregateScriptEvents()
@ -4766,7 +4766,7 @@ namespace OpenSim.Region.Framework.Scenes
// m_log.DebugFormat( // m_log.DebugFormat(
// "[SCENE OBJECT PART]: Scheduling part {0} {1} for full update in aggregateScriptEvents() since m_parentGroup == null", Name, LocalId); // "[SCENE OBJECT PART]: Scheduling part {0} {1} for full update in aggregateScriptEvents() since m_parentGroup == null", Name, LocalId);
//ScheduleFullUpdate(); //ScheduleFullUpdate();
ScheduleFullUpdate(new List<SceneObjectPartProperties>() { SceneObjectPartProperties.Flags, SceneObjectPartProperties.AggregateScriptEvents}); ScheduleFullUpdate(new List<SceneObjectPartSyncProperties>() { SceneObjectPartSyncProperties.Flags, SceneObjectPartSyncProperties.AggregateScriptEvents});
return; return;
} }
@ -4790,7 +4790,7 @@ namespace OpenSim.Region.Framework.Scenes
// m_log.DebugFormat( // m_log.DebugFormat(
// "[SCENE OBJECT PART]: Scheduling part {0} {1} for full update in aggregateScriptEvents()", Name, LocalId); // "[SCENE OBJECT PART]: Scheduling part {0} {1} for full update in aggregateScriptEvents()", Name, LocalId);
//ScheduleFullUpdate(); //ScheduleFullUpdate();
ScheduleFullUpdate(new List<SceneObjectPartProperties>() { SceneObjectPartProperties.Flags, SceneObjectPartProperties.AggregateScriptEvents}); ScheduleFullUpdate(new List<SceneObjectPartSyncProperties>() { SceneObjectPartSyncProperties.Flags, SceneObjectPartSyncProperties.AggregateScriptEvents});
} }
} }
@ -5155,7 +5155,7 @@ namespace OpenSim.Region.Framework.Scenes
} }
*/ */
public enum SceneObjectPartProperties public enum SceneObjectPartSyncProperties
{ {
None, None,
//Following properties copied from SceneObjectSerializer(), //Following properties copied from SceneObjectSerializer(),
@ -5165,7 +5165,7 @@ namespace OpenSim.Region.Framework.Scenes
FolderID , FolderID ,
InventorySerial, InventorySerial,
TaskInventory, TaskInventory,
//UUID", //UUID", //UUID not supposed to be changed after SOP is created, not included in SyncProperties
//LocalId", //LocalId",
Name, Name,
Material, Material,
@ -5271,7 +5271,7 @@ namespace OpenSim.Region.Framework.Scenes
//TODO: serialization and deserialization processors to be added in SceneObjectSerializer //TODO: serialization and deserialization processors to be added in SceneObjectSerializer
//The following variables are initialized when RegionSyncModule reads the config file for mapping of properties and buckets //The following variables are initialized when RegionSyncModule reads the config file for mapping of properties and buckets
private static Dictionary<SceneObjectPartProperties, string> m_primPropertyBucketMap = null; private static Dictionary<SceneObjectPartSyncProperties, string> m_primPropertyBucketMap = null;
private static List<string> m_propertyBucketNames = null; private static List<string> m_propertyBucketNames = null;
private static string m_localActorID = ""; private static string m_localActorID = "";
@ -5369,15 +5369,15 @@ namespace OpenSim.Region.Framework.Scenes
/// Excluding None, FullUpdate. /// Excluding None, FullUpdate.
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
public static HashSet<SceneObjectPartProperties> GetAllPrimProperties() public static HashSet<SceneObjectPartSyncProperties> GetAllPrimProperties()
{ {
HashSet<SceneObjectPartProperties> allProperties = new HashSet<SceneObjectPartProperties>(); HashSet<SceneObjectPartSyncProperties> allProperties = new HashSet<SceneObjectPartSyncProperties>();
foreach (SceneObjectPartProperties property in Enum.GetValues(typeof(SceneObjectPartProperties))) foreach (SceneObjectPartSyncProperties property in Enum.GetValues(typeof(SceneObjectPartSyncProperties)))
{ {
switch (property) switch (property)
{ {
case SceneObjectPartProperties.None: case SceneObjectPartSyncProperties.None:
case SceneObjectPartProperties.FullUpdate: case SceneObjectPartSyncProperties.FullUpdate:
break; break;
default: default:
allProperties.Add(property); allProperties.Add(property);
@ -5387,30 +5387,30 @@ namespace OpenSim.Region.Framework.Scenes
return allProperties; return allProperties;
} }
public static HashSet<SceneObjectPartProperties> GetAllPrimNonPhysActorProperties() public static HashSet<SceneObjectPartSyncProperties> GetAllPrimNonPhysActorProperties()
{ {
HashSet<SceneObjectPartProperties> allProperties = new HashSet<SceneObjectPartProperties>(); HashSet<SceneObjectPartSyncProperties> allProperties = new HashSet<SceneObjectPartSyncProperties>();
foreach (SceneObjectPartProperties property in Enum.GetValues(typeof(SceneObjectPartProperties))) foreach (SceneObjectPartSyncProperties property in Enum.GetValues(typeof(SceneObjectPartSyncProperties)))
{ {
switch (property) switch (property)
{ {
//Enum value that is not real properties //Enum value that is not real properties
case SceneObjectPartProperties.None: case SceneObjectPartSyncProperties.None:
case SceneObjectPartProperties.FullUpdate: case SceneObjectPartSyncProperties.FullUpdate:
//PhysActor properties //PhysActor properties
case SceneObjectPartProperties.Buoyancy: case SceneObjectPartSyncProperties.Buoyancy:
case SceneObjectPartProperties.Flying: case SceneObjectPartSyncProperties.Flying:
case SceneObjectPartProperties.Force: case SceneObjectPartSyncProperties.Force:
case SceneObjectPartProperties.IsColliding: case SceneObjectPartSyncProperties.IsColliding:
case SceneObjectPartProperties.CollidingGround: case SceneObjectPartSyncProperties.CollidingGround:
case SceneObjectPartProperties.IsPhysical: case SceneObjectPartSyncProperties.IsPhysical:
case SceneObjectPartProperties.Kinematic: case SceneObjectPartSyncProperties.Kinematic:
case SceneObjectPartProperties.Orientation: case SceneObjectPartSyncProperties.Orientation:
case SceneObjectPartProperties.PA_Acceleration: case SceneObjectPartSyncProperties.PA_Acceleration:
case SceneObjectPartProperties.Position: case SceneObjectPartSyncProperties.Position:
case SceneObjectPartProperties.RotationalVelocity: case SceneObjectPartSyncProperties.RotationalVelocity:
case SceneObjectPartProperties.Size: case SceneObjectPartSyncProperties.Size:
case SceneObjectPartProperties.Torque: case SceneObjectPartSyncProperties.Torque:
break; break;
default: default:
allProperties.Add(property); allProperties.Add(property);
@ -5420,27 +5420,27 @@ namespace OpenSim.Region.Framework.Scenes
return allProperties; return allProperties;
} }
public static HashSet<SceneObjectPartProperties> GetAllPhysActorProperties() public static HashSet<SceneObjectPartSyncProperties> GetAllPhysActorProperties()
{ {
HashSet<SceneObjectPartProperties> allProperties = new HashSet<SceneObjectPartProperties>(); HashSet<SceneObjectPartSyncProperties> allProperties = new HashSet<SceneObjectPartSyncProperties>();
foreach (SceneObjectPartProperties property in Enum.GetValues(typeof(SceneObjectPartProperties))) foreach (SceneObjectPartSyncProperties property in Enum.GetValues(typeof(SceneObjectPartSyncProperties)))
{ {
switch (property) switch (property)
{ {
//PhysActor properties //PhysActor properties
case SceneObjectPartProperties.Buoyancy: case SceneObjectPartSyncProperties.Buoyancy:
case SceneObjectPartProperties.Flying: case SceneObjectPartSyncProperties.Flying:
case SceneObjectPartProperties.Force: case SceneObjectPartSyncProperties.Force:
case SceneObjectPartProperties.IsColliding: case SceneObjectPartSyncProperties.IsColliding:
case SceneObjectPartProperties.CollidingGround: case SceneObjectPartSyncProperties.CollidingGround:
case SceneObjectPartProperties.IsPhysical: case SceneObjectPartSyncProperties.IsPhysical:
case SceneObjectPartProperties.Kinematic: case SceneObjectPartSyncProperties.Kinematic:
case SceneObjectPartProperties.Orientation: case SceneObjectPartSyncProperties.Orientation:
case SceneObjectPartProperties.PA_Acceleration: case SceneObjectPartSyncProperties.PA_Acceleration:
case SceneObjectPartProperties.Position: case SceneObjectPartSyncProperties.Position:
case SceneObjectPartProperties.RotationalVelocity: case SceneObjectPartSyncProperties.RotationalVelocity:
case SceneObjectPartProperties.Size: case SceneObjectPartSyncProperties.Size:
case SceneObjectPartProperties.Torque: case SceneObjectPartSyncProperties.Torque:
allProperties.Add(property); allProperties.Add(property);
break; break;
default: default:
@ -5450,13 +5450,13 @@ namespace OpenSim.Region.Framework.Scenes
return allProperties; return allProperties;
} }
public static HashSet<SceneObjectPartProperties> GetGroupProperties() public static HashSet<SceneObjectPartSyncProperties> GetGroupProperties()
{ {
HashSet<SceneObjectPartProperties> allProperties = new HashSet<SceneObjectPartProperties>(){SceneObjectPartProperties.IsSelected}; HashSet<SceneObjectPartSyncProperties> allProperties = new HashSet<SceneObjectPartSyncProperties>(){SceneObjectPartSyncProperties.IsSelected};
return allProperties; return allProperties;
} }
public static void InitializePropertyBucketInfo(Dictionary<SceneObjectPartProperties, string> propertyBucketMap, List<string> bucketNames, string actorID) public static void InitializePropertyBucketInfo(Dictionary<SceneObjectPartSyncProperties, string> propertyBucketMap, List<string> bucketNames, string actorID)
{ {
m_primPropertyBucketMap = propertyBucketMap; m_primPropertyBucketMap = propertyBucketMap;
m_propertyBucketNames = bucketNames; m_propertyBucketNames = bucketNames;
@ -5801,14 +5801,14 @@ namespace OpenSim.Region.Framework.Scenes
} }
//For tainitng and clearing taints, do i need to lock on m_bucketSyncTaint? //For tainitng and clearing taints, do i need to lock on m_bucketSyncTaint?
public void TaintBucketSyncInfo(SceneObjectPartProperties property) public void TaintBucketSyncInfo(SceneObjectPartSyncProperties property)
{ {
if (m_syncEnabled) if (m_syncEnabled)
{ {
if (property == SceneObjectPartProperties.None) if (property == SceneObjectPartSyncProperties.None)
return; return;
if (property == SceneObjectPartProperties.FullUpdate) if (property == SceneObjectPartSyncProperties.FullUpdate)
{ {
foreach (BucketSyncInfo bucketSynInfo in m_bucketSyncInfoList.Values) foreach (BucketSyncInfo bucketSynInfo in m_bucketSyncInfoList.Values)
{ {
@ -5896,7 +5896,7 @@ namespace OpenSim.Region.Framework.Scenes
/// Update the timestamp and actorID information of the bucket the given property belongs to. /// Update the timestamp and actorID information of the bucket the given property belongs to.
/// </summary> /// </summary>
/// <param name="propertyName">Name of the property. Make sure the spelling is consistent with what are defined in PropertyList</param> /// <param name="propertyName">Name of the property. Make sure the spelling is consistent with what are defined in PropertyList</param>
public void UpdateBucketSyncInfo(SceneObjectPartProperties property) public void UpdateBucketSyncInfo(SceneObjectPartSyncProperties property)
{ {
if (m_syncEnabled && m_bucketSyncInfoList != null && m_bucketSyncInfoList.Count > 0) if (m_syncEnabled && m_bucketSyncInfoList != null && m_bucketSyncInfoList.Count > 0)
{ {
@ -6066,7 +6066,7 @@ namespace OpenSim.Region.Framework.Scenes
//Implementation of ScheduleFullUpdate and ScheduleTerseUpdate for Bucket //Implementation of ScheduleFullUpdate and ScheduleTerseUpdate for Bucket
//based synchronization //based synchronization
public override void ScheduleFullUpdate(List<SceneObjectPartProperties> updatedProperties) public override void ScheduleFullUpdate(List<SceneObjectPartSyncProperties> updatedProperties)
{ {
if (updatedProperties != null && updatedProperties.Count > 0) if (updatedProperties != null && updatedProperties.Count > 0)
{ {
@ -6079,7 +6079,7 @@ namespace OpenSim.Region.Framework.Scenes
base.ScheduleTerseUpdate(updatedProperties); base.ScheduleTerseUpdate(updatedProperties);
} }
public override void ScheduleTerseUpdate(List<SceneObjectPartProperties> updatedProperties) public override void ScheduleTerseUpdate(List<SceneObjectPartSyncProperties> updatedProperties)
{ {
if (updatedProperties != null && updatedProperties.Count > 0) if (updatedProperties != null && updatedProperties.Count > 0)
{ {

View File

@ -294,7 +294,7 @@ namespace OpenSim.Region.Framework.Scenes
m_part.ParentGroup.Scene.EventManager.TriggerRezScript( m_part.ParentGroup.Scene.EventManager.TriggerRezScript(
m_part.LocalId, item.ItemID, String.Empty, startParam, postOnRez, engine, stateSource); m_part.LocalId, item.ItemID, String.Empty, startParam, postOnRez, engine, stateSource);
m_part.ParentGroup.AddActiveScriptCount(1); m_part.ParentGroup.AddActiveScriptCount(1);
m_part.ScheduleFullUpdate(new List<SceneObjectPartProperties>(){SceneObjectPartProperties.Flags, SceneObjectPartProperties.TaskInventory}); m_part.ScheduleFullUpdate(new List<SceneObjectPartSyncProperties>(){SceneObjectPartSyncProperties.Flags, SceneObjectPartSyncProperties.TaskInventory});
return; return;
} }
@ -322,7 +322,7 @@ namespace OpenSim.Region.Framework.Scenes
m_part.ParentGroup.Scene.EventManager.TriggerRezScript( m_part.ParentGroup.Scene.EventManager.TriggerRezScript(
m_part.LocalId, item.ItemID, script, startParam, postOnRez, engine, stateSource); m_part.LocalId, item.ItemID, script, startParam, postOnRez, engine, stateSource);
m_part.ParentGroup.AddActiveScriptCount(1); m_part.ParentGroup.AddActiveScriptCount(1);
m_part.ScheduleFullUpdate(new List<SceneObjectPartProperties>(){SceneObjectPartProperties.Flags, SceneObjectPartProperties.TaskInventory}); m_part.ScheduleFullUpdate(new List<SceneObjectPartSyncProperties>(){SceneObjectPartSyncProperties.Flags, SceneObjectPartSyncProperties.TaskInventory});
} }
} }
} }
@ -546,7 +546,7 @@ namespace OpenSim.Region.Framework.Scenes
m_part.ParentGroup.HasGroupChanged = true; m_part.ParentGroup.HasGroupChanged = true;
//SYMMETRIC SYNC: add ScheduleFullUpdate to enable synchronization across actors //SYMMETRIC SYNC: add ScheduleFullUpdate to enable synchronization across actors
m_part.ScheduleFullUpdate(new List<SceneObjectPartProperties>(){SceneObjectPartProperties.TaskInventory, SceneObjectPartProperties.InventorySerial}); m_part.ScheduleFullUpdate(new List<SceneObjectPartSyncProperties>(){SceneObjectPartSyncProperties.TaskInventory, SceneObjectPartSyncProperties.InventorySerial});
} }
/// <summary> /// <summary>
@ -766,7 +766,7 @@ namespace OpenSim.Region.Framework.Scenes
if (!ContainsScripts()) if (!ContainsScripts())
m_part.RemFlag(PrimFlags.Scripted); m_part.RemFlag(PrimFlags.Scripted);
m_part.ScheduleFullUpdate(new List<SceneObjectPartProperties>(){SceneObjectPartProperties.TaskInventory}); m_part.ScheduleFullUpdate(new List<SceneObjectPartSyncProperties>(){SceneObjectPartSyncProperties.TaskInventory});
return type; return type;

View File

@ -95,12 +95,12 @@ namespace OpenSim.Region.Framework.Scenes
part.Resize(Scale); part.Resize(Scale);
//part.ParentGroup.ScheduleGroupForTerseUpdate(); //part.ParentGroup.ScheduleGroupForTerseUpdate();
//SYMMETRIC SYNC //SYMMETRIC SYNC
List<SceneObjectPartProperties> updatedProperties = new List<SceneObjectPartProperties>(); List<SceneObjectPartSyncProperties> updatedProperties = new List<SceneObjectPartSyncProperties>();
updatedProperties.Add(SceneObjectPartProperties.RotationOffset); updatedProperties.Add(SceneObjectPartSyncProperties.RotationOffset);
if (Position != Vector3.Zero) if (Position != Vector3.Zero)
updatedProperties.Add(SceneObjectPartProperties.Position); updatedProperties.Add(SceneObjectPartSyncProperties.Position);
if (Scale != Vector3.Zero) if (Scale != Vector3.Zero)
updatedProperties.Add(SceneObjectPartProperties.Scale); updatedProperties.Add(SceneObjectPartSyncProperties.Scale);
part.ParentGroup.ScheduleGroupForTerseUpdate(updatedProperties); part.ParentGroup.ScheduleGroupForTerseUpdate(updatedProperties);
} }
else else
@ -111,12 +111,12 @@ namespace OpenSim.Region.Framework.Scenes
if (Scale != Vector3.Zero) if (Scale != Vector3.Zero)
part.Resize(Scale); //part.ScheduleTerseUpdate(); part.Resize(Scale); //part.ScheduleTerseUpdate();
//SYMMETRIC SYNC //SYMMETRIC SYNC
List<SceneObjectPartProperties> updatedProperties = new List<SceneObjectPartProperties>(); List<SceneObjectPartSyncProperties> updatedProperties = new List<SceneObjectPartSyncProperties>();
updatedProperties.Add(SceneObjectPartProperties.RotationOffset); updatedProperties.Add(SceneObjectPartSyncProperties.RotationOffset);
if (Position != Vector3.Zero) if (Position != Vector3.Zero)
updatedProperties.Add(SceneObjectPartProperties.OffsetPosition); updatedProperties.Add(SceneObjectPartSyncProperties.OffsetPosition);
if (Scale != Vector3.Zero) if (Scale != Vector3.Zero)
updatedProperties.Add(SceneObjectPartProperties.Scale); updatedProperties.Add(SceneObjectPartSyncProperties.Scale);
part.ScheduleTerseUpdate(updatedProperties); part.ScheduleTerseUpdate(updatedProperties);
} }
part.Undoing = false; part.Undoing = false;
@ -139,13 +139,13 @@ namespace OpenSim.Region.Framework.Scenes
part.Resize(Scale); part.Resize(Scale);
//part.ParentGroup.ScheduleGroupForTerseUpdate(); //part.ParentGroup.ScheduleGroupForTerseUpdate();
//SYMMETRIC SYNC //SYMMETRIC SYNC
List<SceneObjectPartProperties> updatedProperties = new List<SceneObjectPartProperties>(); List<SceneObjectPartSyncProperties> updatedProperties = new List<SceneObjectPartSyncProperties>();
if (Rotation != Quaternion.Identity) if (Rotation != Quaternion.Identity)
updatedProperties.Add(SceneObjectPartProperties.RotationOffset); updatedProperties.Add(SceneObjectPartSyncProperties.RotationOffset);
if (Position != Vector3.Zero) if (Position != Vector3.Zero)
updatedProperties.Add(SceneObjectPartProperties.Position); updatedProperties.Add(SceneObjectPartSyncProperties.Position);
if (Scale != Vector3.Zero) if (Scale != Vector3.Zero)
updatedProperties.Add(SceneObjectPartProperties.Scale); updatedProperties.Add(SceneObjectPartSyncProperties.Scale);
part.ParentGroup.ScheduleGroupForTerseUpdate(updatedProperties); part.ParentGroup.ScheduleGroupForTerseUpdate(updatedProperties);
} }
else else
@ -158,13 +158,13 @@ namespace OpenSim.Region.Framework.Scenes
part.Resize(Scale); part.Resize(Scale);
//part.ScheduleTerseUpdate(); //part.ScheduleTerseUpdate();
//SYMMETRIC SYNC //SYMMETRIC SYNC
List<SceneObjectPartProperties> updatedProperties = new List<SceneObjectPartProperties>(); List<SceneObjectPartSyncProperties> updatedProperties = new List<SceneObjectPartSyncProperties>();
if (Rotation != Quaternion.Identity) if (Rotation != Quaternion.Identity)
updatedProperties.Add(SceneObjectPartProperties.RotationOffset); updatedProperties.Add(SceneObjectPartSyncProperties.RotationOffset);
if (Position != Vector3.Zero) if (Position != Vector3.Zero)
updatedProperties.Add(SceneObjectPartProperties.Position); updatedProperties.Add(SceneObjectPartSyncProperties.Position);
if (Scale != Vector3.Zero) if (Scale != Vector3.Zero)
updatedProperties.Add(SceneObjectPartProperties.Scale); updatedProperties.Add(SceneObjectPartSyncProperties.Scale);
part.ScheduleTerseUpdate(updatedProperties); part.ScheduleTerseUpdate(updatedProperties);
} }

View File

@ -291,7 +291,7 @@ namespace OpenSim.Region.OptionalModules.ContentManagement
((SceneObjectGroup)ent).AttachToBackup(); ((SceneObjectGroup)ent).AttachToBackup();
((SceneObjectGroup)ent).HasGroupChanged = true; // If not true, then attaching to backup does nothing because no change is detected. ((SceneObjectGroup)ent).HasGroupChanged = true; // If not true, then attaching to backup does nothing because no change is detected.
//((SceneObjectGroup)ent).ScheduleGroupForFullUpdate(); //((SceneObjectGroup)ent).ScheduleGroupForFullUpdate();
((SceneObjectGroup)ent).ScheduleGroupForFullUpdate(new List<SceneObjectPartProperties>(){SceneObjectPartProperties.FullUpdate}); //don't know what properties to taint, so just taint all ((SceneObjectGroup)ent).ScheduleGroupForFullUpdate(new List<SceneObjectPartSyncProperties>(){SceneObjectPartSyncProperties.FullUpdate}); //don't know what properties to taint, so just taint all
} }
catch(Exception e) catch(Exception e)
{ {

View File

@ -641,7 +641,7 @@ namespace OpenSim.Region.OptionalModules.World.TreePopulator
s_tree.Scale += copse.m_rate; s_tree.Scale += copse.m_rate;
s_tree.ParentGroup.HasGroupChanged = true; s_tree.ParentGroup.HasGroupChanged = true;
//s_tree.ScheduleFullUpdate(); //s_tree.ScheduleFullUpdate();
s_tree.ScheduleFullUpdate(new List<SceneObjectPartProperties>(){SceneObjectPartProperties.Scale}); s_tree.ScheduleFullUpdate(new List<SceneObjectPartSyncProperties>(){SceneObjectPartSyncProperties.Scale});
} }
} }
else else

View File

@ -1390,7 +1390,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
part.SendFullUpdateToAllClients(); part.SendFullUpdateToAllClients();
//DSG SYNC //DSG SYNC
part.ScheduleFullUpdate(new List<SceneObjectPartProperties>() { SceneObjectPartProperties.Scale }); part.ScheduleFullUpdate(new List<SceneObjectPartSyncProperties>() { SceneObjectPartSyncProperties.Scale });
} }
public LSL_Vector llGetScale() public LSL_Vector llGetScale()
@ -1405,7 +1405,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
m_host.ClickAction = (byte)action; m_host.ClickAction = (byte)action;
if (m_host.ParentGroup != null) m_host.ParentGroup.HasGroupChanged = true; if (m_host.ParentGroup != null) m_host.ParentGroup.HasGroupChanged = true;
//m_host.ScheduleFullUpdate(); //m_host.ScheduleFullUpdate();
m_host.ScheduleFullUpdate(new List<SceneObjectPartProperties>(){SceneObjectPartProperties.ClickAction}); m_host.ScheduleFullUpdate(new List<SceneObjectPartSyncProperties>(){SceneObjectPartSyncProperties.ClickAction});
return; return;
} }
@ -1658,7 +1658,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
part.ParentGroup.HasGroupChanged = true; part.ParentGroup.HasGroupChanged = true;
//part.ScheduleFullUpdate(); //part.ScheduleFullUpdate();
part.ScheduleFullUpdate(new List<SceneObjectPartProperties>(){SceneObjectPartProperties.Shape}); part.ScheduleFullUpdate(new List<SceneObjectPartSyncProperties>(){SceneObjectPartSyncProperties.Shape});
} }
/// <summary> /// <summary>
@ -1694,7 +1694,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
part.ParentGroup.HasGroupChanged = true; part.ParentGroup.HasGroupChanged = true;
//part.ScheduleFullUpdate(); //part.ScheduleFullUpdate();
part.ScheduleFullUpdate(new List<SceneObjectPartProperties>(){SceneObjectPartProperties.Shape}); part.ScheduleFullUpdate(new List<SceneObjectPartSyncProperties>(){SceneObjectPartSyncProperties.Shape});
} }
public LSL_Vector llGetColor(int face) public LSL_Vector llGetColor(int face)
@ -1970,7 +1970,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
SceneObjectGroup parent = part.ParentGroup; SceneObjectGroup parent = part.ParentGroup;
parent.HasGroupChanged = true; parent.HasGroupChanged = true;
//parent.ScheduleGroupForTerseUpdate(); //parent.ScheduleGroupForTerseUpdate();
parent.ScheduleGroupForTerseUpdate(new List<SceneObjectPartProperties>(){SceneObjectPartProperties.OffsetPosition}); parent.ScheduleGroupForTerseUpdate(new List<SceneObjectPartSyncProperties>(){SceneObjectPartSyncProperties.OffsetPosition});
} }
} }
@ -2317,7 +2317,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
m_host.SoundRadius = 20; // Magic number, 20 seems reasonable. Make configurable? m_host.SoundRadius = 20; // Magic number, 20 seems reasonable. Make configurable?
//m_host.ScheduleFullUpdate(); //m_host.ScheduleFullUpdate();
m_host.ScheduleFullUpdate(new List<SceneObjectPartProperties>(){SceneObjectPartProperties.Sound}); m_host.ScheduleFullUpdate(new List<SceneObjectPartSyncProperties>(){SceneObjectPartSyncProperties.Sound});
m_host.SendFullUpdateToAllClients(); m_host.SendFullUpdateToAllClients();
} }
@ -2338,7 +2338,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
prim.SoundRadius = 20; // Magic number, 20 seems reasonable. Make configurable? prim.SoundRadius = 20; // Magic number, 20 seems reasonable. Make configurable?
//prim.ScheduleFullUpdate(); //prim.ScheduleFullUpdate();
m_host.ScheduleFullUpdate(new List<SceneObjectPartProperties>(){SceneObjectPartProperties.Sound}); m_host.ScheduleFullUpdate(new List<SceneObjectPartSyncProperties>(){SceneObjectPartSyncProperties.Sound});
prim.SendFullUpdateToAllClients(); prim.SendFullUpdateToAllClients();
} }
} }
@ -2351,7 +2351,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
m_host.SoundRadius = 20; // Magic number, 20 seems reasonable. Make configurable? m_host.SoundRadius = 20; // Magic number, 20 seems reasonable. Make configurable?
//m_host.ScheduleFullUpdate(); //m_host.ScheduleFullUpdate();
m_host.ScheduleFullUpdate(new List<SceneObjectPartProperties>(){SceneObjectPartProperties.Sound}); m_host.ScheduleFullUpdate(new List<SceneObjectPartSyncProperties>(){SceneObjectPartSyncProperties.Sound});
m_host.SendFullUpdateToAllClients(); m_host.SendFullUpdateToAllClients();
} }
@ -2394,7 +2394,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
part.SoundFlags = 0; part.SoundFlags = 0;
part.SoundRadius = 0; part.SoundRadius = 0;
//part.ScheduleFullUpdate(); //part.ScheduleFullUpdate();
m_host.ScheduleFullUpdate(new List<SceneObjectPartProperties>(){SceneObjectPartProperties.Sound}); m_host.ScheduleFullUpdate(new List<SceneObjectPartSyncProperties>(){SceneObjectPartSyncProperties.Sound});
part.SendFullUpdateToAllClients(); part.SendFullUpdateToAllClients();
} }
m_host.ParentGroup.LoopSoundMasterPrim = null; m_host.ParentGroup.LoopSoundMasterPrim = null;
@ -2407,7 +2407,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
m_host.SoundFlags = 0; m_host.SoundFlags = 0;
m_host.SoundRadius = 0; m_host.SoundRadius = 0;
//m_host.ScheduleFullUpdate(); //m_host.ScheduleFullUpdate();
m_host.ScheduleFullUpdate(new List<SceneObjectPartProperties>(){SceneObjectPartProperties.Sound}); m_host.ScheduleFullUpdate(new List<SceneObjectPartSyncProperties>(){SceneObjectPartSyncProperties.Sound});
m_host.SendFullUpdateToAllClients(); m_host.SendFullUpdateToAllClients();
} }
} }
@ -2418,7 +2418,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
m_host.SoundFlags = 0; m_host.SoundFlags = 0;
m_host.SoundRadius = 0; m_host.SoundRadius = 0;
//m_host.ScheduleFullUpdate(); //m_host.ScheduleFullUpdate();
m_host.ScheduleFullUpdate(new List<SceneObjectPartProperties>(){SceneObjectPartProperties.Sound}); m_host.ScheduleFullUpdate(new List<SceneObjectPartSyncProperties>(){SceneObjectPartSyncProperties.Sound});
m_host.SendFullUpdateToAllClients(); m_host.SendFullUpdateToAllClients();
} }
} }
@ -3329,7 +3329,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
m_host.AddScriptLPS(1); m_host.AddScriptLPS(1);
m_host.AngularVelocity = new Vector3((float)(axis.x * spinrate), (float)(axis.y * spinrate), (float)(axis.z * spinrate)); m_host.AngularVelocity = new Vector3((float)(axis.x * spinrate), (float)(axis.y * spinrate), (float)(axis.z * spinrate));
//m_host.ScheduleTerseUpdate(); //m_host.ScheduleTerseUpdate();
m_host.ScheduleFullUpdate(new List<SceneObjectPartProperties>(){SceneObjectPartProperties.AngularVelocity}); m_host.ScheduleFullUpdate(new List<SceneObjectPartSyncProperties>(){SceneObjectPartSyncProperties.AngularVelocity});
m_host.SendTerseUpdateToAllClients(); m_host.SendTerseUpdateToAllClients();
m_host.ParentGroup.HasGroupChanged = true; m_host.ParentGroup.HasGroupChanged = true;
} }
@ -3624,7 +3624,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
//parentGroup.SyncInfoUpdate(); //parentGroup.SyncInfoUpdate();
World.RegionSyncModule.SendLinkObject(parentPrim, parentPrim.RootPart, children); World.RegionSyncModule.SendLinkObject(parentPrim, parentPrim.RootPart, children);
} }
m_host.ScheduleFullUpdate(new List<SceneObjectPartProperties>(){SceneObjectPartProperties.None}); //SendLinkObject above will synchronize the link operation, no need to taint updates here m_host.ScheduleFullUpdate(new List<SceneObjectPartSyncProperties>(){SceneObjectPartSyncProperties.None}); //SendLinkObject above will synchronize the link operation, no need to taint updates here
//end of SYMMETRIC SYNC //end of SYMMETRIC SYNC
if (client != null) if (client != null)
@ -3706,7 +3706,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
{ {
World.RegionSyncModule.SendDeLinkObject(parts, beforeDelinkGroups, afterDelinkGroups); World.RegionSyncModule.SendDeLinkObject(parts, beforeDelinkGroups, afterDelinkGroups);
} }
parentPrim.ScheduleGroupForFullUpdate(new List<SceneObjectPartProperties>(){SceneObjectPartProperties.None}); parentPrim.ScheduleGroupForFullUpdate(new List<SceneObjectPartSyncProperties>(){SceneObjectPartSyncProperties.None});
//end of SYMMETRIC SYNC //end of SYMMETRIC SYNC
parentPrim.TriggerScriptChangedEvent(Changed.LINK); parentPrim.TriggerScriptChangedEvent(Changed.LINK);
@ -3726,7 +3726,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
{ {
World.RegionSyncModule.SendLinkObject(newRoot.ParentGroup, newRoot, new List<SceneObjectPart>(newRoot.ParentGroup.Parts)); World.RegionSyncModule.SendLinkObject(newRoot.ParentGroup, newRoot, new List<SceneObjectPart>(newRoot.ParentGroup.Parts));
} }
newRoot.ParentGroup.ScheduleGroupForFullUpdate(new List<SceneObjectPartProperties>(){SceneObjectPartProperties.None}); newRoot.ParentGroup.ScheduleGroupForFullUpdate(new List<SceneObjectPartSyncProperties>(){SceneObjectPartSyncProperties.None});
//end of SYMMETRIC SYNC //end of SYMMETRIC SYNC
} }
@ -3788,7 +3788,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
afterDelinkGroups.Add(rootPart.ParentGroup); afterDelinkGroups.Add(rootPart.ParentGroup);
World.RegionSyncModule.SendDeLinkObject(parts, beforeDelinkGroups, afterDelinkGroups); World.RegionSyncModule.SendDeLinkObject(parts, beforeDelinkGroups, afterDelinkGroups);
} }
parentPrim.ScheduleGroupForFullUpdate(new List<SceneObjectPartProperties>(){SceneObjectPartProperties.None}); parentPrim.ScheduleGroupForFullUpdate(new List<SceneObjectPartSyncProperties>(){SceneObjectPartSyncProperties.None});
//end of SYMMETRIC SYNC //end of SYMMETRIC SYNC
} }
@ -4028,7 +4028,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
m_host.SetText(text, av3, Util.Clip((float)alpha, 0.0f, 1.0f)); m_host.SetText(text, av3, Util.Clip((float)alpha, 0.0f, 1.0f));
m_host.ParentGroup.HasGroupChanged = true; m_host.ParentGroup.HasGroupChanged = true;
//m_host.ParentGroup.ScheduleGroupForFullUpdate(); //m_host.ParentGroup.ScheduleGroupForFullUpdate();
m_host.ParentGroup.ScheduleGroupForFullUpdate(new List<SceneObjectPartProperties>(){SceneObjectPartProperties.Text}); m_host.ParentGroup.ScheduleGroupForFullUpdate(new List<SceneObjectPartSyncProperties>(){SceneObjectPartSyncProperties.Text});
} }
public LSL_Float llWater(LSL_Vector offset) public LSL_Float llWater(LSL_Vector offset)
@ -5682,7 +5682,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
part.ParentGroup.HasGroupChanged = true; part.ParentGroup.HasGroupChanged = true;
//DSG SYNC //DSG SYNC
part.ScheduleFullUpdate(new List<SceneObjectPartProperties>() { SceneObjectPartProperties.TextureAnimation }); part.ScheduleFullUpdate(new List<SceneObjectPartSyncProperties>() { SceneObjectPartSyncProperties.TextureAnimation });
} }
public void llTriggerSoundLimited(string sound, double volume, LSL_Vector top_north_east, public void llTriggerSoundLimited(string sound, double volume, LSL_Vector top_north_east,
@ -6197,7 +6197,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
part.SendFullUpdateToAllClients(); part.SendFullUpdateToAllClients();
//DSG SYNC //DSG SYNC
part.ScheduleFullUpdate(new List<SceneObjectPartProperties>() { SceneObjectPartProperties.ParticleSystem }); part.ScheduleFullUpdate(new List<SceneObjectPartSyncProperties>() { SceneObjectPartSyncProperties.ParticleSystem });
} }
public void llGroundRepel(double height, int water, double tau) public void llGroundRepel(double height, int water, double tau)

View File

@ -2346,7 +2346,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
obj.ParentGroup.HasGroupChanged = true; obj.ParentGroup.HasGroupChanged = true;
//obj.ScheduleFullUpdate(); //obj.ScheduleFullUpdate();
obj.ScheduleFullUpdate(new List<SceneObjectPartProperties>(){SceneObjectPartProperties.Shape}); obj.ScheduleFullUpdate(new List<SceneObjectPartSyncProperties>(){SceneObjectPartSyncProperties.Shape});
} }