Merge branch 'master' of ssh://opensimulator.org/var/git/opensim
commit
ef5be42c86
|
@ -125,11 +125,10 @@ namespace OpenSim.Framework
|
|||
Animation other = obj as Animation;
|
||||
if (other != null)
|
||||
{
|
||||
return (other.AnimID == this.AnimID
|
||||
return (other.AnimID.Equals(this.AnimID)
|
||||
&& other.SequenceNum == this.SequenceNum
|
||||
&& other.ObjectID == this.ObjectID);
|
||||
&& other.ObjectID.Equals(this.ObjectID) );
|
||||
}
|
||||
|
||||
return base.Equals(obj);
|
||||
}
|
||||
|
||||
|
|
|
@ -312,18 +312,22 @@ namespace OpenSim.Region.Framework.Scenes.Animation
|
|||
buff.Append("dflt=");
|
||||
buff.Append(DefaultAnimation.ToString());
|
||||
buff.Append(",iDflt=");
|
||||
if (DefaultAnimation == ImplicitDefaultAnimation)
|
||||
if (DefaultAnimation.Equals(ImplicitDefaultAnimation))
|
||||
buff.Append("same");
|
||||
else
|
||||
buff.Append(ImplicitDefaultAnimation.ToString());
|
||||
if (m_animations.Count > 0)
|
||||
{
|
||||
buff.Append(",anims=");
|
||||
bool firstTime = true;
|
||||
foreach (OpenSim.Framework.Animation anim in m_animations)
|
||||
{
|
||||
if (!firstTime)
|
||||
buff.Append(",");
|
||||
buff.Append("<");
|
||||
buff.Append(anim.ToString());
|
||||
buff.Append(">,");
|
||||
buff.Append(">");
|
||||
firstTime = false;
|
||||
}
|
||||
}
|
||||
return buff.ToString();
|
||||
|
|
|
@ -94,6 +94,7 @@ namespace OpenSim.Region.Framework.Scenes.Animation
|
|||
if (m_animations.Add(animID, m_scenePresence.ControllingClient.NextAnimationSequenceNumber, objectID))
|
||||
{
|
||||
SendAnimPack();
|
||||
m_scenePresence.TriggerScenePresenceUpdated();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -135,6 +136,7 @@ namespace OpenSim.Region.Framework.Scenes.Animation
|
|||
if (m_animations.Remove(animID, allowNoDefault))
|
||||
{
|
||||
SendAnimPack();
|
||||
m_scenePresence.TriggerScenePresenceUpdated();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -77,7 +77,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
// m_log.DebugFormat("[SCENE PRESENCE]: Destructor called on {0}", Name);
|
||||
// }
|
||||
|
||||
private void TriggerScenePresenceUpdated()
|
||||
public void TriggerScenePresenceUpdated()
|
||||
{
|
||||
if (m_scene != null)
|
||||
m_scene.EventManager.TriggerScenePresenceUpdated(this);
|
||||
|
|
|
@ -168,10 +168,10 @@ public abstract class BSShape
|
|||
if (prim.PrimAssetState == BSPhysObject.PrimAssetCondition.Fetched)
|
||||
{
|
||||
prim.PrimAssetState = BSPhysObject.PrimAssetCondition.FailedMeshing;
|
||||
physicsScene.Logger.WarnFormat("{0} Fetched asset would not mesh. {1}, texture={2}",
|
||||
LogHeader, prim.PhysObjectName, prim.BaseShape.SculptTexture);
|
||||
physicsScene.DetailLog("{0},BSShape.VerifyMeshCreated,setFailed,objNam={1},tex={2}",
|
||||
prim.LocalID, prim.PhysObjectName, prim.BaseShape.SculptTexture);
|
||||
physicsScene.Logger.WarnFormat("{0} Fetched asset would not mesh. prim={1}, texture={2}",
|
||||
LogHeader, UsefulPrimInfo(physicsScene, prim), prim.BaseShape.SculptTexture);
|
||||
physicsScene.DetailLog("{0},BSShape.VerifyMeshCreated,setFailed,prim={1},tex={2}",
|
||||
prim.LocalID, UsefulPrimInfo(physicsScene, prim), prim.BaseShape.SculptTexture);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -238,17 +238,17 @@ public abstract class BSShape
|
|||
{
|
||||
if (prim.PrimAssetState == BSPhysObject.PrimAssetCondition.FailedAssetFetch)
|
||||
{
|
||||
physicsScene.Logger.WarnFormat("{0} Mesh failed to fetch asset. obj={1}, texture={2}",
|
||||
LogHeader, prim.PhysObjectName, prim.BaseShape.SculptTexture);
|
||||
physicsScene.DetailLog("{0},BSShape.VerifyMeshCreated,wasFailed,objNam={1},tex={2}",
|
||||
prim.LocalID, prim.PhysObjectName, prim.BaseShape.SculptTexture);
|
||||
physicsScene.Logger.WarnFormat("{0} Mesh failed to fetch asset. prim={1}, texture={2}",
|
||||
LogHeader, UsefulPrimInfo(physicsScene, prim), prim.BaseShape.SculptTexture);
|
||||
physicsScene.DetailLog("{0},BSShape.VerifyMeshCreated,wasFailed,prim={1},tex={2}",
|
||||
prim.LocalID, UsefulPrimInfo(physicsScene, prim), prim.BaseShape.SculptTexture);
|
||||
}
|
||||
if (prim.PrimAssetState == BSPhysObject.PrimAssetCondition.FailedMeshing)
|
||||
{
|
||||
physicsScene.Logger.WarnFormat("{0} Mesh asset would not mesh. obj={1}, texture={2}",
|
||||
LogHeader, prim.PhysObjectName, prim.BaseShape.SculptTexture);
|
||||
physicsScene.DetailLog("{0},BSShape.VerifyMeshCreated,wasFailedMeshing,objNam={1},tex={2}",
|
||||
prim.LocalID, prim.PhysObjectName, prim.BaseShape.SculptTexture);
|
||||
physicsScene.Logger.WarnFormat("{0} Mesh asset would not mesh. prim={1}, texture={2}",
|
||||
LogHeader, UsefulPrimInfo(physicsScene, prim), prim.BaseShape.SculptTexture);
|
||||
physicsScene.DetailLog("{0},BSShape.VerifyMeshCreated,wasFailedMeshing,prim={1},tex={2}",
|
||||
prim.LocalID, UsefulPrimInfo(physicsScene, prim), prim.BaseShape.SculptTexture);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -260,6 +260,19 @@ public abstract class BSShape
|
|||
return fillShape.physShapeInfo;
|
||||
}
|
||||
|
||||
public static String UsefulPrimInfo(BSScene pScene, BSPhysObject prim)
|
||||
{
|
||||
StringBuilder buff = new StringBuilder(prim.PhysObjectName);
|
||||
buff.Append("/pos=");
|
||||
buff.Append(prim.RawPosition.ToString());
|
||||
if (pScene != null)
|
||||
{
|
||||
buff.Append("/rgn=");
|
||||
buff.Append(pScene.Name);
|
||||
}
|
||||
return buff.ToString();
|
||||
}
|
||||
|
||||
#endregion // Common shape routines
|
||||
}
|
||||
|
||||
|
@ -528,8 +541,7 @@ public class BSShapeMesh : BSShape
|
|||
{
|
||||
// Force the asset condition to 'failed' so we won't try to keep fetching and processing this mesh.
|
||||
prim.PrimAssetState = BSPhysObject.PrimAssetCondition.FailedMeshing;
|
||||
physicsScene.Logger.DebugFormat("{0} All mesh triangles degenerate. Prim {1} at {2} in {3}",
|
||||
LogHeader, prim.PhysObjectName, prim.RawPosition, physicsScene.Name);
|
||||
physicsScene.Logger.DebugFormat("{0} All mesh triangles degenerate. Prim={1}", LogHeader, UsefulPrimInfo(physicsScene, prim) );
|
||||
physicsScene.DetailLog("{0},BSShapeMesh.CreatePhysicalMesh,allDegenerate,key={1}", prim.LocalID, newMeshKey);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
CURRENT PROBLEMS TO FIX AND/OR LOOK AT
|
||||
=================================================
|
||||
Vehicle buoyancy. Computed correctly? Possibly creating very large effective mass.
|
||||
Interaction of llSetBuoyancy and vehicle buoyancy. Should be additive?
|
||||
Negative buoyancy computed correctly
|
||||
Computation of mesh mass. How done? How should it be done?
|
||||
Script changing rotation of child prim while vehicle moving (eg turning wheel) causes
|
||||
the wheel to appear to jump back. Looks like sending position from previous update.
|
||||
Enable vehicle border crossings (at least as poorly as ODE)
|
||||
|
|
Loading…
Reference in New Issue