* 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. )
parent
2517fe7acd
commit
e11e6dc308
|
@ -1087,13 +1087,17 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
EntityIntersection ei = target.TestIntersectionOBB(NewRay, new Quaternion(1,0,0,0));
|
||||
|
||||
// Un-comment out the following line to Get Raytrace results printed to the console.
|
||||
//m_log.Info("[RAYTRACERESULTS]: Hit:" + ei.HitTF.ToString() + " Point: " + ei.ipoint.ToString() + " Normal: " + ei.normal.ToString());
|
||||
m_log.Info("[RAYTRACERESULTS]: Hit:" + ei.HitTF.ToString() + " Point: " + ei.ipoint.ToString() + " Normal: " + ei.normal.ToString());
|
||||
|
||||
// If we hit something
|
||||
if (ei.HitTF)
|
||||
{
|
||||
// Set the position to the intersection point
|
||||
pos = new LLVector3(ei.ipoint.x, ei.ipoint.y, ei.ipoint.z);
|
||||
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)));
|
||||
|
||||
// Un-offset the prim (it gets offset later by the consumer method)
|
||||
pos.Z -= 0.25F;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -1260,6 +1260,7 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
returnresult.distance = distance2;
|
||||
returnresult.HitTF = true;
|
||||
returnresult.ipoint = q;
|
||||
m_log.Info("[FACE]:" + i.ToString());
|
||||
//m_log.Info("[POINT]: " + q.ToString());
|
||||
returnresult.normal = normals[i];
|
||||
|
||||
|
|
Loading…
Reference in New Issue