예제 #1
0
 public void AktiivLezteSeze(
     Int64 Zait,
     OrtogoonInt InWindowClientFläce)
 {
     AktiivLezteZait = Zait;
     AktiivLezteInWindowClientFläce = InWindowClientFläce;
 }
예제 #2
0
 static public SictVorsclaagNaacProcessWirkung VorsclaagWirkungMausKlikRecz(
     OrtogoonInt MausZiilFläce,
     InProcessGbsFläceRectekOrto[] MausPfaadMengeFläceZuMaide = null)
 {
     return(VorsclaagWirkungMausFläce(
                new InProcessGbsFläceRectekOrto(MausZiilFläce), false, true, MausPfaadMengeFläceZuMaide));
 }
예제 #3
0
		public MotionParamMouseRegion(
			UIElement UIElement,
			OrtogoonInt? RegionReplacement = null)
		{
			this.UIElement = UIElement;
			this.RegionReplacement = RegionReplacement;
		}
예제 #4
0
 override public void AingangScnapscusAlsFortsaz(ScnapscusType Scnapscus)
 {
     if (null != Scnapscus)
     {
         ScnapscusLezteFläce = Scnapscus.InGbsFläce;
     }
 }
예제 #5
0
        override public bool ScnapscusAlsFortsazZuuläsigBerecne(ScnapscusType Scnapscus)
        {
            if (null == ScnapscusLezteFläce)
            {
                //	Laage noc nit noc nit fesctgeleegt.
                return(true);
            }

            if (null == Scnapscus)
            {
                return(false);
            }

            var ScnapscusInGbsFläce = Scnapscus.InGbsFläce;

            if (null == ScnapscusInGbsFläce)
            {
                return(false);
            }

            var Scnitfläce = OrtogoonInt.Scnitfläce(ScnapscusLezteFläce, ScnapscusInGbsFläce);

            if (null == Scnitfläce)
            {
                return(false);
            }

            if (Scnitfläce.Betraag() < ScnapscusLezteFläce.Betraag() / 2)
            {
                return(false);
            }

            return(true);
        }
예제 #6
0
        static OrtogoonInt[] MengeFläceRandUmFläce(
            OrtogoonInt FläceZuUmrande,
            int RandGrööse)
        {
            if (null == FläceZuUmrande)
            {
                return(null);
            }

            var RandListeTailFläce = new List <OrtogoonInt>();

            for (int SaiteIndex = 0; SaiteIndex < 4; SaiteIndex++)
            {
                var AxeIndex     = SaiteIndex % 2;
                var AxeNictIndex = (AxeIndex + 1) % 2;

                var RictungVorzaice = ((SaiteIndex / 2) % 2) * 2 - 1;

                var RandTailFläceMiteDistanzVonFläceMite =
                    new Vektor2DInt(
                        (AxeIndex * (FläceZuUmrande.Grööse.A + RandGrööse) / 2) * RictungVorzaice,
                        (AxeNictIndex * (FläceZuUmrande.Grööse.B + RandGrööse) / 2) * RictungVorzaice);

                var RandTailFläceMite =
                    FläceZuUmrande.ZentrumLaage + RandTailFläceMiteDistanzVonFläceMite;

                var RandTailFläce = OrtogoonInt.AusPunktZentrumUndGrööse(RandTailFläceMite, new Vektor2DInt(
                                                                             RandGrööse * (1 + AxeNictIndex * 2),
                                                                             RandGrööse * (1 + AxeIndex * 2)));

                RandListeTailFläce.Add(RandTailFläce);
            }

            return(RandListeTailFläce.ToArray());
        }
예제 #7
0
 public SictFläceRectekOrtoAbhängigVonGbsAst(
     OrtogoonInt FläceTailSctaatisc,
     GbsElement GbsElement)
     :
     base(FläceTailSctaatisc)
 {
     this.GbsElement = GbsElement;
 }
예제 #8
0
 public WindowMesung(
     Raster2D <UInt32> ClientRectRaster,
     OrtogoonInt ClientRect,
     string WindowTitle = null)
 {
     this.ClientRectRaster = ClientRectRaster;
     this.ClientRect       = ClientRect;
     this.WindowTitle      = WindowTitle;
 }
예제 #9
0
 public SictGbsAstOklusioonKombi(
     SictGbsAstOklusioonInfo Okludiirende,
     GbsElement Okludiirte,
     OrtogoonInt Scnitfläce,
     Int64 NaacOklusioonRestFläceGröösteKwadraatSaitelänge)
 {
     this.Okludiirende = Okludiirende;
     this.Okludiirte   = Okludiirte;
     this.Scnitfläce   = Scnitfläce;
     this.NaacOklusioonRestFläceGröösteKwadraatSaitelänge = NaacOklusioonRestFläceGröösteKwadraatSaitelänge;
 }
예제 #10
0
        public UIElement(
            ObjectIdInt64 Base,
            OrtogoonInt Region = default(OrtogoonInt),
            int?InTreeIndex    = null)
            :
            base(Base)
        {
            this.Region = Region;

            this.InTreeIndex = InTreeIndex;
        }
예제 #11
0
        static public UIElement CopyWithRegionSubstituted(
            this UIElement UIElement,
            OrtogoonInt RegionSubstitute)
        {
            if (null == UIElement)
            {
                return(null);
            }

            return(new UIElement(UIElement, RegionSubstitute, UIElement.InTreeIndex));
        }
예제 #12
0
        public GbsElement(
            ObjektMitIdentInt64 ZuKopiire,
            OrtogoonInt InGbsFläce = default(OrtogoonInt),
            int?InGbsBaumAstIndex  = null)
            :
            base(ZuKopiire)
        {
            //	TempDebugIdent = TempDebugIdentFabrik.IdentBerecne();

            this.InGbsFläce = InGbsFläce;

            this.InGbsBaumAstIndex = InGbsBaumAstIndex;
        }
예제 #13
0
        static public GbsElement FläceProjeziirtAufGbsAst(
            OrtogoonInt Fläce,
            GbsElement Ident)
        {
            if (null == Fläce || null == Ident)
            {
                return(null);
            }

            return(new GbsElement(
                       new ObjektMitIdentInt64(Ident.Ident),
                       Fläce,
                       Ident.InGbsBaumAstIndex
                       ));
        }
예제 #14
0
        override public bool MenuPfaadBeginMööglicFürListeMenuBerecne(IEnumerable <SictWertMitZait <VonSensor.Menu> > ListeMenuMitBeginZait)
        {
            //	Bedingung: Scnitmenge (Menu.Fläce, TargetRepr.Fläce) nict Leer

            var ListeMenuMitBeginZaitFrüheste = ListeMenuMitBeginZait.FirstOrDefault();

            if (null == ListeMenuMitBeginZaitFrüheste.Wert)
            {
                return(false);
            }

            var MenuFläce = ListeMenuMitBeginZaitFrüheste.Wert.InGbsFläce;

            if (null == MenuFläce)
            {
                return(false);
            }

            var TargetReprLezteMitZaitNulbar = this.TargetReprLezteMitZait;

            if (!TargetReprLezteMitZaitNulbar.HasValue)
            {
                return(false);
            }

            var TargetReprLezte = TargetReprLezteMitZaitNulbar.Value.Wert;

            if (null == TargetReprLezte)
            {
                return(false);
            }

            var TargetReprLezteFläce = TargetReprLezte.InGbsFläce;

            if (null == TargetReprLezteFläce)
            {
                return(false);
            }

            if (OrtogoonInt.Scnitfläce(TargetReprLezteFläce, MenuFläce).IsLeer)
            {
                return(false);
            }

            return(MenuPfaadFortsazMööglicBerecne());
        }
예제 #15
0
        static public SictFläceRectekOrtoAbhängigVonGbsAst FläceRectekOrtoAbhängigVonGbsAstBerecne(
            GbsElement GbsObjekt,
            GbsElement GbsBaum)
        {
            if (null == GbsObjekt)
            {
                return(null);
            }

            OrtogoonInt FläceTailSctaatisc = GbsObjekt.InGbsFläce;

            /*
             * 2015.03.12
             *
             * var GbsObjektBezaicner = (Int64?)GbsObjekt.Ident;
             *
             * InGbsPfaad NaacGbsAstPfaad = null;
             *
             * if (GbsObjektBezaicner.HasValue	&&
             *      null != GbsBaum)
             * {
             *      GbsAstInfo[] PfaadListeAst;
             *
             *      NaacGbsAstPfaad	=	GbsBaum.GbsPfaadBerecneNaacAstMitHerkunftAdrese(GbsObjektBezaicner.Value, out	PfaadListeAst);
             *
             *      if (null != NaacGbsAstPfaad	&&
             *              null	!= PfaadListeAst)
             *      {
             *              var GbsObjektGbsAst = Bib3.Extension.LastOrDefaultNullable(PfaadListeAst) as SictGbsAstInfoSictAuswert;
             *
             *              var GbsObjektGbsAstLaage =
             *                      PfaadListeAst
             *                      .Select((Ast) => Ast.Laage ?? new SictVektor2DSingle(0, 0))
             *                      .Aggregate(new SictVektor2DSingle(0, 0), (a, b) => a + b)
             *                      .AlsVektor2DInt();
             *
             *              FläceTailSctaatisc =
             *                      FläceTailSctaatisc.Versezt(-GbsObjektGbsAstLaage);
             *      }
             * }
             *
             * return new SictFläceRectekOrtoAbhängigVonGbsAst(FläceTailSctaatisc, NaacGbsAstPfaad);
             * */

            return(new SictFläceRectekOrtoAbhängigVonGbsAst(FläceTailSctaatisc, GbsObjekt));
        }
예제 #16
0
        public OrtogoonInt?ToggleFläceBerecne()
        {
            var SictbarLezteZait = this.SictbarLezteZait;

            if (!(true == SictbarLezteZait.AingangLezte.HasValue))
            {
                return(null);
            }

            var LaageLezte = ListeLaageLezteBerecne();

            if (!LaageLezte.HasValue)
            {
                return(null);
            }

            return(OrtogoonInt.AusPunktZentrumUndGrööse(LaageLezte.Value, new Vektor2DInt(20, 20)));
        }
예제 #17
0
        static public bool MenuWurzelHinraicendGlaicwertigFürFortsaz(
            OrtogoonInt O0,
            OrtogoonInt O1)
        {
            if (O0 == O1)
            {
                return(true);
            }

            if (null == O0 || null == O1)
            {
                return(false);
            }

            return(O0 == O1);

            return
                ((O0.ZentrumLaage - O1.ZentrumLaage).BetraagQuadriirt < 1 &&
                 (O0.Grööse - O1.Grööse).BetraagQuadriirt < 1);
        }
예제 #18
0
        Vektor2DInt?ZuufäligePunktAusFläce(
            OrtogoonInt Fläce)
        {
            if (null == Fläce)
            {
                return(null);
            }

            var Grööse = Fläce.Grööse;

            if (Grööse.A < 1 || Grööse.B < 1)
            {
                return(null);
            }

            var ZuufalA = Zuufal.Next();
            var ZuufalB = Zuufal.Next();

            return(Fläce.PunktMin + new Vektor2DInt(ZuufalA % Grööse.A, ZuufalB % Grööse.B));
        }
예제 #19
0
        static public SictAufgaabeParamZerleegungErgeebnis ZerleegeScrollNaacUnte(
            ISictAutomatZuusctand AutomaatZuusctand,
            VonSensor.Scroll AusScnapscusScroll)
        {
            var AufgaabeParamZerleegungErgeebnis = new SictAufgaabeParamZerleegungErgeebnis(null, true);

            if (null == AusScnapscusScroll)
            {
                return(AufgaabeParamZerleegungErgeebnis);
            }

            var AusScnapscusScrollScrollHandleGrenze = AusScnapscusScroll.ScrollHandleGrenze;

            var AusScnapscusScrollScrollHandle = AusScnapscusScroll.ScrollHandle;

            var AusScnapscusScrollScrollHandleGrenzeFläce = AusScnapscusScrollScrollHandleGrenze.InGbsFläceNullable() ?? OrtogoonInt.Leer;
            var AusScnapscusScrollScrollHandleFläce       = AusScnapscusScrollScrollHandle.InGbsFläceNullable() ?? OrtogoonInt.Leer;

            if (AusScnapscusScrollScrollHandleGrenzeFläce.IsLeer || AusScnapscusScrollScrollHandleFläce.IsLeer)
            {
                //	wen kain ScrollHandle vorhande dan isc nit genüügend Inhalt zum Scrole vorhande, d.h. Viewport raict beraits bis Top -> Erfolg.
                return(AufgaabeParamZerleegungErgeebnis);
            }

            var FürScrolKlikFläce = OrtogoonInt.AusPunktZentrumUndGrööse(
                new Vektor2DInt(
                    AusScnapscusScrollScrollHandleGrenzeFläce.ZentrumLaage.A,
                    AusScnapscusScrollScrollHandleFläce.ZentrumLaage.B +
                    AusScnapscusScrollScrollHandleFläce.Grööse.B / 2 + 3)
                +
                AufgaabeParamScrollToTop.StatScrollHandleVersaz,
                new Vektor2DInt(AusScnapscusScrollScrollHandleFläce.Grööse.A, 6));

            var KlikZiilFäce = SictGbsWindowZuusctand.FläceProjeziirtAufGbsAst(FürScrolKlikFläce, AusScnapscusScrollScrollHandleGrenze);

            AufgaabeParamZerleegungErgeebnis.FüügeAn(AufgaabeParamAndere.KonstruktMausPfaad(
                                                         SictAufgaabeParamMausPfaad.KonstruktMausKlikLinx(KlikZiilFäce)));

            return(AufgaabeParamZerleegungErgeebnis);
        }
예제 #20
0
        public SictNaacNuzerMeldungZuEveOnline(
            Int64 Ident,
            Int64?BeginZait = null,
            OrtogoonInt AktiivLezteInWindowClientFläce                = default(OrtogoonInt),
            SictNaacNuzerMeldungZuEveOnlineSeverity?Severity          = null,
            SictNaacNuzerMeldungZuEveOnlineCause GeneralCause         = null,
            SictNaacNuzerMeldungZuEveOnlineCause UndockPreventedCause = null,
            SictNaacNuzerMeldungZuEveOnlineCause DockForcedCause      = null)
        {
            this.Ident = Ident;

            this.BeginZait       = BeginZait;
            this.AktiivLezteZait = BeginZait;

            this.AktiivLezteInWindowClientFläce = AktiivLezteInWindowClientFläce;

            this.Severity = Severity;

            this.GeneralCause = GeneralCause;

            this.UndockPreventedCause = UndockPreventedCause;
            this.DockForcedCause      = DockForcedCause;
        }
예제 #21
0
        SictNaacProcessWirkungTailMausErgeebnis MausWirkungFüüreAus(
            SictVorsclaagNaacProcessWirkung Wirkung,
            int ZiilFläceRandScrankeAkzeptanz,
            int ZiilFläceRandScrankeZuufal)
        {
            if (null == Wirkung)
            {
                return(null);
            }

            var WirkungZwekListeKomponente = Wirkung.WirkungZwekListeKomponente;

            {
                //	Temp Verzwaigung für Debug Breakpoint

                if (null != WirkungZwekListeKomponente)
                {
                    if (!WirkungZwekListeKomponente.Any((ZwekKomponente) => ZwekKomponente.ToLower().Contains("create")))
                    {
                    }
                }
            }

            var MausPfaadListeWeegpunktFläceAbhängigVonGbs = Wirkung.MausPfaadListeWeegpunktFläce;
            var MausPfaadMengeFläceZuMaideAbhängigVonGbs   = Wirkung.MausPfaadMengeFläceZuMaide;

            var MausPfaadTasteLinksAin = Wirkung.MausPfaadTasteLinksAin;
            var MausPfaadTasteRectsAin = Wirkung.MausPfaadTasteRectsAin;

            var Ergeebnis = new SictNaacProcessWirkungTailMausErgeebnis();

            if (!(true == MausPfaadTasteLinksAin) && !(true == MausPfaadTasteRectsAin) &&
                null == MausPfaadListeWeegpunktFläceAbhängigVonGbs)
            {
                //	Kaine Wirkung durc Maus angefordert
                Ergeebnis.Erfolg = true;
                return(Ergeebnis);
            }

            if (null == MausPfaadListeWeegpunktFläceAbhängigVonGbs)
            {
                return(Ergeebnis);
            }

            var PfaadEnthaltMeerereWeegpunkt = 1 < MausPfaadListeWeegpunktFläceAbhängigVonGbs.Length;

            var ProcessId = GbsFürZiilprozesWaalWindowProzesId();

            var ZiilWindowHandle = GbsAingaabeWaalZiilProcessMainWindowHandle;

            Bib3.Windows.User32.RECT ZiilWindowClientRect;
            Bib3.Windows.User32.GetClientRect(ZiilWindowHandle, out ZiilWindowClientRect);

            /*
             * 2015.03.03
             *
             *      var EveOnlnSensoWurzelSuuceLezteTask = this.EveOnlnSensoWurzelSuuceLezteTask;
             *
             *      var EveOnlnSensoWurzelSuuceLezteTaskTask = EveOnlnSensoWurzelSuuceLezteTask.Wert;
             *
             *      if (!EveOnlnSensoWurzelSuuceLezteTaskTask.IsCompleted)
             *      {
             *              return Ergeebnis;
             *      }
             *
             *      var GbsSuuceWurzel = EveOnlnSensoWurzelSuuceLezteTaskTask.Result;
             * */

            var MengeFläceAbhängigVonGbsAst =
                Optimat.Glob.ListeErwaitertAlsArray(MausPfaadListeWeegpunktFläceAbhängigVonGbs, MausPfaadMengeFläceZuMaideAbhängigVonGbs);

            /*
             * 2015.03.03
             *
             *      var MengeFläceErgeebnis =
             *              Optimat.EveOnline.SictProzesAuswertZuusctand.ListeFläceBerecneAusGbs(
             *              MengeFläceAbhängigVonGbsAst,
             *              ProcessId,
             *              GbsSuuceWurzel);
             * */

            var MengeFläceErgeebnis =
                MengeFläceAbhängigVonGbsAst
                .SelectNullable((Fläce) => new KeyValuePair <InProcessGbsFläceRectekOrto, OrtogoonInt?>(
                                    Fläce, Fläce.FläceTailSctaatisc));

            var MausPfaadListeWeegpunktFläceErgeebnis =
                MausPfaadListeWeegpunktFläceAbhängigVonGbs
                .Select((FläceAbhängigVonGbs) => MengeFläceErgeebnis.FirstOrDefault((Kandidaat) => Kandidaat.Key == FläceAbhängigVonGbs).Value)
                .Select((FläceNulbar) => FläceNulbar ?? OrtogoonInt.Leer)
                .ToArray();

            var MausPfaadMengeFläceZuMaideErgeebnis =
                (null == MausPfaadMengeFläceZuMaideAbhängigVonGbs) ? null :
                MausPfaadMengeFläceZuMaideAbhängigVonGbs
                .Select((FläceAbhängigVonGbs) => MengeFläceErgeebnis.FirstOrDefault((Kandidaat) => Kandidaat.Key == FläceAbhängigVonGbs).Value)
                .Select((FläceNulbar) => FläceNulbar ?? OrtogoonInt.Leer)
                .ToArray();

            Ergeebnis.MausPfaadListeWeegpunktFläceErgeebnis = MausPfaadListeWeegpunktFläceErgeebnis;
            Ergeebnis.MausPfaadMengeFläceZuMaideErgeebnis   = MausPfaadMengeFläceZuMaideErgeebnis;

            var MausPfaadListeWeegpunktFläceMiinusFläceZuMaide =
                MausPfaadListeWeegpunktFläceErgeebnis
                .Select((WeegpunktFläce) =>
            {
                var MengeTailfläce = new OrtogoonInt[] { WeegpunktFläce };

                if (null != MausPfaadMengeFläceZuMaideErgeebnis)
                {
                    foreach (var FläceZuMaide in MausPfaadMengeFläceZuMaideErgeebnis)
                    {
                        if (null == FläceZuMaide)
                        {
                            continue;
                        }

                        MengeTailfläce =
                            Bib3.Glob.ArrayAusListeFeldGeflact(
                                MengeTailfläce
                                .Select((VorherFläce) =>
                        {
                            if (null == VorherFläce)
                            {
                                return(null);
                            }

                            return(Optimat.EveOnline.Extension.FläceMiinusFläce(VorherFläce, FläceZuMaide));
                        })
                                .Where((t) => null != t)
                                .ToArray());
                    }
                }

                return(MengeTailfläce);
            })
                .ToArray();

            var RandDiferenz = ZiilFläceRandScrankeZuufal - ZiilFläceRandScrankeAkzeptanz;

            var MausPfaadListeWeegpunktFläceMiinusFläceZuMaideMiinusRand =
                MausPfaadListeWeegpunktFläceMiinusFläceZuMaide
                .Select((MausPfaadWeegpunktFläceMiinusFläceZuMaide) =>
            {
                if (null == MausPfaadWeegpunktFläceMiinusFläceZuMaide)
                {
                    return(null);
                }

                return
                (MausPfaadWeegpunktFläceMiinusFläceZuMaide
                 .Where((Fläce) => null != Fläce)
                 .Select((Fläce) => Fläce.Vergröösert(
                             -ZiilFläceRandScrankeAkzeptanz * 2,
                             -ZiilFläceRandScrankeAkzeptanz * 2))
                 .Where((KandidaatFläce) => 0 < KandidaatFläce.Grööse.A && 0 < KandidaatFläce.Grööse.B)
                 .Select((Fläce) => Fläce.VergröösertBescrankt(-RandDiferenz, -RandDiferenz, 0, 0))
                 .ToArray());
            })
                .ToArray();

            var MausPfaadBeginMengeFläce = MausPfaadListeWeegpunktFläceMiinusFläceZuMaideMiinusRand.FirstOrDefault();

            var MausPfaadEndeMengeFläce =
                MausPfaadListeWeegpunktFläceMiinusFläceZuMaideMiinusRand.LastOrDefault();

            var MausPfaadBeginFläce =
                MausPfaadBeginMengeFläce.OrderByNullable((Fläce) => Fläce.Betraag()).LastOrDefaultNullable();

            var MausPfaadEndeFläce =
                MausPfaadEndeMengeFläce.OrderByNullable((Fläce) => Fläce.Betraag()).LastOrDefaultNullable();

            if (null == MausPfaadBeginFläce ||
                (null == MausPfaadEndeFläce && PfaadEnthaltMeerereWeegpunkt))
            {
                return(Ergeebnis);
            }

            var MausPfaadBeginPunktNulbar = ZuufäligePunktAusFläce(MausPfaadBeginFläce);
            var MausPfaadEndePunktNulbar  = ZuufäligePunktAusFläce(MausPfaadEndeFläce);

            if (!PfaadEnthaltMeerereWeegpunkt)
            {
                MausPfaadEndePunktNulbar = MausPfaadBeginPunktNulbar;
            }

            Ergeebnis.MausPfaadBeginPunkt = MausPfaadBeginPunktNulbar;
            Ergeebnis.MausPfaadEndePunkt  = MausPfaadEndePunktNulbar;

            if (!MausPfaadBeginPunktNulbar.HasValue ||
                !MausPfaadEndePunktNulbar.HasValue)
            {
                return(Ergeebnis);
            }

            var MausPfaadBeginPunkt = MausPfaadBeginPunktNulbar.Value;
            var MausPfaadEndePunkt  = MausPfaadEndePunktNulbar.Value;

            var MengePunktZuPrüüfeAufScnitMitZiilWindowClientRect = new List <Vektor2DInt>();

            MengePunktZuPrüüfeAufScnitMitZiilWindowClientRect.Add(MausPfaadBeginPunkt);
            MengePunktZuPrüüfeAufScnitMitZiilWindowClientRect.Add(MausPfaadEndePunkt);

            var MausPfaadInZiilWindowClientRect =
                MengePunktZuPrüüfeAufScnitMitZiilWindowClientRect
                .All((MausPfaadWeegpunkt) =>
                     0 <= MausPfaadWeegpunkt.A &&
                     0 <= MausPfaadWeegpunkt.B &&
                     MausPfaadWeegpunkt.A <= ZiilWindowClientRect.Width &&
                     MausPfaadWeegpunkt.B <= ZiilWindowClientRect.Height);

            Ergeebnis.MausPfaadInZiilWindowClientRect = MausPfaadInZiilWindowClientRect;

            if (!MausPfaadInZiilWindowClientRect)
            {
                return(Ergeebnis);
            }

            var MausPfaadBeginPunktAlsWindowsPoint = AlsSystemWindowsPoint(MausPfaadBeginPunkt);
            var MausPfaadEndePunktAlsWindowsPoint  = AlsSystemWindowsPoint(MausPfaadEndePunkt);

            if (PfaadEnthaltMeerereWeegpunkt &&
                (true == MausPfaadTasteLinksAin || true == MausPfaadTasteRectsAin))
            {
                Bib3.Windows.User32.DragGebascdelsMitSleep20140211(
                    ZiilWindowHandle,
                    MausPfaadBeginPunktAlsWindowsPoint,
                    MausPfaadEndePunktAlsWindowsPoint,
                    true == MausPfaadTasteRectsAin,
                    MouseWartezaitMili);
            }
            else
            {
                if (true == MausPfaadTasteLinksAin)
                {
                    WirkungMouseClick(ZiilWindowHandle, (int)MausPfaadEndePunkt.A, (int)MausPfaadEndePunkt.B, false);
                }
                else
                {
                    if (true == MausPfaadTasteRectsAin)
                    {
                        WirkungMouseClick(ZiilWindowHandle, (int)MausPfaadEndePunkt.A, (int)MausPfaadEndePunkt.B, true);
                    }
                    else
                    {
                        WirkungMouseMove(ZiilWindowHandle, (int)MausPfaadEndePunkt.A, (int)MausPfaadEndePunkt.B);
                    }
                }
            }

            Ergeebnis.Erfolg = true;

            return(Ergeebnis);
        }
예제 #22
0
        void Aktualisiire(
            Int64 Zait,
            VonSensor.Window ScnapscusWindow,
            SictGbsAgregatioonAusTransitionInfo ZuusazInfo)
        {
            GbsElement HeaderFläceOoneSctoierelement = null;

            try
            {
                var VorherScnapscusWindow = this.ScnapscusWindowLezte;

                {
                    var ScnapscusListHaupt = (null == ScnapscusWindow) ? null : ScnapscusWindow.ListHaupt();

                    var ListHaupt = this.ListHaupt;

                    GbsListGroupedZuusctand.ObjektKonstruktOderAingangScnapscus(
                        ref ListHaupt,
                        Zait,
                        ScnapscusListHaupt,
                        ZuusazInfo);

                    this.ListHaupt = ListHaupt;
                }

                if (null != ScnapscusWindow)
                {
                    var ScnapscusWindowInGbsFläce = ScnapscusWindow.InGbsFläce;

                    {
                        if (null != VorherScnapscusWindow)
                        {
                            if (1 < Optimat.EveOnline.Extension.DiferenzLaageUndGrööseSume(VorherScnapscusWindow.InGbsFläce, ScnapscusWindow.InGbsFläce))
                            {
                                //	Laage des Window wurde geändert

                                HeaderButtonMinimizeSictungLezte = null;
                                HeaderButtonCloseSictungLezte    = null;
                            }
                        }

                        if (null != ScnapscusWindowInGbsFläce)
                        {
                            //	Berecnung HeaderFläceOoneSctoierelement

                            var AnnaameHeaderFläceHöhe = 10;

                            var AnnaameHeaderSctoierelementLinxBraite = 30;

                            //	Scon bis zu viir Sctoierelemente auf recter Saite beobactet worden (Inventory)
                            var AnnaameHeaderSctoierelementReczBraite = 68;

                            HeaderFläceOoneSctoierelement =
                                ScnapscusWindow.SictFläceGesezt(
                                    OrtogoonInt.AusPunktZentrumUndGrööse(
                                        ScnapscusWindowInGbsFläce.ZentrumLaage +
                                        new Vektor2DInt(0, (AnnaameHeaderFläceHöhe - ScnapscusWindowInGbsFläce.Grööse.B) / 2),
                                        new Vektor2DInt(
                                            ScnapscusWindowInGbsFläce.Grööse.A -
                                            AnnaameHeaderSctoierelementLinxBraite - AnnaameHeaderSctoierelementReczBraite,
                                            AnnaameHeaderFläceHöhe)));
                        }

                        var ScnapscusWindowHeaderButtonMinimize = ScnapscusWindow.HeaderButtonMinimize;
                        var ScnapscusWindowHeaderButtonClose    = ScnapscusWindow.HeaderButtonClose;

                        if (null != ScnapscusWindowHeaderButtonMinimize)
                        {
                            HeaderButtonMinimizeSictungLezte = ScnapscusWindowHeaderButtonMinimize;
                        }

                        if (null != ScnapscusWindowHeaderButtonClose)
                        {
                            HeaderButtonCloseSictungLezte = ScnapscusWindowHeaderButtonClose;
                        }
                    }
                }
            }
            finally
            {
                this.HeaderFläceOoneSctoierelement = HeaderFläceOoneSctoierelement;
            }
        }
예제 #23
0
 static public SictVorsclaagNaacProcessWirkung VorsclaagWirkungMouseMove(
     Int64?Ident,
     OrtogoonInt MausZiilFläce)
 {
     return(VorsclaagWirkungMouseMove(Ident, new InProcessGbsFläceRectekOrto(MausZiilFläce)));
 }
예제 #24
0
 static public SictVorsclaagNaacProcessWirkung VorsclaagWirkungMouseMove(
     OrtogoonInt MausZiilFläce)
 {
     return(VorsclaagWirkungMouseMove(null, MausZiilFläce));
 }
예제 #25
0
 public InProcessGbsFläceRectekOrto(
     OrtogoonInt FläceTailSctaatisc)
 {
     this.FläceTailSctaatisc = FläceTailSctaatisc;
 }
예제 #26
0
        public void Aktualisiire(
            SictAutomatZuusctand AutomaatZuusctand,
            VonSensorikMesung AusScnapscusAuswertungZuusctand)
        {
            if (null == AutomaatZuusctand)
            {
                return;
            }

            var AgregatioonAusTransitionInfo = this.AgregatioonAusTransitionInfo;

            var ZaitMili = AutomaatZuusctand.NuzerZaitMili;

            var OverviewUndTarget = AutomaatZuusctand.OverviewUndTarget;

            /*
             * 2015.03.12
             *
             * Ersaz durc ToCustomBotSnapshot
             *      var GbsBaum = AutomaatZuusctand.VonNuzerMeldungZuusctandTailGbsBaum;
             * */

            var GbsBaum = AutomaatZuusctand.ListeScnapscusLezteAuswertungErgeebnisNaacSimu;

            var MengeWindow = this.MengeWindow;
            var ListeAbovemainMessageAuswertMitZait = this.ListeAbovemainMessageAuswertMitZait;

            var ScnapscusWindowOverview = (null == AusScnapscusAuswertungZuusctand) ? null : AusScnapscusAuswertungZuusctand.WindowOverview;

            var NeocomClockZaitKalenderModuloTaagStringUndMinMax = (null == AusScnapscusAuswertungZuusctand) ? null :
                                                                   AusScnapscusAuswertungZuusctand.NeocomClockZaitKalenderModuloTaagMinMax;

            var ScnapscusWindowOverviewZaileInputFookusExklusiiv = (null == ScnapscusWindowOverview) ? null : ScnapscusWindowOverview.ZaileMitInputFookusExklusiiv();

            var ScnapscusMengeWindow = (null == AusScnapscusAuswertungZuusctand) ? null :
                                       AusScnapscusAuswertungZuusctand.MengeWindowBerecne();

            var ScnapscusMengeWindowSictbar =
                ExtractFromOldAssembly.Bib3.Extension.WhereNullable(ScnapscusMengeWindow, (Kandidaat) => null == Kandidaat ? false : (true == Kandidaat.Sictbar))
                .ToArrayNullable();

            var ScnapscusMengeMenu = (null == AusScnapscusAuswertungZuusctand) ? null : AusScnapscusAuswertungZuusctand.MengeMenu;

            if (null == AgregatioonAusTransitionInfo)
            {
                this.AgregatioonAusTransitionInfo = AgregatioonAusTransitionInfo = new SictGbsAgregatioonAusTransitionInfo();
            }

            AgregatioonAusTransitionInfo.Agregiire(AutomaatZuusctand);

            if (null == MengeWindow)
            {
                this.MengeWindow = MengeWindow = new List <SictGbsWindowZuusctand>();
            }

            if (NeocomClockZaitKalenderModuloTaagStringUndMinMax.HasValue)
            {
                this.NeocomClockZaitModuloTaagMinMax = NeocomClockZaitKalenderModuloTaagStringUndMinMax.Value;
            }

            var ListeAusGbsAbovemainMessageMitZait = AutomaatZuusctand.ListeAusGbsAbovemainMessageMitZait();

            var ListeAusGbsAbovemainMessageMitZaitLezte =
                (null == ListeAusGbsAbovemainMessageMitZait) ? null : ListeAusGbsAbovemainMessageMitZait.LastOrDefault();

            if (null != AusScnapscusAuswertungZuusctand)
            {
                if (null != AusScnapscusAuswertungZuusctand.InfoPanelLocationInfo)
                {
                    InfoPanelLocationInfoSictbarLezteZaitMili = ZaitMili;
                }

                if (null != AusScnapscusAuswertungZuusctand.InfoPanelRoute)
                {
                    InfoPanelRouteSictbarLezteZaitMili = ZaitMili;
                }

                if (null != AusScnapscusAuswertungZuusctand.InfoPanelMissions)
                {
                    InfoPanelMissionsSictbarLezteZaitMili = ZaitMili;
                }
            }

            SictGbsWindowZuusctand.ZuZaitAingangMengeObjektScnapscus(
                ZaitMili,
                ScnapscusMengeWindowSictbar,
                MengeWindow,
                false,
                AgregatioonAusTransitionInfo);

            {
                //	Window entferne welce zu lange nit meer geöfnet sind.
                MengeWindow.RemoveAll((Kandidaat) => !Kandidaat.InLezteScnapscusSictbar());
            }

            {
                var MengeWindowGrupe = MengeWindow.GroupBy((Kandidaat) => Kandidaat.GbsAstHerkunftAdrese).ToArray();

                if (MengeWindowGrupe.Any((Grupe) => 1 < Grupe.Count()))
                {
                    //	Temp für Debug Verzwaigung
                }
            }

            {
                //	Berecnung	ListeAbovemainMessageAuswertMitZait

                if (null != ListeAusGbsAbovemainMessageMitZaitLezte)
                {
                    var ListeAusGbsAbovemainMessageLezte = ListeAusGbsAbovemainMessageMitZaitLezte.Wert;

                    var ListeAusGbsAbovemainMessageLezteText = ListeAusGbsAbovemainMessageLezte.LabelText;

                    if (null != ListeAusGbsAbovemainMessageLezteText)
                    {
                        if (null != ListeAusGbsAbovemainMessageLezte)
                        {
                            if (null == ListeAbovemainMessageAuswertMitZait)
                            {
                                this.ListeAbovemainMessageAuswertMitZait = ListeAbovemainMessageAuswertMitZait =
                                    new List <SictVerlaufBeginUndEndeRef <SictMessageStringAuswert> >();
                            }

                            SictVerlaufBeginUndEndeRef <SictMessageStringAuswert> AbovemainMessageAuswertMitZait =
                                ListeAbovemainMessageAuswertMitZait
                                .LastOrDefault((Kandidaat) => Kandidaat.BeginZait == ListeAusGbsAbovemainMessageMitZaitLezte.BeginZait);

                            if (null == AbovemainMessageAuswertMitZait)
                            {
                                var AbovemainMessageAuswert = new SictMessageStringAuswert(ListeAusGbsAbovemainMessageLezteText);

                                AbovemainMessageAuswertMitZait = new SictVerlaufBeginUndEndeRef <SictMessageStringAuswert>(
                                    ListeAusGbsAbovemainMessageMitZaitLezte.BeginZait,
                                    ListeAusGbsAbovemainMessageMitZaitLezte.EndeZait,
                                    AbovemainMessageAuswert);

                                AbovemainMessageAuswert.Berecne();

                                ListeAbovemainMessageAuswertMitZait.Add(AbovemainMessageAuswertMitZait);

                                if (AbovemainMessageAuswert.ClusterShutdownZaitDistanz.HasValue)
                                {
                                    AbovemainMessageClusterShutdownLezte = AbovemainMessageAuswertMitZait;
                                }
                            }
                        }
                    }
                }
            }

            ListeAbovemainMessageDronesLezteAuswertMitZait =
                ListeAbovemainMessageAuswertMitZait
                .LastOrDefaultNullable((Kandidaat) =>
                                       null == Kandidaat.Wert ? false :
                                       (Kandidaat.Wert.DroneBandwithAvailableMili.HasValue ||
                                        Kandidaat.Wert.DroneCommandRange.HasValue ||
                                        Kandidaat.Wert.DroneControlCountScrankeMax.HasValue));

            ListeAbovemainMessageDronesLezteAlter =
                ZaitMili - (null == ListeAbovemainMessageDronesLezteAuswertMitZait ? (Int64?)null : (ListeAbovemainMessageDronesLezteAuswertMitZait.EndeZait ?? ZaitMili));

            if (null != ListeAbovemainMessageAuswertMitZait)
            {
                foreach (var AbovemainMessageAuswertMitZait in ListeAbovemainMessageAuswertMitZait.Reversed().Take(4))
                {
                    if (AbovemainMessageAuswertMitZait.EndeZait.HasValue)
                    {
                        continue;
                    }

                    var AbovemainMessageMitZait =
                        ExtractFromOldAssembly.Bib3.Extension.FirstOrDefaultNullable(
                            ListeAusGbsAbovemainMessageMitZait,
                            (Kandidaat) => Kandidaat.BeginZait == AbovemainMessageAuswertMitZait.BeginZait);

                    if (null == AbovemainMessageMitZait)
                    {
                        AbovemainMessageAuswertMitZait.EndeZait = ZaitMili;
                    }
                    else
                    {
                        AbovemainMessageAuswertMitZait.EndeZait = AbovemainMessageMitZait.EndeZait;
                    }
                }

                {
                    //	Naacricte welce älter sind als Viir minuute entferne

                    var ListeAbovemainMessageAuswertMitZaitZuErhalteZaitScranke = ZaitMili - 1000 * 60 * 4;

                    ListeAbovemainMessageAuswertMitZait
                    .RemoveAll((Kandidaat) => Kandidaat.BeginZait < ListeAbovemainMessageAuswertMitZaitZuErhalteZaitScranke);
                }
            }

            {
                //	Berecnung ListeGbsMenu

                //	Menge Menu werd geordnet für den Fal das in aine Scnapscus meerere Menu auftauce
                //	2014.02.27	Beobactung: lezte Menu erhält 0=InGbsZIndex -> noieste isc am waiteste vorne (okludiirt andere)

                var ScnapscusListeMenu =
                    (null == ScnapscusMengeMenu) ? null :
                    ScnapscusMengeMenu

                    /*
                     * 2015.09.01
                     * Änderung InGbsBaumAstIndex: Übernaame von noie Sensor InTreeIndex: Element occludes other Elements with lower Value.
                     *
                     * .OrderByDescending((ScnapscusMenu) => ScnapscusMenu.InGbsBaumAstIndex ?? -1)
                     */
                    .OrderBy((ScnapscusMenu) => ScnapscusMenu.InGbsBaumAstIndex ?? -1)
                    .ToArray();

                var ScnapscusListeMenuFrüüheste =
                    ExtractFromOldAssembly.Bib3.Extension.FirstOrDefaultNullable(ScnapscusListeMenu);

                var ScnapscusListeMenuFrüühesteListeEntry =
                    (null == ScnapscusListeMenuFrüüheste) ? null :
                    ScnapscusListeMenuFrüüheste.ListeEntry;

                var MenuKaskaadeLezte = ExtractFromOldAssembly.Bib3.Extension.LastOrDefaultNullable(ListeMenuKaskaade);

                if (null == ScnapscusListeMenuFrüühesteListeEntry)
                {
                    if (null != MenuKaskaadeLezte)
                    {
                        MenuKaskaadeLezte.AingangScnapscusLeer(ZaitMili);
                    }

                    MenuKaskaadeLezte = null;
                }
                else
                {
                    GbsElement MenuWurzelAnnaameInitiaal = null;

                    var MengeAufgaabeZuusctand = AutomaatZuusctand.MengeAufgaabeZuusctand;

                    var ScritLezteWirkungMengeAufgaabePfaadZuBlatMitGrupePrioNaame =
                        AutomaatZuusctand.ScritLezteWirkungMengeAufgaabePfaadZuBlatMitGrupePrioNaame
                        .ToArrayNullable();

                    if (null != ScritLezteWirkungMengeAufgaabePfaadZuBlatMitGrupePrioNaame)
                    {
                        foreach (var ScritLezteWirkungAufgaabePfaadZuBlatMitGrupePrioNaame in ScritLezteWirkungMengeAufgaabePfaadZuBlatMitGrupePrioNaame)
                        {
                            if (null == ScritLezteWirkungAufgaabePfaadZuBlatMitGrupePrioNaame.Key)
                            {
                                continue;
                            }

                            foreach (var AufgaabeAst in ScritLezteWirkungAufgaabePfaadZuBlatMitGrupePrioNaame.Key)
                            {
                                var AufgaabeAstAufgaabeParam = AufgaabeAst.AufgaabeParam as AufgaabeParamAndere;

                                if (null == AufgaabeAstAufgaabeParam)
                                {
                                    continue;
                                }

                                var AufgaabeAstAufgaabeParamMenuWurzelGbsObjekt = AufgaabeAstAufgaabeParam.MenuWurzelGbsObjekt;

                                if (null == AufgaabeAstAufgaabeParamMenuWurzelGbsObjekt)
                                {
                                    continue;
                                }

                                var AufgaabeAstAufgaabeParamMenuWurzelGbsObjektIdentNulbar = (Int64?)AufgaabeAstAufgaabeParamMenuWurzelGbsObjekt.Ident;

                                if (!AufgaabeAstAufgaabeParamMenuWurzelGbsObjektIdentNulbar.HasValue)
                                {
                                    continue;
                                }

                                var AufgaabeAstAufgaabeParamMenuWurzelGbsObjektIdent = AufgaabeAstAufgaabeParamMenuWurzelGbsObjektIdentNulbar.Value;

                                var AufgaabeAstAufgaabeParamMenuWurzelGbsObjektFläce = AufgaabeAstAufgaabeParamMenuWurzelGbsObjekt.InGbsFläce;

                                if (null == AufgaabeAstAufgaabeParamMenuWurzelGbsObjektFläce)
                                {
                                    continue;
                                }

                                var AufgaabeAstAufgaabeParamMenuWurzelGbsObjektFläceVergröösertFürTestÜberscnaidung =
                                    AufgaabeAstAufgaabeParamMenuWurzelGbsObjektFläce.Vergröösert(40, 10);

                                var ScnapscusAufgaabeMenuWurzelTarget      = AufgaabeAstAufgaabeParamMenuWurzelGbsObjekt as ShipUiTarget;
                                var ScnapscusAufgaabeMenuWurzelOverviewRow =
                                    (GbsElement)(AufgaabeAstAufgaabeParamMenuWurzelGbsObjekt as VonSensor.OverviewZaile);

                                bool AnnaameMenuPasendZuAusAufgaabeMenuWurzel = true;

                                var ScnapscusLezteMenuWurzelGbsObjektTarget =
                                    AusScnapscusAuswertungZuusctand.TargetEnthaltendGbsAstBerecne(AufgaabeAstAufgaabeParamMenuWurzelGbsObjekt);

                                var ScnapscusLezteMenuWurzelGbsObjektOverviewRow = (null == ScnapscusWindowOverview) ? null :
                                                                                   ScnapscusWindowOverview.OverviewRowEnthaltendGbsAstBerecne(AufgaabeAstAufgaabeParamMenuWurzelGbsObjekt);

                                {
                                    /*
                                     * 2014.04.22	Beobactung Probleem:
                                     * In vorherige Scrit für OverviewZaile geöfnete Menu werd waiterverwendet als Menu welces für ain in Inventory angezaigte Objekt ersctelt werde solte.
                                     * In Folge werd der falsce Cargo Container Abandoned.
                                     *
                                     * Daher Ainfüürung zuusäzlice Bedingung:
                                     * Menu früheste Fläce mus überscnaide mit MenuWurzelGbsObjektAbbild.Fläce
                                     * */

                                    //	Bedingung: Fläce von ScnapscusAufgaabeMenuWurzelTarget und Menu müsen sic scnaide

                                    if (OrtogoonInt.Scnitfläce(
                                            AufgaabeAstAufgaabeParamMenuWurzelGbsObjektFläceVergröösertFürTestÜberscnaidung,
                                            ScnapscusListeMenuFrüüheste.InGbsFläce).IsLeer)
                                    {
                                        AnnaameMenuPasendZuAusAufgaabeMenuWurzel = false;
                                    }
                                }

                                {
                                    /*
                                     * 2014.04.22	Beobactung Probleem:
                                     * In vorherige Scrit für OverviewZaile geöfnete Menu werd waiterverwendet als Menu welces für ain in Inventory angezaigte Objekt ersctelt werde solte.
                                     * In Folge werd der falsce Cargo Container Abandoned.
                                     *
                                     * Daher 2014.04.29 Ainfüürung zuusäzlice Bedingung:
                                     * Fals MenuWurzelGbsObjekt in aine Window enthalte isc mus diises das vorderste Window sain.
                                     * */

                                    if (null == GbsBaum ||
                                        null == MengeWindow)
                                    {
                                        AnnaameMenuPasendZuAusAufgaabeMenuWurzel = false;
                                    }
                                    else
                                    {
                                        SictGbsWindowZuusctand MenuWurzelGbsObjektWindow = null;

                                        foreach (var KandidaatGbsWindow in MengeWindow)
                                        {
                                            var GbsWindowHerkunftAdrese = KandidaatGbsWindow.GbsAstHerkunftAdrese;

                                            if (!GbsWindowHerkunftAdrese.HasValue)
                                            {
                                                continue;
                                            }

                                            var GbsWindowAst = GbsBaum.SuuceFlacMengeGbsAstFrühesteMitIdent(GbsWindowHerkunftAdrese.Value);

                                            if (null == GbsWindowAst)
                                            {
                                                continue;
                                            }

                                            if (null != GbsWindowAst.SuuceFlacMengeGbsAstFrühesteMitIdent(AufgaabeAstAufgaabeParamMenuWurzelGbsObjektIdent))
                                            {
                                                MenuWurzelGbsObjektWindow = KandidaatGbsWindow;
                                            }
                                        }

                                        if (null != MenuWurzelGbsObjektWindow)
                                        {
                                            /*
                                             * 2015.09.01
                                             * Änderung InGbsBaumAstIndex: Übernaame von noie Sensor InTreeIndex: Element occludes other Elements with lower Value.
                                             *                                              if (MengeWindow.Any((GbsWindow) => GbsWindow.ZIndex.HasValue && GbsWindow.ZIndex < (MenuWurzelGbsObjektWindow.ZIndex ?? int.MaxValue)))
                                             */
                                            if (MengeWindow.Any((GbsWindow) => GbsWindow.ZIndex.HasValue && GbsWindow.ZIndex > (MenuWurzelGbsObjektWindow.ZIndex ?? int.MaxValue)))
                                            {
                                                //	Ain anderes Window befindet sic waiter vorne als das Window welces MenuWurzelGbsObjekt enthalt.
                                                AnnaameMenuPasendZuAusAufgaabeMenuWurzel = false;
                                            }
                                        }
                                    }
                                }

                                if (null != ScnapscusAufgaabeMenuWurzelTarget)
                                {
                                    if (null == ScnapscusLezteMenuWurzelGbsObjektTarget)
                                    {
                                        AnnaameMenuPasendZuAusAufgaabeMenuWurzel = false;
                                    }
                                    else
                                    {
                                        if (null == ScnapscusAufgaabeMenuWurzelTarget.InGbsFläce ||
                                            null == ScnapscusLezteMenuWurzelGbsObjektTarget.InGbsFläce)
                                        {
                                            AnnaameMenuPasendZuAusAufgaabeMenuWurzel = false;
                                        }
                                        else
                                        {
                                            var BeweegungSctreke =
                                                ScnapscusLezteMenuWurzelGbsObjektTarget.InGbsFläce.ZentrumLaage -
                                                ScnapscusAufgaabeMenuWurzelTarget.InGbsFläce.ZentrumLaage;

                                            if (!(BeweegungSctreke.Betraag < 4))
                                            {
                                                //	Target solte zwisce deen zwai Scnapscus nit beweegt haabe.
                                                AnnaameMenuPasendZuAusAufgaabeMenuWurzel = false;
                                            }
                                        }

                                        var KandidaatMenuEntryIndikatorTarget = ScnapscusListeMenuFrüühesteListeEntry.MenuEntryTargetUnLock();

                                        if (null == KandidaatMenuEntryIndikatorTarget)
                                        {
                                            AnnaameMenuPasendZuAusAufgaabeMenuWurzel = false;
                                        }
                                    }
                                }

                                if (null != ScnapscusAufgaabeMenuWurzelOverviewRow)
                                {
                                    if (null == ScnapscusLezteMenuWurzelGbsObjektOverviewRow)
                                    {
                                        AnnaameMenuPasendZuAusAufgaabeMenuWurzel = false;
                                    }
                                    else
                                    {
                                        if (!(ObjektMitIdentInt64.Identisc(ScnapscusLezteMenuWurzelGbsObjektOverviewRow, ScnapscusWindowOverviewZaileInputFookusExklusiiv)))
                                        {
                                            AnnaameMenuPasendZuAusAufgaabeMenuWurzel = false;
                                        }
                                    }
                                }

                                if (!AnnaameMenuPasendZuAusAufgaabeMenuWurzel)
                                {
                                    continue;
                                }

                                MenuWurzelAnnaameInitiaal = AufgaabeAstAufgaabeParamMenuWurzelGbsObjekt;
                            }
                        }
                    }

                    Action MenuKaskaadeKonstrukt = delegate()
                    {
                        MenuKaskaadeLezte = new SictGbsMenuKaskaadeZuusctand(
                            ZaitMili,
                            ScritLezteWirkungMengeAufgaabePfaadZuBlatMitGrupePrioNaame,
                            MenuWurzelAnnaameInitiaal,
                            ScnapscusListeMenu);
                        ListeMenuKaskaade.Enqueue(MenuKaskaadeLezte);
                    };

                    if (null == MenuKaskaadeLezte)
                    {
                        /*
                         * 2015.01.16
                         *
                         * MenuKaskaadeLezte = new SictGbsMenuKaskaadeZuusctand(ZaitMili, MenuWurzelAnnaameInitiaal, ScnapscusListeMenu);
                         * ListeMenuKaskaade.Enqueue(MenuKaskaadeLezte);
                         * */
                        MenuKaskaadeKonstrukt();
                    }
                    else
                    {
                        if (!MenuKaskaadeLezte.AingangScnapscus(ZaitMili, ScnapscusListeMenu))
                        {
                            /*
                             * 2015.01.16
                             *
                             * MenuKaskaadeLezte = new SictGbsMenuKaskaadeZuusctand(ZaitMili, MenuWurzelAnnaameInitiaal, ScnapscusListeMenu);
                             * ListeMenuKaskaade.Enqueue(MenuKaskaadeLezte);
                             * */
                            MenuKaskaadeKonstrukt();
                        }
                    }
                }

                ListeMenuKaskaade.ListeKürzeBegin(30);

                var ListeMenu =
                    (null == MenuKaskaadeLezte) ? null :
                    MenuKaskaadeLezte.ListeMenu;

                var AusButtonListSurroundingsMenu =
                    ExtractFromOldAssembly.Bib3.Extension.FirstOrDefaultNullable(
                        ListeMenu, ButtonListSurroundingsMenuPrädikaatTailSctaatisc);

                if (null != AusButtonListSurroundingsMenu)
                {
                    if (1 < AusButtonListSurroundingsMenu.ListeScnapscusZuZaitAingangBisherAnzaal)
                    {
                        //	Übernaame ersct bai meer als ain Scnapscus da eventuel in früühescte Scnapscus noc nit ale Entry enthalte
                        AusButtonListSurroundingsMenuLezteMitBeginZait = AusButtonListSurroundingsMenu.SictWertMitZaitBerecneFürBeginZait <SictGbsMenuZuusctand>();
                    }
                }
            }
        }
예제 #27
0
        static public IEnumerable <SictAufgaabeParam> GbsAstOklusioonVermaidungBerecne(
            SictAufgaabeParamGbsAstOklusioonVermaidung OklusioonVermaidungParam,
            IEnumerable <SictGbsAstOklusioonInfo> MengeKandidaatOklusioon,
            IEnumerable <SictGbsAstOklusioonInfo> MengeKandidaatOklusioonZuErhalte,
            GbsElement GbsBaum,
            out IEnumerable <SictFläceRectekOrtoAbhängigVonGbsAst> MengeFläceZuMaide,
            out IEnumerable <OrtogoonInt> NaacOklusioonRestMengeFläce)
        {
            MengeFläceZuMaide = null;

            NaacOklusioonRestMengeFläce = null;

            if (null == OklusioonVermaidungParam)
            {
                return(null);
            }

            var OklusioonVermaidungParamGbsElement = OklusioonVermaidungParam.GbsAst;

            if (null == OklusioonVermaidungParamGbsElement)
            {
                return(null);
            }

            var OklusioonVermaidungParamGbsAstFläce = OklusioonVermaidungParamGbsElement.InGbsFläce;

            if (null == OklusioonVermaidungParamGbsAstFläce)
            {
                return(null);
            }

            GbsElement OklusioonVermaidungParamGbsAst = null;

            NaacOklusioonRestMengeFläce = new OrtogoonInt[] { OklusioonVermaidungParamGbsAstFläce };

            if (null == GbsBaum)
            {
                return(null);
            }

            if (null == MengeKandidaatOklusioon)
            {
                return(null);
            }

            var OklusioonVermaidungParamGbsAstHerkunftAdrese = (Int64?)OklusioonVermaidungParamGbsElement.Ident;

            var InternMengeFläceZuMaide = new List <SictFläceRectekOrtoAbhängigVonGbsAst>();

            MengeFläceZuMaide = InternMengeFläceZuMaide;

            var ListeTailaufgaabe = new List <SictAufgaabeParam>();

            var WeegpunktGbsObjektFläceKwadraatSaitelänge = Math.Min(OklusioonVermaidungParamGbsAstFläce.Grööse.A, OklusioonVermaidungParamGbsAstFläce.Grööse.B);

            var ListeTailwaiseOklusioon = new List <SictGbsAstOklusioonKombi>();

            OrtogoonInt[] InsgesamtRestMengeTailfläce = new OrtogoonInt[] { OklusioonVermaidungParamGbsAstFläce };

            foreach (var KandidaatOklusioon in MengeKandidaatOklusioon)
            {
                if (null == KandidaatOklusioon)
                {
                    continue;
                }

                var KandidaatOklusioonGbsObjekt = KandidaatOklusioon.GbsElementScnapscus;

                if (null == KandidaatOklusioonGbsObjekt)
                {
                    continue;
                }

                var KandidaatOklusioonFläce = KandidaatOklusioonGbsObjekt.InGbsFläce;

                GbsElement KandidaatOklusioonGbsAst = null;

                var OklusioonVonO0DurcO1MööglicNaacBaumsctruktuur =
                    OklusioonVermaidungParamGbsAstHerkunftAdrese.HasValue ?
                    OklusioonVonO0DurcO1MööglicNaacBaumsctruktuurBerecne(
                        OklusioonVermaidungParamGbsAstHerkunftAdrese.Value,
                        KandidaatOklusioonGbsObjekt.Ident,
                        GbsBaum,
                        out OklusioonVermaidungParamGbsAst,
                        out KandidaatOklusioonGbsAst) :
                    null;

                if (false == OklusioonVonO0DurcO1MööglicNaacBaumsctruktuur)
                {
                    continue;
                }

                var KandidaatOklusioonFläceZuMaide = FläceRectekOrtoAbhängigVonGbsAstBerecne(KandidaatOklusioonGbsObjekt, GbsBaum);

                InternMengeFläceZuMaide.Add(KandidaatOklusioonFläceZuMaide);

                var WeegpunktFläceMiinusKandidaatOklusioonFläceMengeTailfläce =
                    Optimat.EveOnline.Extension.FläceMiinusFläce(OklusioonVermaidungParamGbsAstFläce, KandidaatOklusioonFläce);

                InsgesamtRestMengeTailfläce =
                    Bib3.Glob.ArrayAusListeFeldGeflact(InsgesamtRestMengeTailfläce.Select((Fläce) => Optimat.EveOnline.Extension.FläceMiinusFläce(Fläce, KandidaatOklusioonFläce)));

                if (null != WeegpunktFläceMiinusKandidaatOklusioonFläceMengeTailfläce)
                {
                    var RestfläceGröösteKwadraatSaitelänge =
                        AusMengeFläceBerecneGröösteKwadraatSaitelängeBerecne(WeegpunktFläceMiinusKandidaatOklusioonFläceMengeTailfläce);

                    /*
                     * 2014.04.29
                     * Korektur: ListeTailwaiseOkludiirendeUndRestKwadraatSaitelänge mus befült werde unabhängig davon ob das restlice grööste Kwadraat klainer geworde isc,
                     * sunsct scteet waiter unte kain Kandidaat zum entferne zur Verfüügung.
                     *
                     * if (!(WeegpunktGbsObjektFläceKwadraatSaitelänge - 0.1f < RestfläceGröösteKwadraatSaitelänge))
                     * */
                    var Scnitfläce = OrtogoonInt.Scnitfläce(KandidaatOklusioonFläce, OklusioonVermaidungParamGbsAstFläce);

                    if (!Scnitfläce.IsLeer)
                    {
                        //	grööste Kwadraat in übrige Tailfäce isc klainer, zumindest tailwaise Okludiirt.

                        ListeTailwaiseOklusioon.Add(
                            new SictGbsAstOklusioonKombi(
                                KandidaatOklusioon,
                                OklusioonVermaidungParamGbsElement,
                                Scnitfläce,
                                RestfläceGröösteKwadraatSaitelänge));
                    }
                }
            }

            NaacOklusioonRestMengeFläce = InsgesamtRestMengeTailfläce;

            var InsgesamtRestMengeTailfläceGröösteKwadraatSaitelänge =
                AusMengeFläceBerecneGröösteKwadraatSaitelängeBerecne(InsgesamtRestMengeTailfläce);

            if (!(OklusioonVermaidungParam.RestFläceKwadraatSaitenlängeScrankeMin <= InsgesamtRestMengeTailfläceGröösteKwadraatSaitelänge) &&
                0 < ListeTailwaiseOklusioon.Count)
            {
                //	übrige Tailfläce nit hinraicend groos, Oklusioon erfordert Reaktioon

                //	Versuuce Oklusioon zu beende

                var ListeTailwaiseOkludiirendeOrdnet =
                    ListeTailwaiseOklusioon
                    //	Window früüher scliise als andere (z.B. Menu oder Utilmenu oder Neocom) da andere oftmaals impliziit gesclose werden.
                    .OrderBy((Kandidaat) => null == Kandidaat?.Okludiirende?.Window ? 0 : 1)
                    .ThenBy((Kandidaat) => Kandidaat.NaacOklusioonRestFläceGröösteKwadraatSaitelänge)

                    /*
                     * 2015.09.01
                     * Änderung InGbsBaumAstIndex: Übernaame von noie Sensor InTreeIndex: Element occludes other Elements with lower Value.
                     * .ThenBy((Kandidaat) => Kandidaat?.Okludiirende?.GbsAstInBaumIndex)
                     */
                    .ThenByDescending((Kandidaat) => Kandidaat?.Okludiirende?.GbsAstInBaumIndex)
                    .ToArray();

                foreach (var TailwaiseOkludiirende in ListeTailwaiseOkludiirendeOrdnet)
                {
                    if (0 < ListeTailaufgaabe.Count)
                    {
                        //	!!!!	Temp für Performanz und üübersictlickait Berict:	nur aine Tailaufgaabe berecne
                        break;
                    }

                    if (null == TailwaiseOkludiirende)
                    {
                        continue;
                    }

                    var OkludiirendeZuErhalte =
                        (null == MengeKandidaatOklusioonZuErhalte) ? false :
                        MengeKandidaatOklusioonZuErhalte
                        .Any((KandidaatOklusioonZuErhalte) => KandidaatOklusioonZuErhalte.GbsElementIdent ==
                             TailwaiseOkludiirende.Okludiirende.GbsElementIdent);

                    if (OkludiirendeZuErhalte)
                    {
                        //	Okludiirende zu erhalte werde. z.B. Window Drones.
                        //	Versuuce Oklusioon zu beende oone Okludiirende zu Verberge: Z-Index von okludiirte waiter naac vorne bringe

                        SictGbsAstOklusioonInfo Okludiirte = null;

                        foreach (var KandidaatOkludiirte in MengeKandidaatOklusioon)
                        {
                            if (null == KandidaatOkludiirte)
                            {
                                continue;
                            }

                            var KandidaatOkludiirteGbsAstHerkunftAdrese = KandidaatOkludiirte.GbsElementIdent;

                            if (!KandidaatOkludiirteGbsAstHerkunftAdrese.HasValue)
                            {
                                continue;
                            }

                            if (KandidaatOkludiirteGbsAstHerkunftAdrese == OklusioonVermaidungParamGbsAstHerkunftAdrese)
                            {
                                Okludiirte = KandidaatOkludiirte;
                                break;
                            }

                            if (OklusioonVermaidungParamGbsAstHerkunftAdrese.HasValue)
                            {
                                var KandidaatOkludiirteGbsAst = GbsBaum.SuuceFlacMengeGbsAstFrühesteMitIdent(KandidaatOkludiirteGbsAstHerkunftAdrese.Value);

                                if (null == KandidaatOkludiirteGbsAst)
                                {
                                    continue;
                                }

                                if (null != KandidaatOkludiirteGbsAst.SuuceFlacMengeGbsAstFrühesteMitIdent(OklusioonVermaidungParamGbsAstHerkunftAdrese.Value))
                                {
                                    Okludiirte = KandidaatOkludiirte;
                                    break;
                                }
                            }
                        }

                        if (null != Okludiirte)
                        {
                            var OkludiirteWindow = Okludiirte.Window;

                            if (null != OkludiirteWindow)
                            {
                                ListeTailaufgaabe.Add(AufgaabeParamAndere.KonstruktWindowHooleNaacVorne(OkludiirteWindow));
                            }
                        }
                    }
                    else
                    {
                        var TailwaiseOkludiirendeGbsObjektScnapscus = TailwaiseOkludiirende?.Okludiirende?.GbsElementScnapscus;

                        //	ListeTailaufgaabe.Add(AufgaabeParamAndere.KonstruktGbsAstVerberge(TailwaiseOkludiirendeGbsObjektScnapscus));
                        ListeTailaufgaabe.Add(new AufgaabeParamGbsElementVerberge(
                                                  TailwaiseOkludiirendeGbsObjektScnapscus,
                                                  TailwaiseOkludiirende));
                    }
                }
            }

            return(ListeTailaufgaabe);
        }