From 1ecd803e87119c0344b91798792130155a82859c Mon Sep 17 00:00:00 2001 From: Teravus Ovares Date: Fri, 23 Nov 2007 05:56:35 +0000 Subject: * added some functions for use in raytracing. They're kind of crappy now, so they only display 'guesses' on the console when you rez a prim. * any math gurus who'd like to improve rezzing need only to make the raytracer in SceneObjectPart work :D --- OpenSim/Region/Environment/Scenes/InnerScene.cs | 27 +++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'OpenSim/Region/Environment/Scenes/InnerScene.cs') diff --git a/OpenSim/Region/Environment/Scenes/InnerScene.cs b/OpenSim/Region/Environment/Scenes/InnerScene.cs index 38a8a06..8f7cbee 100644 --- a/OpenSim/Region/Environment/Scenes/InnerScene.cs +++ b/OpenSim/Region/Environment/Scenes/InnerScene.cs @@ -253,6 +253,33 @@ namespace OpenSim.Region.Environment.Scenes return null; } + public EntityIntersection GetClosestIntersectingPrim(Ray hray) + { + // Primitive Ray Tracing + bool gothit = false; + float closestDistance = 280f; + EntityIntersection returnResult = new EntityIntersection(); + foreach (EntityBase ent in Entities.Values) + { + if (ent is SceneObjectGroup) + { + SceneObjectGroup reportingG = (SceneObjectGroup)ent; + EntityIntersection result = reportingG.testIntersection(hray); + if (result.HitTF) + { + if (result.distance < closestDistance) + { + gothit = true; + closestDistance = result.distance; + returnResult = result; + } + } + } + + } + return returnResult; + } + public SceneObjectPart GetSceneObjectPart(uint localID) { SceneObjectGroup group = GetGroupByPrim(localID); -- cgit v1.1