diff options
author | Teravus Ovares | 2008-03-25 17:28:09 +0000 |
---|---|---|
committer | Teravus Ovares | 2008-03-25 17:28:09 +0000 |
commit | e11e6dc308a01a1f76f755157e9e91027d172a52 (patch) | |
tree | a5c63165d614f79dc16e364b5c7c82803c901157 /OpenSim | |
parent | * Remove old CAPS http listeners when a client logs out from a scene (diff) | |
download | opensim-SC-e11e6dc308a01a1f76f755157e9e91027d172a52.zip opensim-SC-e11e6dc308a01a1f76f755157e9e91027d172a52.tar.gz opensim-SC-e11e6dc308a01a1f76f755157e9e91027d172a52.tar.bz2 opensim-SC-e11e6dc308a01a1f76f755157e9e91027d172a52.tar.xz |
* Use Face normal to offset new prim instead of the hard coded pos.Z += 0.25f; This allows proper positioning of prim based on the face you click. ( Yes, you can click the bottom face of a prim that's above you, and the new prim appears directly below it. )
Diffstat (limited to 'OpenSim')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/Scene.cs | 8 | ||||
-rw-r--r-- | OpenSim/Region/Environment/Scenes/SceneObjectPart.cs | 1 |
2 files changed, 7 insertions, 2 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index 75f8c23..c74092a 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs | |||
@@ -1087,13 +1087,17 @@ namespace OpenSim.Region.Environment.Scenes | |||
1087 | EntityIntersection ei = target.TestIntersectionOBB(NewRay, new Quaternion(1,0,0,0)); | 1087 | EntityIntersection ei = target.TestIntersectionOBB(NewRay, new Quaternion(1,0,0,0)); |
1088 | 1088 | ||
1089 | // Un-comment out the following line to Get Raytrace results printed to the console. | 1089 | // Un-comment out the following line to Get Raytrace results printed to the console. |
1090 | //m_log.Info("[RAYTRACERESULTS]: Hit:" + ei.HitTF.ToString() + " Point: " + ei.ipoint.ToString() + " Normal: " + ei.normal.ToString()); | 1090 | m_log.Info("[RAYTRACERESULTS]: Hit:" + ei.HitTF.ToString() + " Point: " + ei.ipoint.ToString() + " Normal: " + ei.normal.ToString()); |
1091 | 1091 | ||
1092 | // If we hit something | 1092 | // If we hit something |
1093 | if (ei.HitTF) | 1093 | if (ei.HitTF) |
1094 | { | 1094 | { |
1095 | // Set the position to the intersection point | 1095 | // Set the position to the intersection point |
1096 | pos = new LLVector3(ei.ipoint.x, ei.ipoint.y, ei.ipoint.z); | 1096 | pos = (new LLVector3(ei.ipoint.x, ei.ipoint.y, ei.ipoint.z) + (new LLVector3(ei.normal.x,ei.normal.x,ei.normal.z) * (0.5f/2f))); |
1097 | |||
1098 | // Un-offset the prim (it gets offset later by the consumer method) | ||
1099 | pos.Z -= 0.25F; | ||
1100 | |||
1097 | } | 1101 | } |
1098 | 1102 | ||
1099 | 1103 | ||
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs index acb2588..2a2c1a0 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs | |||
@@ -1260,6 +1260,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1260 | returnresult.distance = distance2; | 1260 | returnresult.distance = distance2; |
1261 | returnresult.HitTF = true; | 1261 | returnresult.HitTF = true; |
1262 | returnresult.ipoint = q; | 1262 | returnresult.ipoint = q; |
1263 | m_log.Info("[FACE]:" + i.ToString()); | ||
1263 | //m_log.Info("[POINT]: " + q.ToString()); | 1264 | //m_log.Info("[POINT]: " + q.ToString()); |
1264 | returnresult.normal = normals[i]; | 1265 | returnresult.normal = normals[i]; |
1265 | 1266 | ||