diff options
-rw-r--r-- | OpenSim/Region/Physics/UbitOdePlugin/ODECharacter.cs | 3 | ||||
-rw-r--r-- | OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs | 55 |
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 |