Merge remote-tracking branch 'upstream/master' into feature/dotnet6

This commit is contained in:
Mike Dickson 2024-01-06 23:14:25 -05:00
commit 253700ca33
10 changed files with 29 additions and 96 deletions

View file

@ -2645,7 +2645,6 @@ namespace OpenSim.Region.Framework.Scenes
{
// false to be applied as a impulse
pa.AddForce(impulse, false);
m_scene.PhysicsScene.AddPhysicsActorTaint(pa);
}
}
}
@ -2659,7 +2658,6 @@ namespace OpenSim.Region.Framework.Scenes
{
// false to be applied as a impulse
pa.AddAngularForce(impulse, false);
m_scene.PhysicsScene.AddPhysicsActorTaint(pa);
}
}
}
@ -3287,7 +3285,6 @@ namespace OpenSim.Region.Framework.Scenes
if (linkPart.PhysActor is not null && m_rootPart.PhysActor is not null && m_rootPart.PhysActor.IsPhysical)
{
linkPart.PhysActor.link(m_rootPart.PhysActor);
this.Scene.PhysicsScene.AddPhysicsActorTaint(linkPart.PhysActor);
}
linkPart.LinkNum = linkNum++;
@ -3316,7 +3313,6 @@ namespace OpenSim.Region.Framework.Scenes
if (part.PhysActor is not null && m_rootPart.PhysActor is not null && m_rootPart.PhysActor.IsPhysical)
{
part.PhysActor.link(m_rootPart.PhysActor);
this.Scene.PhysicsScene.AddPhysicsActorTaint(part.PhysActor);
}
}
part.ClearUndoState();
@ -3704,7 +3700,6 @@ namespace OpenSim.Region.Framework.Scenes
Vector3 grabforce = pos - AbsolutePosition;
grabforce *= pa.Mass * 0.1f;
pa.AddForce(grabforce, false);
m_scene.PhysicsScene.AddPhysicsActorTaint(pa);
}
else
{
@ -3826,7 +3821,6 @@ namespace OpenSim.Region.Framework.Scenes
else
spinforce = spinforce * pa.Mass * -0.1f; // 0.1 is an arbitrary torque scaling
pa.AddAngularForce(spinforce,true);
m_scene.PhysicsScene.AddPhysicsActorTaint(pa);
}
}
else
@ -4057,15 +4051,7 @@ namespace OpenSim.Region.Framework.Scenes
public void UpdateShape(ObjectShapePacket.ObjectDataBlock shapeBlock, uint localID)
{
SceneObjectPart part = GetPart(localID);
if (part is not null)
{
part.UpdateShape(shapeBlock);
PhysicsActor pa = m_rootPart.PhysActor;
if (pa is not null)
m_scene.PhysicsScene.AddPhysicsActorTaint(pa);
}
part?.UpdateShape(shapeBlock);
InvalidBoundsRadius();
}
@ -4529,7 +4515,6 @@ namespace OpenSim.Region.Framework.Scenes
if (actor is not null)
{
actor.Orientation = m_rootPart.RotationOffset;
m_scene.PhysicsScene.AddPhysicsActorTaint(actor);
}
if (IsAttachment)
@ -4616,7 +4601,6 @@ namespace OpenSim.Region.Framework.Scenes
if (pa is not null)
{
pa.Orientation = m_rootPart.RotationOffset;
m_scene.PhysicsScene.AddPhysicsActorTaint(pa);
}
SceneObjectPart[] parts = m_parts.GetArray();

View file

@ -806,10 +806,6 @@ namespace OpenSim.Region.Framework.Scenes
actor.Position = GetWorldPosition();
actor.Orientation = GetWorldRotation();
}
// Tell the physics engines that this prim changed.
if (ParentGroup != null && ParentGroup.Scene != null && ParentGroup.Scene.PhysicsScene != null)
ParentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(actor);
}
catch (Exception e)
{
@ -842,10 +838,6 @@ namespace OpenSim.Region.Framework.Scenes
{
actor.Position = GetWorldPosition();
actor.Orientation = GetWorldRotation();
// Tell the physics engines that this prim changed.
if (ParentGroup.Scene != null && ParentGroup.Scene.PhysicsScene != null)
ParentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(actor);
}
if (!m_parentGroup.m_dupeInProgress)
@ -928,10 +920,6 @@ namespace OpenSim.Region.Framework.Scenes
actor.Orientation = resultingrotation;
//m_log.Info("[PART]: RO2:" + actor.Orientation.ToString());
}
if (ParentGroup != null && ParentGroup.Scene != null && ParentGroup.Scene.PhysicsScene != null)
ParentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(actor);
//}
}
catch (Exception ex)
{
@ -966,14 +954,8 @@ namespace OpenSim.Region.Framework.Scenes
m_velocity = value;
PhysicsActor actor = PhysActor;
if (actor != null)
{
if (actor.IsPhysical)
{
if (actor is not null && actor.IsPhysical)
actor.Velocity = m_velocity;
ParentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(actor);
}
}
}
}
@ -1120,21 +1102,20 @@ namespace OpenSim.Region.Framework.Scenes
get { return m_shape.Scale; }
set
{
if (m_shape != null)
if (m_shape is not null)
{
Vector3 oldscale = m_shape.Scale;
m_shape.Scale = value;
if (ParentGroup != null && ((value - oldscale).LengthSquared() >1.0f))
if (ParentGroup is not null && ((value - oldscale).LengthSquared() >1.0f))
ParentGroup.InvalidBoundsRadius();
PhysicsActor actor = PhysActor;
if (actor != null)
if (actor is not null)
{
if (ParentGroup.Scene != null)
if (ParentGroup.Scene is not null)
{
if (ParentGroup.Scene.PhysicsScene != null)
{
actor.Size = m_shape.Scale;
ParentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(actor);
}
}
}
@ -2319,8 +2300,6 @@ namespace OpenSim.Region.Framework.Scenes
else
pa.SetVolumeDetect(0);
}
ParentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(pa);
}
}
@ -3964,11 +3943,9 @@ namespace OpenSim.Region.Framework.Scenes
public void SetPhysicsAxisRotation()
{
PhysicsActor pa = PhysActor;
if (pa != null)
if (pa is not null)
{
pa.LockAngularMotion(RotationAxisLocks);
ParentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(pa);
}
}
@ -4870,11 +4847,6 @@ namespace OpenSim.Region.Framework.Scenes
}
}
// if (Shape.SculptEntry)
// CheckSculptAndLoad();
// else
ParentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(pa);
if (!building)
pa.Building = false;
}
@ -4952,12 +4924,8 @@ namespace OpenSim.Region.Framework.Scenes
m_shape.PathTwistBegin = shapeBlock.PathTwistBegin;
PhysicsActor pa = PhysActor;
if (pa != null)
{
if (pa is not null)
pa.Shape = m_shape;
ParentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(pa);
}
// This is what makes vehicle trailers work
// A script in a child prim re-issues
@ -5013,7 +4981,6 @@ namespace OpenSim.Region.Framework.Scenes
if (updatePossiblyNeeded && PhysActor != null)
{
PhysActor.Shape = m_shape;
ParentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(PhysActor);
}
if (updatePossiblyNeeded)
{

View file

@ -151,10 +151,6 @@ namespace OpenSim.Region.PhysicsModule.BasicPhysics
_actors.Remove(act);
}
public override void AddPhysicsActorTaint(PhysicsActor prim)
{
}
public override float Simulate(float timeStep)
{
// Console.WriteLine("Simulating");

View file

@ -621,11 +621,6 @@ namespace OpenSim.Region.PhysicsModule.BulletS
return prim;
}
// This is a call from the simulator saying that some physical property has been updated.
// The BulletSim driver senses the changing of relevant properties so this taint
// information call is not needed.
public override void AddPhysicsActorTaint(PhysicsActor prim) { }
#endregion // Prim and Avatar addition and removal
#region Simulation

View file

@ -182,10 +182,6 @@ namespace OpenSim.Region.PhysicsModule.POS
return false;
}
public override void AddPhysicsActorTaint(PhysicsActor prim)
{
}
public override float Simulate(float timeStep)
{
float fps = 0;

View file

@ -74,10 +74,6 @@ namespace OpenSim.Region.PhysicsModules.SharedBase
return PhysicsActor.Null;
}
public override void AddPhysicsActorTaint(PhysicsActor prim)
{
}
public override float Simulate(float timeStep)
{
m_workIndicator = (m_workIndicator + 1) % 10;

View file

@ -220,7 +220,8 @@ namespace OpenSim.Region.PhysicsModules.SharedBase
get { return 1.0f; }
}
public abstract void AddPhysicsActorTaint(PhysicsActor prim);
//legacy for any modules that may still call it
public virtual void AddPhysicsActorTaint(PhysicsActor prim) { }
public virtual void ProcessPreSimulation() { }

View file

@ -857,7 +857,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde
Collision_accounting_events(p1, p2, ref maxDepthContact);
}
}
private void CharPrimNearCallback(IntPtr space, IntPtr g1, IntPtr g2)
{
// no lock here! It's invoked from within Simulate(), which is thread-locked
@ -965,12 +965,12 @@ namespace OpenSim.Region.PhysicsModule.ubOde
{
ref UBOdeNative.ContactGeom curctc = ref m_contacts[i];
useAltcontact = false;
if ((((OdeCharacter)p1).Collide(g2, false, ref curctc, ref altWorkContact, ref useAltcontact, ref FeetCollision)))
{
if(p2.rootVelocity.LengthSquared() > 0.0f)
p2.CollidingObj = true;
Joint = useAltcontact ?
CreateContacJoint(ref altWorkContact, false) :
CreateContacJoint(ref curctc, false);
@ -1144,13 +1144,13 @@ namespace OpenSim.Region.PhysicsModule.ubOde
OdeCharacter chr2 = charsSpan[j];
if (chr2.Colliderfilter < -1)
continue;
if(Mx < chr2._AABB2D.minx ||
mx > chr2._AABB2D.maxx ||
My < chr2._AABB2D.miny ||
my > chr2._AABB2D.maxy)
continue;
CollideCharChar(chr, chr2);
}
}
@ -1549,16 +1549,6 @@ namespace OpenSim.Region.PhysicsModule.ubOde
ChangesQueue.Enqueue(item);
}
/// <summary>
/// Called after our prim properties are set Scale, position etc.
/// We use this event queue like method to keep changes to the physical scene occuring in the threadlocked mutex
/// This assures us that we have no race conditions
/// </summary>
/// <param name="prim"></param>
public override void AddPhysicsActorTaint(PhysicsActor prim)
{
}
// does all pending changes generated during region load process
public override void ProcessPreSimulation()
{
@ -1791,18 +1781,18 @@ namespace OpenSim.Region.PhysicsModule.ubOde
}
*/
//tmpTime = Util.GetTimeStampMS();
lock (_activegroups)
lock (_activegroups)
{
{
foreach (OdePrim actor in _activegroups)
{
foreach (OdePrim actor in _activegroups)
if (actor.IsPhysical)
{
if (actor.IsPhysical)
{
actor.UpdatePositionAndVelocity(framecount);
}
actor.UpdatePositionAndVelocity(framecount);
}
}
}
}
//updatesTime += Util.GetTimeStampMS() - tmpTime;
}

View file

@ -656,6 +656,10 @@
; a RSS page for grid status
;GridStatusRSS = ${Const|BaseURL}:${Const|PublicPort}/GridStatusRSS
; optional web page for profiles
;[AGENT_NAME] will be converted to Firstname.LastName by viewers
; web_profile_url = http://webprofilesurl:ItsPort?name=[AGENT_NAME]
[GatekeeperService]
LocalServiceModule = "OpenSim.Services.HypergridService.dll:GatekeeperService"
;; for the service

View file

@ -572,6 +572,10 @@
; a RSS page for grid status
;GridStatusRSS = ${Const|BaseURL}:${Const|PublicPort}/GridStatusRSS
; optional web page for profiles
;[AGENT_NAME] will be converted to Firstname.LastName by viewers
; web_profile_url = http://webprofilesurl:ItsPort?name=[AGENT_NAME]
[Messaging]
; OfflineIM
OfflineIMService = "OpenSim.Addons.OfflineIM.dll:OfflineIMService"