diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/Physics/OdePlugin/OdePlugin.cs | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs index e43a1ac..5078f03 100644 --- a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs +++ b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs | |||
@@ -36,6 +36,7 @@ using Nini.Config; | |||
36 | using Ode.NET; | 36 | using Ode.NET; |
37 | using OpenSim.Framework; | 37 | using OpenSim.Framework; |
38 | using OpenSim.Region.Physics.Manager; | 38 | using OpenSim.Region.Physics.Manager; |
39 | using libsecondlife; | ||
39 | 40 | ||
40 | //using OpenSim.Region.Physics.OdePlugin.Meshing; | 41 | //using OpenSim.Region.Physics.OdePlugin.Meshing; |
41 | 42 | ||
@@ -1512,6 +1513,8 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1512 | /// <returns></returns> | 1513 | /// <returns></returns> |
1513 | public bool needsMeshing(PrimitiveBaseShape pbs) | 1514 | public bool needsMeshing(PrimitiveBaseShape pbs) |
1514 | { | 1515 | { |
1516 | //if (pbs.PathCurve == (byte)LLObject.PathCurve.Circle && pbs.ProfileCurve == (byte)LLObject.ProfileCurve.Circle && pbs.PathScaleY <= 0.75f) | ||
1517 | //Console.WriteLine("needsMeshing: " + " pathCurve: " + pbs.PathCurve.ToString() + " profileCurve: " + pbs.ProfileCurve.ToString() + " pathScaleY: " + LLObject.UnpackPathScale(pbs.PathScaleY).ToString()); | ||
1515 | if (pbs.SculptEntry && !meshSculptedPrim) | 1518 | if (pbs.SculptEntry && !meshSculptedPrim) |
1516 | { | 1519 | { |
1517 | return false; | 1520 | return false; |
@@ -1537,6 +1540,22 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1537 | if (pbs.ProfileShape == ProfileShape.HalfCircle && pbs.PathCurve == (byte)Extrusion.Curve1 && (pbs.Scale.X != pbs.Scale.Y || pbs.Scale.Y != pbs.Scale.Z || pbs.Scale.Z != pbs.Scale.X)) | 1540 | if (pbs.ProfileShape == ProfileShape.HalfCircle && pbs.PathCurve == (byte)Extrusion.Curve1 && (pbs.Scale.X != pbs.Scale.Y || pbs.Scale.Y != pbs.Scale.Z || pbs.Scale.Z != pbs.Scale.X)) |
1538 | return true; | 1541 | return true; |
1539 | 1542 | ||
1543 | // test for torus | ||
1544 | if (pbs.PathCurve == (byte)LLObject.PathCurve.Circle | ||
1545 | && (pbs.ProfileCurve & 0x07) == (byte)LLObject.ProfileCurve.Circle | ||
1546 | && LLObject.UnpackPathScale(pbs.PathScaleY) <= 0.75f) | ||
1547 | return true; | ||
1548 | |||
1549 | // test for tube | ||
1550 | if (pbs.PathCurve == (byte)LLObject.PathCurve.Circle | ||
1551 | && (pbs.ProfileCurve & 0x07) == (byte)LLObject.ProfileCurve.EqualTriangle) | ||
1552 | return true; | ||
1553 | |||
1554 | // test for ring | ||
1555 | if (pbs.PathCurve == (byte)LLObject.PathCurve.Circle | ||
1556 | && (pbs.ProfileCurve & 0x07) == (byte)LLObject.ProfileCurve.EqualTriangle) | ||
1557 | return true; | ||
1558 | |||
1540 | if (pbs.ProfileShape == ProfileShape.EquilateralTriangle) | 1559 | if (pbs.ProfileShape == ProfileShape.EquilateralTriangle) |
1541 | return true; | 1560 | return true; |
1542 | 1561 | ||