internal static IEnumerable <RectHitResult> HitTest(GLPanel3D viewport, RectF rectInWpf, RectHitTestMode hitTestMode) { var results = new List <RectHitResult>(); if (!viewport.Camera.TotalTransformReverse.HasValue) { return(results); } var isFullContain = hitTestMode == RectHitTestMode.FullContain; foreach (var visusl in viewport.Visuals.Where(v => v.IsVisible && v.IsHitTestVisible && v.Model != null)) { _HitTest(viewport, rectInWpf, visusl.Model, results, isFullContain); } return(results); }
public static IEnumerable <RectHitResult> HitTest(GLPanel3D viewport, IEnumerable <IHitTestSource> models, RectF rectInWpf, RectHitTestMode hitTestMode) { var results = new List <RectHitResult>(); if (!viewport.Camera.TotalTransformReverse.HasValue) { return(results); } var isFullContain = hitTestMode == RectHitTestMode.FullContain; foreach (var model in models) { _HitTest(viewport, rectInWpf, model, results, isFullContain); } return(results); }