Пример #1
0
        static public SictGbsAstInfoSictAuswert[] MengePfaadScnitmenge(
            this    SictGbsAstInfoSictAuswert AstPfaadUurscprung,
            IEnumerable <SictGbsAstInfoSictAuswert> MengePfaadBlat)
        {
            if (null == AstPfaadUurscprung || null == MengePfaadBlat)
            {
                return(null);
            }

            var MengePfaad =
                MengePfaadBlat.Select((PfaadBlat) =>
                                      Extension.SuuceFlacMengeAstMitPfaadFrüheste(AstPfaadUurscprung, (t) => t == PfaadBlat)).ToArray();

            if (Bib3.Extension.NullOderLeer(MengePfaad))
            {
                return(null);
            }

            var Pfaad0 = MengePfaad.FirstOrDefault();

            var TailPfaadÜberscnaidung =
                Pfaad0.TakeWhile((PfaadZwisceAst, InPfaadAstIndex) =>
                                 MengePfaad.All((AnderePfaad) => (null == AnderePfaad) ? false : (AnderePfaad.ElementAtOrDefault(InPfaadAstIndex) == PfaadZwisceAst)))
                .ToArray();

            return(TailPfaadÜberscnaidung);
        }
Пример #2
0
        static public SictVektor2DSingle?GrööseAusListeChildFürScpezUIRootBerecne(
            this    SictGbsAstInfoSictAuswert Ast)
        {
            if (null == Ast)
            {
                return(null);
            }

            var ListeChild = Ast.ListeChild;

            if (null != ListeChild)
            {
                foreach (var Child in ListeChild)
                {
                    var ChildGrööse = Child.Grööse;

                    if (ChildGrööse.HasValue)
                    {
                        if (UIRootVorgaabeGrööseListeName.Any((AstNaame) => string.Equals(AstNaame, Child.Name)))
                        {
                            return(ChildGrööse);
                        }
                    }
                }
            }

            return(null);
        }
Пример #3
0
        static public string LabelText(
            this    SictGbsAstInfoSictAuswert Ast)
        {
            if (null == Ast)
            {
                return(null);
            }

            return(Ast.SetText);
        }
Пример #4
0
        static public SictGbsAstInfoSictAuswert[] StaticListeChild(
            this    SictGbsAstInfoSictAuswert Ast)
        {
            if (null == Ast)
            {
                return(null);
            }

            return(Ast.ListeChild);
        }
Пример #5
0
 static public SictGbsAstInfoSictAuswert SuuceFlacMengeAstFrühesteMitHerkunftAdrese(
     this    SictGbsAstInfoSictAuswert Ast,
     Int64?HerkunftAdrese,
     int?TiifeScrankeMax = null,
     int?TiifeScrankeMin = null)
 {
     return(Extension.SuuceFlacMengeAstFrüheste(
                Ast,
                (Kandidaat) => Kandidaat.HerkunftAdrese == HerkunftAdrese,
                TiifeScrankeMax,
                TiifeScrankeMin));
 }
Пример #6
0
 static public IEnumerable <SictGbsAstInfoSictAuswert> BaumEnumFlacListeKnoote(
     this    SictGbsAstInfoSictAuswert SuuceWurzel,
     int?TiifeScrankeMax = null,
     int?TiifeScrankeMin = null)
 {
     return
         (Bib3.Extension.BaumEnumFlacListeKnoote(
              SuuceWurzel,
              (Ast) => null == Ast ? null : Ast.ListeChildBerecne().OfTypeNullable <SictGbsAstInfoSictAuswert>(),
              TiifeScrankeMax,
              TiifeScrankeMin));
 }
Пример #7
0
        static public SictGbsAstInfoSictAuswert[] SuuceFlacMengeAstMitPfaadFrüheste(
            this    SictGbsAstInfoSictAuswert Ast,
            Func <SictGbsAstInfoSictAuswert, bool> Prädikaat,
            int?TiifeScrankeMax = null,
            int?TiifeScrankeMin = null)
        {
            var MengeAstMitPfaad = Ast.SuuceFlacMengeAstMitPfaad(Prädikaat, 1, TiifeScrankeMax, TiifeScrankeMin, true);

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

            var AstMitPfaad = MengeAstMitPfaad.FirstOrDefault();

            return(AstMitPfaad);
        }
Пример #8
0
        static public SictGbsAstInfoSictAuswert SuuceFlacMengeAstFrüheste(
            this    SictGbsAstInfoSictAuswert Ast,
            Func <SictGbsAstInfoSictAuswert, bool> Prädikaat,
            int?TiifeScrankeMax = null,
            int?TiifeScrankeMin = null)
        {
            var MengeAst = Ast.SuuceFlacMengeAst(Prädikaat, 1, TiifeScrankeMax, TiifeScrankeMin, true);

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

            var FundAst = MengeAst.FirstOrDefault();

            return(FundAst);
        }
Пример #9
0
        static public SictVektor2DSingle?LaagePlusVonParentErbeLaage(
            this    SictGbsAstInfoSictAuswert Ast)
        {
            if (null == Ast)
            {
                return(null);
            }

            var VonParentErbeLaage = Ast.VonParentErbeLaage;

            if (!VonParentErbeLaage.HasValue)
            {
                return(Ast.Laage);
            }

            return(Ast.Laage + VonParentErbeLaage);
        }
Пример #10
0
        static public SictVektor2DSingle?GrööseMaxAusListeChild(
            this    SictGbsAstInfoSictAuswert Ast)
        {
            if (null == Ast)
            {
                return(null);
            }

            SictVektor2DSingle?GrööseMax = null;

            var ThisGrööse = Ast.Grööse;

            if (ThisGrööse.HasValue)
            {
                GrööseMax = ThisGrööse;
            }

            var ListeChild = Ast.ListeChild;

            if (null != ListeChild)
            {
                foreach (var Child in ListeChild)
                {
                    var ChildGrööse = Child.Grööse;

                    if (ChildGrööse.HasValue)
                    {
                        if (GrööseMax.HasValue)
                        {
                            GrööseMax = new SictVektor2DSingle(
                                Math.Max(GrööseMax.Value.A, ChildGrööse.Value.A),
                                Math.Max(GrööseMax.Value.B, ChildGrööse.Value.B));
                        }
                        else
                        {
                            GrööseMax = ChildGrööse;
                        }
                    }
                }
            }

            return(GrööseMax);
        }
Пример #11
0
        /*
         * 2015.03.12
         *
         * Error	20	The call is ambiguous between the following methods or properties: 'Optimat.EveOnline.AuswertGbs.Extension.SuuceFlacMengeAst(Optimat.EveOnline.AuswertGbs.SictGbsAstInfoSictAuswert, System.Func<Optimat.EveOnline.AuswertGbs.SictGbsAstInfoSictAuswert,bool>, int?, int?, int?, bool)' and 'Optimat.EveOnline.AuswertGbs.Extension.SuuceFlacMengeAst(Optimat.EveOnline.AuswertGbs.SictGbsAstInfoSictAuswert, System.Func<Optimat.EveOnline.AuswertGbs.SictGbsAstInfoSictAuswert,bool>, int?, int?, int?, bool)'	T:\Günta\Projekt\Optimat.EveOnline\Impl.Sensor\Assembly\Optimat.EveO.Nuzer\sln\Optimat.EveOnline.Temp\SictGbs\AuswertGbs.DroneView.cs	422	5	Optimat.EveOnline.Temp
         *
         *
         * static public SictGbsAstInfoSictAuswert[] SuuceFlacMengeAst(
         *      SictGbsAstInfoSictAuswert SuuceWurzel,
         *      Func<SictGbsAstInfoSictAuswert, bool> Prädikaat,
         *      int? ListeFundAnzaalScrankeMax = null,
         *      int? TiifeScrankeMax = null,
         *      int? TiifeScrankeMin = null,
         *      bool LaseAusMengeChildUnterhalbTrefer = false)
         * {
         *      if (null == SuuceWurzel)
         *      {
         *              return null;
         *      }
         *
         *      return SuuceWurzel.SuuceFlacMengeAst(Prädikaat, ListeFundAnzaalScrankeMax, TiifeScrankeMax, TiifeScrankeMin, LaseAusMengeChildUnterhalbTrefer);
         * }
         * */

        static public SictGbsAstInfoSictAuswert[] SuuceFlacMengeAst(
            this    SictGbsAstInfoSictAuswert Ast,
            Func <SictGbsAstInfoSictAuswert, bool> Prädikaat,
            int?ListeFundAnzaalScrankeMax         = null,
            int?TiifeScrankeMax                   = null,
            int?TiifeScrankeMin                   = null,
            bool LaseAusMengeChildUnterhalbTrefer = false)
        {
            var MengeAstMitPfaad = Ast.SuuceFlacMengeAstMitPfaad(
                Prädikaat,
                ListeFundAnzaalScrankeMax, TiifeScrankeMax, TiifeScrankeMin, LaseAusMengeChildUnterhalbTrefer);

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

            var MengeAst = MengeAstMitPfaad.Select((AstMitPfaad) => AstMitPfaad.LastOrDefault()).ToArray();

            return(MengeAst);
        }
Пример #12
0
        static public SictGbsAstInfoSictAuswert[][] SuuceFlacMengeAstMitPfaad(
            this    SictGbsAstInfoSictAuswert Ast,
            Func <SictGbsAstInfoSictAuswert, bool> Prädikaat,
            int?ListeFundAnzaalScrankeMax         = null,
            int?TiifeScrankeMax                   = null,
            int?TiifeScrankeMin                   = null,
            bool LaseAusMengeChildUnterhalbTrefer = false)
        {
            if (null == Ast)
            {
                return(null);
            }

            return(Optimat.Glob.SuuceFlacMengeAstMitPfaad(
                       Ast,
                       Prädikaat,
                       (Kandidaat) => Kandidaat.ListeChild,
                       ListeFundAnzaalScrankeMax,
                       TiifeScrankeMax,
                       TiifeScrankeMin,
                       LaseAusMengeChildUnterhalbTrefer));
        }
Пример #13
0
        static public SictGbsAstInfoSictAuswert GröösteLabel(
            this    SictGbsAstInfoSictAuswert SuuceWurzel,
            int?TiifeScrankeMax = null)
        {
            var MengeLabelSictbar =
                SuuceWurzel.SuuceFlacMengeAst((Kandidaat) => Glob.GbsAstTypeIstLabel(Kandidaat), null, TiifeScrankeMax);

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

            SictGbsAstInfoSictAuswert BisherBeste = null;

            foreach (var LabelAst in MengeLabelSictbar)
            {
                var LabelAstGrööse = LabelAst.Grööse;

                if (!LabelAstGrööse.HasValue)
                {
                    continue;
                }

                if (null == BisherBeste)
                {
                    BisherBeste = LabelAst;
                }
                else
                {
                    if (BisherBeste.Grööse.Value.BetraagQuadriirt < LabelAstGrööse.Value.BetraagQuadriirt)
                    {
                        BisherBeste = LabelAst;
                    }
                }
            }

            return(BisherBeste);
        }
Пример #14
0
        static public void AbgelaiteteAigescafteBerecne(
            this    SictGbsAstInfoSictAuswert Ast,
            ref int InBaumAstIndexZääler,
            int?TiifeScrankeMax = null,
            SictVektor2DSingle?VonParentErbeLaage = null,
            float?VonParentErbeClippingFläceLinx  = null,
            float?VonParentErbeClippingFläceOobn  = null,
            float?VonParentErbeClippingFläceRecz  = null,
            float?VonParentErbeClippingFläceUntn  = null)
        {
            if (null == Ast)
            {
                return;
            }

            if (TiifeScrankeMax < 0)
            {
                return;
            }

            Ast.InBaumAstIndex     = ++InBaumAstIndexZääler;
            Ast.VonParentErbeLaage = VonParentErbeLaage;

            var FürChildVonParentErbeLaage = Ast.Laage;

            /*
             * 2015.02.23
             *
             * OrtogoonSingle SelbsctFläce = null;
             * */

            var LaagePlusVonParentErbeLaage = Ast.LaagePlusVonParentErbeLaage();
            var Grööse = Ast.Grööse;

            /*
             * 2015.02.23
             *
             * if(LaagePlusVonParentErbeLaage.HasValue	&&
             *      Grööse.HasValue)
             * {
             *      SelbsctFläce = OrtogoonSingle.FläceAusEkeMininumLaageUndGrööse(LaagePlusVonParentErbeLaage.Value, Grööse.Value);
             * }
             * */

            var FürChildVonParentErbeClippingFläceLinx = VonParentErbeClippingFläceLinx;
            var FürChildVonParentErbeClippingFläceOobn = VonParentErbeClippingFläceOobn;
            var FürChildVonParentErbeClippingFläceRecz = VonParentErbeClippingFläceRecz;
            var FürChildVonParentErbeClippingFläceUntn = VonParentErbeClippingFläceUntn;

            if (LaagePlusVonParentErbeLaage.HasValue && Grööse.HasValue)
            {
                FürChildVonParentErbeClippingFläceLinx = Bib3.Glob.Max(FürChildVonParentErbeClippingFläceLinx, LaagePlusVonParentErbeLaage.Value.A);
                FürChildVonParentErbeClippingFläceRecz = Bib3.Glob.Min(FürChildVonParentErbeClippingFläceRecz, LaagePlusVonParentErbeLaage.Value.A);
                FürChildVonParentErbeClippingFläceOobn = Bib3.Glob.Max(FürChildVonParentErbeClippingFläceOobn, LaagePlusVonParentErbeLaage.Value.B);
                FürChildVonParentErbeClippingFläceUntn = Bib3.Glob.Min(FürChildVonParentErbeClippingFläceUntn, LaagePlusVonParentErbeLaage.Value.B);
            }

            if (VonParentErbeLaage.HasValue)
            {
                if (FürChildVonParentErbeLaage.HasValue)
                {
                    FürChildVonParentErbeLaage = FürChildVonParentErbeLaage.Value + VonParentErbeLaage.Value;
                }
                else
                {
                    FürChildVonParentErbeLaage = VonParentErbeLaage;
                }
            }

            var ListeChild = Ast.ListeChild;

            if (null != ListeChild)
            {
                for (int ChildIndex = 0; ChildIndex < ListeChild.Length; ChildIndex++)
                {
                    var Child = ListeChild[ChildIndex];

                    if (null == Child)
                    {
                        continue;
                    }

                    Child.InParentListeChildIndex = ChildIndex;
                    Child.AbgelaiteteAigescafteBerecne(
                        ref InBaumAstIndexZääler,
                        TiifeScrankeMax - 1,
                        FürChildVonParentErbeLaage,
                        FürChildVonParentErbeClippingFläceLinx,
                        FürChildVonParentErbeClippingFläceOobn,
                        FürChildVonParentErbeClippingFläceRecz,
                        FürChildVonParentErbeClippingFläceUntn);
                }
            }
        }