aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Region/Physics/UbitOdePlugin/ODECharacter.cs3
-rw-r--r--OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs55
2 files changed, 26 insertions, 32 deletions
diff --git a/OpenSim/Region/Physics/UbitOdePlugin/ODECharacter.cs b/OpenSim/Region/Physics/UbitOdePlugin/ODECharacter.cs
index 6fb54cb..093bc3c 100644
--- a/OpenSim/Region/Physics/UbitOdePlugin/ODECharacter.cs
+++ b/OpenSim/Region/Physics/UbitOdePlugin/ODECharacter.cs
@@ -1322,8 +1322,7 @@ namespace OpenSim.Region.Physics.OdePlugin
1322 m_iscollidingGround = false; 1322 m_iscollidingGround = false;
1323 m_iscollidingObj = false; 1323 m_iscollidingObj = false;
1324 1324
1325 CollisionEventsThisFrame = new CollisionEventUpdate(); 1325 CollisionEventsThisFrame.Clear();
1326 m_eventsubscription = 0;
1327 } 1326 }
1328 1327
1329 private void changeForce(Vector3 newForce) 1328 private void changeForce(Vector3 newForce)
diff --git a/OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs b/OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs
index d5968fc..286c7f0 100644
--- a/OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs
+++ b/OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs
@@ -1675,41 +1675,40 @@ namespace OpenSim.Region.Physics.OdePlugin
1675 /// <returns></returns> 1675 /// <returns></returns>
1676 public bool needsMeshing(PrimitiveBaseShape pbs) 1676 public bool needsMeshing(PrimitiveBaseShape pbs)
1677 { 1677 {
1678 // most of this is redundant now as the mesher will return null if it cant mesh a prim 1678 // check sculpts or meshs
1679 // but we still need to check for sculptie meshing being enabled so this is the most
1680 // convenient place to do it for now...
1681
1682 // //if (pbs.PathCurve == (byte)Primitive.PathCurve.Circle && pbs.ProfileCurve == (byte)Primitive.ProfileCurve.Circle && pbs.PathScaleY <= 0.75f)
1683 // //m_log.Debug("needsMeshing: " + " pathCurve: " + pbs.PathCurve.ToString() + " profileCurve: " + pbs.ProfileCurve.ToString() + " pathScaleY: " + Primitive.UnpackPathScale(pbs.PathScaleY).ToString());
1684 int iPropertiesNotSupportedDefault = 0;
1685
1686 if (pbs.SculptEntry) 1679 if (pbs.SculptEntry)
1687 { 1680 {
1688 if(!meshSculptedPrim) 1681 if (meshSculptedPrim)
1689 return false; 1682 return true;
1683
1684 if (pbs.SculptType == (byte)SculptType.Mesh) // always do meshs
1685 return true;
1686
1687 return false;
1690 } 1688 }
1691 1689
1690 if (forceSimplePrimMeshing)
1691 return true;
1692
1692 // if it's a standard box or sphere with no cuts, hollows, twist or top shear, return false since ODE can use an internal representation for the prim 1693 // if it's a standard box or sphere with no cuts, hollows, twist or top shear, return false since ODE can use an internal representation for the prim
1693 if (!forceSimplePrimMeshing && !pbs.SculptEntry) 1694
1694 { 1695 if ((pbs.ProfileShape == ProfileShape.Square && pbs.PathCurve == (byte)Extrusion.Straight)
1695 if ((pbs.ProfileShape == ProfileShape.Square && pbs.PathCurve == (byte)Extrusion.Straight)
1696 || (pbs.ProfileShape == ProfileShape.HalfCircle && pbs.PathCurve == (byte)Extrusion.Curve1 1696 || (pbs.ProfileShape == ProfileShape.HalfCircle && pbs.PathCurve == (byte)Extrusion.Curve1
1697 && pbs.Scale.X == pbs.Scale.Y && pbs.Scale.Y == pbs.Scale.Z)) 1697 && pbs.Scale.X == pbs.Scale.Y && pbs.Scale.Y == pbs.Scale.Z))
1698 { 1698 {
1699 1699
1700 if (pbs.ProfileBegin == 0 && pbs.ProfileEnd == 0 1700 if (pbs.ProfileBegin == 0 && pbs.ProfileEnd == 0
1701 && pbs.ProfileHollow == 0 1701 && pbs.ProfileHollow == 0
1702 && pbs.PathTwist == 0 && pbs.PathTwistBegin == 0 1702 && pbs.PathTwist == 0 && pbs.PathTwistBegin == 0
1703 && pbs.PathBegin == 0 && pbs.PathEnd == 0 1703 && pbs.PathBegin == 0 && pbs.PathEnd == 0
1704 && pbs.PathTaperX == 0 && pbs.PathTaperY == 0 1704 && pbs.PathTaperX == 0 && pbs.PathTaperY == 0
1705 && pbs.PathScaleX == 100 && pbs.PathScaleY == 100 1705 && pbs.PathScaleX == 100 && pbs.PathScaleY == 100
1706 && pbs.PathShearX == 0 && pbs.PathShearY == 0) 1706 && pbs.PathShearX == 0 && pbs.PathShearY == 0)
1707 { 1707 {
1708#if SPAM 1708#if SPAM
1709 m_log.Warn("NonMesh"); 1709 m_log.Warn("NonMesh");
1710#endif 1710#endif
1711 return false; 1711 return false;
1712 }
1713 } 1712 }
1714 } 1713 }
1715 1714
@@ -1717,8 +1716,7 @@ namespace OpenSim.Region.Physics.OdePlugin
1717 // and it's odd.. so for now just return true if asked to force meshs 1716 // and it's odd.. so for now just return true if asked to force meshs
1718 // hopefully mesher will fail if doesn't suport so things still get basic boxes 1717 // hopefully mesher will fail if doesn't suport so things still get basic boxes
1719 1718
1720 if (forceSimplePrimMeshing) 1719 int iPropertiesNotSupportedDefault = 0;
1721 return true;
1722 1720
1723 if (pbs.ProfileHollow != 0) 1721 if (pbs.ProfileHollow != 0)
1724 iPropertiesNotSupportedDefault++; 1722 iPropertiesNotSupportedDefault++;
@@ -1787,9 +1785,6 @@ namespace OpenSim.Region.Physics.OdePlugin
1787 } 1785 }
1788 } 1786 }
1789 1787
1790 if (pbs.SculptEntry && meshSculptedPrim)
1791 iPropertiesNotSupportedDefault++;
1792
1793 if (iPropertiesNotSupportedDefault == 0) 1788 if (iPropertiesNotSupportedDefault == 0)
1794 { 1789 {
1795#if SPAM 1790#if SPAM