diff options
author | UbitUmarov | 2015-09-23 01:42:24 +0100 |
---|---|---|
committer | UbitUmarov | 2015-09-23 01:42:24 +0100 |
commit | 43ca70655f5773b34a4f084ec896ab539da74917 (patch) | |
tree | 314d4db71abf0380688c0777450005c279cc19a1 /OpenSim/Region/PhysicsModules | |
parent | change the encapsulation of compressed land patchs in llUDP packets (diff) | |
download | opensim-SC_OLD-43ca70655f5773b34a4f084ec896ab539da74917.zip opensim-SC_OLD-43ca70655f5773b34a4f084ec896ab539da74917.tar.gz opensim-SC_OLD-43ca70655f5773b34a4f084ec896ab539da74917.tar.bz2 opensim-SC_OLD-43ca70655f5773b34a4f084ec896ab539da74917.tar.xz |
remove a odd floating offset on physical prims/terrain collisions
Diffstat (limited to 'OpenSim/Region/PhysicsModules')
-rw-r--r-- | OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs | 25 |
1 files changed, 9 insertions, 16 deletions
diff --git a/OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs b/OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs index a2dd885..41fec89 100644 --- a/OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs +++ b/OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs | |||
@@ -2295,21 +2295,14 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
2295 | 2295 | ||
2296 | // geom_name_map[GroundGeom] = "Terrain"; | 2296 | // geom_name_map[GroundGeom] = "Terrain"; |
2297 | 2297 | ||
2298 | d.Matrix3 R = new d.Matrix3(); | 2298 | d.Quaternion q = new d.Quaternion(); |
2299 | 2299 | q.X = 0.5f; | |
2300 | Quaternion q1 = Quaternion.CreateFromAxisAngle(new Vector3(1, 0, 0), 1.5707f); | 2300 | q.Y = 0.5f; |
2301 | Quaternion q2 = Quaternion.CreateFromAxisAngle(new Vector3(0, 1, 0), 1.5707f); | 2301 | q.Z = 0.5f; |
2302 | 2302 | q.W = 0.5f; | |
2303 | 2303 | ||
2304 | q1 = q1 * q2; | 2304 | d.GeomSetQuaternion(GroundGeom, ref q); |
2305 | 2305 | d.GeomSetPosition(GroundGeom, pOffset.X + m_regionWidth * 0.5f, pOffset.Y + m_regionHeight * 0.5f, 0.0f); | |
2306 | Vector3 v3; | ||
2307 | float angle; | ||
2308 | q1.GetAxisAngle(out v3, out angle); | ||
2309 | |||
2310 | d.RFromAxisAndAngle(out R, v3.X, v3.Y, v3.Z, angle); | ||
2311 | d.GeomSetRotation(GroundGeom, ref R); | ||
2312 | d.GeomSetPosition(GroundGeom, pOffset.X + m_regionWidth * 0.5f, pOffset.Y + m_regionHeight * 0.5f, 0); | ||
2313 | RegionTerrain.Add(pOffset, GroundGeom); | 2306 | RegionTerrain.Add(pOffset, GroundGeom); |
2314 | TerrainHeightFieldHeights.Add(GroundGeom, _heightmap); | 2307 | TerrainHeightFieldHeights.Add(GroundGeom, _heightmap); |
2315 | TerrainHeightFieldHeightsHandlers.Add(GroundGeom, _heightmaphandler); | 2308 | TerrainHeightFieldHeightsHandlers.Add(GroundGeom, _heightmaphandler); |
@@ -2419,7 +2412,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
2419 | 2412 | ||
2420 | // geom_name_map[GroundGeom] = "Terrain"; | 2413 | // geom_name_map[GroundGeom] = "Terrain"; |
2421 | 2414 | ||
2422 | d.GeomSetPosition(GroundGeom, pOffset.X + m_regionWidth * 0.5f, pOffset.Y + m_regionHeight * 0.5f, 0); | 2415 | d.GeomSetPosition(GroundGeom, pOffset.X + m_regionWidth * 0.5f, pOffset.Y + m_regionHeight * 0.5f, 0.0f); |
2423 | RegionTerrain.Add(pOffset, GroundGeom); | 2416 | RegionTerrain.Add(pOffset, GroundGeom); |
2424 | TerrainHeightFieldHeights.Add(GroundGeom, _heightmap); | 2417 | TerrainHeightFieldHeights.Add(GroundGeom, _heightmap); |
2425 | TerrainHeightFieldHeightsHandlers.Add(GroundGeom, _heightmaphandler); | 2418 | TerrainHeightFieldHeightsHandlers.Add(GroundGeom, _heightmaphandler); |