public static bool ShouldHideCrossing(ushort nodeID, ushort segmentID) {
#if DEBUG
            if(Extensions.currentMode == AppMode.AssetEditor) {
                return true; // always hide crossings in asset editor for quick testing.
            }
#endif
            NetInfo info = segmentID.ToSegment().Info;
            bool ret1 = info.CanHideCrossings() && TMPEUTILS.HasCrossingBan(segmentID, nodeID);
            bool ret2 = info.CanHideMarkings() && NS2Utils.HideJunction(segmentID);

            //Texture cache is not broken.
            bool ret = PrefabUtils.MaterialCache != null;
            ret &= ret1 || ret2;
            return ret;
        }
        }         // end if !exempt

        public static bool CanHideCrossings(this NetInfo info)
        {
            // roads without pedesterian lanes (eg highways) have no crossings to hide to the best of my knowledege.
            // not sure about custom highways. Processing texture for such roads may reduce smoothness of the transition.
            return(info.CanHideMarkings() && info.m_hasPedestrianLanes && info.m_hasForwardVehicleLanes);
        }