aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Physics/OdePlugin/OdePlugin.cs')
-rw-r--r--OpenSim/Region/Physics/OdePlugin/OdePlugin.cs19
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;
36using Ode.NET; 36using Ode.NET;
37using OpenSim.Framework; 37using OpenSim.Framework;
38using OpenSim.Region.Physics.Manager; 38using OpenSim.Region.Physics.Manager;
39using 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