diff options
Diffstat (limited to 'OpenSim/Region/Physics/OdePlugin/OdePlugin.cs')
-rw-r--r-- | OpenSim/Region/Physics/OdePlugin/OdePlugin.cs | 51 |
1 files changed, 23 insertions, 28 deletions
diff --git a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs index f285911..5a501ef 100644 --- a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs +++ b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs | |||
@@ -31,13 +31,12 @@ using System.Reflection; | |||
31 | using System.Runtime.InteropServices; | 31 | using System.Runtime.InteropServices; |
32 | using System.Threading; | 32 | using System.Threading; |
33 | using System.IO; | 33 | using System.IO; |
34 | using Axiom.Math; | ||
35 | using log4net; | 34 | using log4net; |
36 | using Nini.Config; | 35 | using Nini.Config; |
37 | using Ode.NET; | 36 | using Ode.NET; |
38 | using OpenSim.Framework; | 37 | using OpenSim.Framework; |
39 | using OpenSim.Region.Physics.Manager; | 38 | using OpenSim.Region.Physics.Manager; |
40 | using libsecondlife; | 39 | using OpenMetaverse; |
41 | 40 | ||
42 | //using OpenSim.Region.Physics.OdePlugin.Meshing; | 41 | //using OpenSim.Region.Physics.OdePlugin.Meshing; |
43 | 42 | ||
@@ -1129,11 +1128,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1129 | siz.X = size.X; | 1128 | siz.X = size.X; |
1130 | siz.Y = size.Y; | 1129 | siz.Y = size.Y; |
1131 | siz.Z = size.Z; | 1130 | siz.Z = size.Z; |
1132 | Quaternion rot = new Quaternion(); | 1131 | Quaternion rot = rotation; |
1133 | rot.w = rotation.w; | ||
1134 | rot.x = rotation.x; | ||
1135 | rot.y = rotation.y; | ||
1136 | rot.z = rotation.z; | ||
1137 | 1132 | ||
1138 | OdePrim newPrim; | 1133 | OdePrim newPrim; |
1139 | lock (OdeLock) | 1134 | lock (OdeLock) |
@@ -1524,8 +1519,8 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1524 | // but we still need to check for sculptie meshing being enabled so this is the most | 1519 | // but we still need to check for sculptie meshing being enabled so this is the most |
1525 | // convenient place to do it for now... | 1520 | // convenient place to do it for now... |
1526 | 1521 | ||
1527 | // //if (pbs.PathCurve == (byte)LLObject.PathCurve.Circle && pbs.ProfileCurve == (byte)LLObject.ProfileCurve.Circle && pbs.PathScaleY <= 0.75f) | 1522 | // //if (pbs.PathCurve == (byte)Primitive.PathCurve.Circle && pbs.ProfileCurve == (byte)Primitive.ProfileCurve.Circle && pbs.PathScaleY <= 0.75f) |
1528 | // //Console.WriteLine("needsMeshing: " + " pathCurve: " + pbs.PathCurve.ToString() + " profileCurve: " + pbs.ProfileCurve.ToString() + " pathScaleY: " + LLObject.UnpackPathScale(pbs.PathScaleY).ToString()); | 1523 | // //Console.WriteLine("needsMeshing: " + " pathCurve: " + pbs.PathCurve.ToString() + " profileCurve: " + pbs.ProfileCurve.ToString() + " pathScaleY: " + Primitive.UnpackPathScale(pbs.PathScaleY).ToString()); |
1529 | if (pbs.SculptEntry && !meshSculptedPrim) | 1524 | if (pbs.SculptEntry && !meshSculptedPrim) |
1530 | { | 1525 | { |
1531 | return false; | 1526 | return false; |
@@ -1555,19 +1550,19 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1555 | // return true; | 1550 | // return true; |
1556 | 1551 | ||
1557 | // // test for torus | 1552 | // // test for torus |
1558 | // if (pbs.PathCurve == (byte)LLObject.PathCurve.Circle | 1553 | // if (pbs.PathCurve == (byte)Primitive.PathCurve.Circle |
1559 | // && (pbs.ProfileCurve & 0x07) == (byte)LLObject.ProfileCurve.Circle | 1554 | // && (pbs.ProfileCurve & 0x07) == (byte)Primitive.ProfileCurve.Circle |
1560 | // && LLObject.UnpackPathScale(pbs.PathScaleY) <= 0.75f) | 1555 | // && Primitive.UnpackPathScale(pbs.PathScaleY) <= 0.75f) |
1561 | // return true; | 1556 | // return true; |
1562 | 1557 | ||
1563 | // // test for tube | 1558 | // // test for tube |
1564 | // if (pbs.PathCurve == (byte)LLObject.PathCurve.Circle | 1559 | // if (pbs.PathCurve == (byte)Primitive.PathCurve.Circle |
1565 | // && (pbs.ProfileCurve & 0x07) == (byte)LLObject.ProfileCurve.EqualTriangle) | 1560 | // && (pbs.ProfileCurve & 0x07) == (byte)Primitive.ProfileCurve.EqualTriangle) |
1566 | // return true; | 1561 | // return true; |
1567 | 1562 | ||
1568 | // // test for ring | 1563 | // // test for ring |
1569 | // if (pbs.PathCurve == (byte)LLObject.PathCurve.Circle | 1564 | // if (pbs.PathCurve == (byte)Primitive.PathCurve.Circle |
1570 | // && (pbs.ProfileCurve & 0x07) == (byte)LLObject.ProfileCurve.EqualTriangle) | 1565 | // && (pbs.ProfileCurve & 0x07) == (byte)Primitive.ProfileCurve.EqualTriangle) |
1571 | // return true; | 1566 | // return true; |
1572 | 1567 | ||
1573 | // if (pbs.ProfileShape == ProfileShape.EquilateralTriangle) | 1568 | // if (pbs.ProfileShape == ProfileShape.EquilateralTriangle) |
@@ -2132,17 +2127,17 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
2132 | 2127 | ||
2133 | d.Matrix3 R = new d.Matrix3(); | 2128 | d.Matrix3 R = new d.Matrix3(); |
2134 | 2129 | ||
2135 | Quaternion q1 = Quaternion.FromAngleAxis(1.5707f, new Vector3(1, 0, 0)); | 2130 | Quaternion q1 = Quaternion.CreateFromAxisAngle(new Vector3(1, 0, 0), 1.5707f); |
2136 | Quaternion q2 = Quaternion.FromAngleAxis(1.5707f, new Vector3(0, 1, 0)); | 2131 | Quaternion q2 = Quaternion.CreateFromAxisAngle(new Vector3(0, 1, 0), 1.5707f); |
2137 | //Axiom.Math.Quaternion q3 = Axiom.Math.Quaternion.FromAngleAxis(3.14f, new Axiom.Math.Vector3(0, 0, 1)); | 2132 | //Axiom.Math.Quaternion q3 = Axiom.Math.Quaternion.FromAngleAxis(3.14f, new Axiom.Math.Vector3(0, 0, 1)); |
2138 | 2133 | ||
2139 | q1 = q1*q2; | 2134 | q1 = q1*q2; |
2140 | //q1 = q1 * q3; | 2135 | //q1 = q1 * q3; |
2141 | Vector3 v3 = new Vector3(); | 2136 | Vector3 v3; |
2142 | float angle = 0; | 2137 | float angle; |
2143 | q1.ToAngleAxis(ref angle, ref v3); | 2138 | q1.GetAxisAngle(out v3, out angle); |
2144 | 2139 | ||
2145 | d.RFromAxisAndAngle(out R, v3.x, v3.y, v3.z, angle); | 2140 | d.RFromAxisAndAngle(out R, v3.X, v3.Y, v3.Z, angle); |
2146 | d.GeomSetRotation(LandGeom, ref R); | 2141 | d.GeomSetRotation(LandGeom, ref R); |
2147 | d.GeomSetPosition(LandGeom, 128, 128, 0); | 2142 | d.GeomSetPosition(LandGeom, 128, 128, 0); |
2148 | } | 2143 | } |
@@ -2197,17 +2192,17 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
2197 | 2192 | ||
2198 | d.Matrix3 R = new d.Matrix3(); | 2193 | d.Matrix3 R = new d.Matrix3(); |
2199 | 2194 | ||
2200 | Quaternion q1 = Quaternion.FromAngleAxis(1.5707f, new Vector3(1, 0, 0)); | 2195 | Quaternion q1 = Quaternion.CreateFromAxisAngle(new Vector3(1, 0, 0), 1.5707f); |
2201 | Quaternion q2 = Quaternion.FromAngleAxis(1.5707f, new Vector3(0, 1, 0)); | 2196 | Quaternion q2 = Quaternion.CreateFromAxisAngle(new Vector3(0, 1, 0), 1.5707f); |
2202 | //Axiom.Math.Quaternion q3 = Axiom.Math.Quaternion.FromAngleAxis(3.14f, new Axiom.Math.Vector3(0, 0, 1)); | 2197 | //Axiom.Math.Quaternion q3 = Axiom.Math.Quaternion.FromAngleAxis(3.14f, new Axiom.Math.Vector3(0, 0, 1)); |
2203 | 2198 | ||
2204 | q1 = q1 * q2; | 2199 | q1 = q1 * q2; |
2205 | //q1 = q1 * q3; | 2200 | //q1 = q1 * q3; |
2206 | Vector3 v3 = new Vector3(); | 2201 | Vector3 v3; |
2207 | float angle = 0; | 2202 | float angle; |
2208 | q1.ToAngleAxis(ref angle, ref v3); | 2203 | q1.GetAxisAngle(out v3, out angle); |
2209 | 2204 | ||
2210 | d.RFromAxisAndAngle(out R, v3.x, v3.y, v3.z, angle); | 2205 | d.RFromAxisAndAngle(out R, v3.X, v3.Y, v3.Z, angle); |
2211 | d.GeomSetRotation(WaterGeom, ref R); | 2206 | d.GeomSetRotation(WaterGeom, ref R); |
2212 | d.GeomSetPosition(WaterGeom, 128, 128, 0); | 2207 | d.GeomSetPosition(WaterGeom, 128, 128, 0); |
2213 | } | 2208 | } |