public bool GetLocationInfo(Vector3 p, Vector3 down, out float dist, LocationInfo info) { dist = 0f; if (groupModels.Empty()) { return(false); } WModelAreaCallback callback = new WModelAreaCallback(groupModels, down); groupTree.intersectPoint(p, callback); if (callback.hit != null) { info.hitModel = callback.hit; dist = callback.zDist; return(true); } return(false); }
public bool IntersectPoint(Vector3 p, Vector3 down, out float dist, AreaInfo info) { dist = 0f; if (groupModels.Empty()) { return(false); } WModelAreaCallback callback = new WModelAreaCallback(groupModels, down); groupTree.intersectPoint(p, callback); if (callback.hit != null) { info.rootId = (int)RootWMOID; info.groupId = (int)callback.hit.GetWmoID(); info.flags = callback.hit.GetMogpFlags(); info.result = true; dist = callback.zDist; return(true); } return(false); }