aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Physics/OdePlugin
diff options
context:
space:
mode:
authorTeravus Ovares2008-05-29 20:20:50 +0000
committerTeravus Ovares2008-05-29 20:20:50 +0000
commit918f887c0c10fda33633548f3601bdf07d74edfd (patch)
tree2db5459288f52117a071fcc51c7f2d1d7a19a3b3 /OpenSim/Region/Physics/OdePlugin
parentMantis#1416. Thank you very much, Melanie for a patch that: (diff)
downloadopensim-SC_OLD-918f887c0c10fda33633548f3601bdf07d74edfd.zip
opensim-SC_OLD-918f887c0c10fda33633548f3601bdf07d74edfd.tar.gz
opensim-SC_OLD-918f887c0c10fda33633548f3601bdf07d74edfd.tar.bz2
opensim-SC_OLD-918f887c0c10fda33633548f3601bdf07d74edfd.tar.xz
* Applying Dahlia's interim path curve patch. it adds initial support for some tori/ring parameters. Thanks Dahlia!
* Some situations do not match the client's render of the tori, we know and are working on it. This is an initial support patch, so expect it to not be exact. * Some tapers are acting slightly odd. Will fix.
Diffstat (limited to '')
-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