示例#1
0
        private bool MouseOverVessel(Vessel vessel)
        {
            bool result = false;

            var patchRenderer = vessel.patchedConicRenderer;

            if (patchRenderer == null || patchRenderer.solver == null)
            {
                return(result);
            }

            var patches = patchRenderer.solver.maneuverNodes.Any()
                ? patchRenderer.flightPlanRenders
                : patchRenderer.patchRenders;

            if (patches == null)
            {
                return(result);
            }

            PatchedConics.PatchCastHit hit = default(PatchedConics.PatchCastHit);
            if (PatchedConics.ScreenCast(Input.mousePosition, patches, out hit))
            {
                result          = true;
                _hitOrbit       = hit.pr.patch;
                _hitScreenPoint = hit.GetScreenSpacePoint();
                _hitUT          = hit.UTatTA;
            }

            return(result);
        }
 public static bool ScreenCast(Vector3 screenPos, PatchRendering pr, out PatchedConics.PatchCastHit hitInfo, float orbitPixelWidth = 10f, double maxUT = -1, bool clampToPatch = false);