Exemple #1
0
        public void TestSolveNormalEquation()
        {
            double[][] featuresData = new[]
            {
                new[] { 1.00000, 18894.75675, 14226.78803 },
                new[] { 1.00000, 12831.49749, 16721.15369 },
                new[] { 1.00000, 9661.92668, 13113.96006 }
            };

            double[][] valuesdata = new[]
            {
                new[] { 2.1449, 2.1487 },
                new[] { 3.1759, 1.5399 },
                new[] { 4.9241, 1.6036 }
            };

            double[][] expectedData = new[]
            {
                new[] { 10.77471486, 1.962502184 },
                new [] { -0.00027134, 0.000068413 },
                new [] { -0.00024623, -0.000077773 }
            };
            Matrix samples  = Matrix.CreateInstance(featuresData);
            Matrix values   = Matrix.CreateInstance(valuesdata);
            Matrix expected = Matrix.CreateInstance(expectedData);
            Matrix result   = AlignmentModel.SolveNormalEquation(samples, values);

            System.Diagnostics.Debug.WriteLine(samples.ToString());
            System.Diagnostics.Debug.WriteLine(values.ToString());
            System.Diagnostics.Debug.WriteLine(expected.ToString());
            System.Diagnostics.Debug.WriteLine(result.ToString());
            Assert.IsTrue(result.IsEqualTo(expected, 0.0001));
        }
        private string BuildRequirementText(Guid requirementId, string requirementComparison, double requirementValue)
        {
            string           text;
            string           tableName;
            RequirementModel reqModel;

            text = "";
            //text = RequirementModel.GetNameFromId(requirementId) + " " + requirementComparison + " " + requirementValue.ToString();
            reqModel = new RequirementModel();
            reqModel.Initialize(requirementId);
            tableName = TableNamesModel.GetTableNameFromId(reqModel.TableNamesId);
            if (tableName == "Ability")
            {
                text = AbilityModel.GetNameFromId(reqModel.ApplytoId) + " " + requirementComparison + " " + requirementValue.ToString();
            }
            else if (tableName == "Alignments")
            {
                text = "Alignment: " + requirementComparison + " " + AlignmentModel.GetNameFromID(reqModel.ApplytoId);
            }
            else if (tableName == "Attribute")
            {
                text = AttributeModel.GetNameFromId(reqModel.ApplytoId) + " " + requirementComparison + " " + requirementValue.ToString();
            }
            else if (tableName == "Character")
            {
                text = "Character " + requirementComparison + " Level " + requirementValue.ToString();
            }
            else if (tableName == "Class")
            {
                text = ClassModel.GetNameFromId(reqModel.ApplytoId) + " " + requirementComparison + " Level " + requirementValue.ToString();
            }
            else if (tableName == "Enhancement")
            {
                text = "Enhnacement: " + EnhancementModel.GetNameFromId(reqModel.ApplytoId) + " " + requirementComparison + " Rank " + requirementValue.ToString();
            }
            else if (tableName == "EnhancementSlot")
            {
                text = "Enhancement Slot: " + BuildSlotName(reqModel.ApplytoId) + " " + requirementComparison + " Rank " + requirementValue.ToString();
            }
            else if (tableName == "Feat")
            {
                text = "Feat: " + FeatModel.GetNameFromId(reqModel.ApplytoId);
            }
            else if (tableName == "Race")
            {
                text = RaceModel.GetNameFromId(reqModel.ApplytoId) + " " + requirementComparison + " Level " + requirementValue.ToString();
            }
            else if (tableName == "Skill")
            {
                text = SkillModel.GetNameFromId(reqModel.ApplytoId) + " " + requirementComparison + " " + requirementValue.ToString();
            }
            else
            {
                //we should not reach here
                Debug.WriteLine("Error: No category exists for this requirement. RequirementPanel2: BuildRequirementText()");
            }

            return(text);
        }
        private void AddNewRequirementRecord()
        {
            RequirementModel reqModel;
            string           tableName;
            string           applyToName;

            reqModel    = new RequirementModel();
            tableName   = comboCategory.SelectedItem.ToString();
            applyToName = comboApplyTo.SelectedItem.ToString();

            reqModel.TableNamesId = TableNamesModel.GetIdFromTableName(tableName);
            if (tableName == "Ability")
            {
                reqModel.ApplytoId = AbilityModel.GetIdFromName(applyToName);
            }
            else if (tableName == "Alignments")
            {
                reqModel.ApplytoId = AlignmentModel.GetIdFromName(applyToName);
            }
            else if (tableName == "Attribute")
            {
                reqModel.ApplytoId = AttributeModel.GetIdFromName(applyToName);
            }
            else if (tableName == "Class")
            {
                reqModel.ApplytoId = ClassModel.GetIdFromName(applyToName);
            }
            else if (tableName == "Enhancement")
            {
                reqModel.ApplytoId = GetEnhancementId();
            }
            else if (tableName == "EnhancementSlot")
            {
                reqModel.ApplytoId = GetSlotId();
            }
            else if (tableName == "Feat")
            {
                reqModel.ApplytoId = FeatModel.GetIdFromName(applyToName);
            }
            else if (tableName == "Race")
            {
                reqModel.ApplytoId = RaceModel.GetIdFromName(applyToName);
            }
            else if (tableName == "Skill")
            {
                reqModel.ApplytoId = SkillModel.GetIdFromName(applyToName);
            }
            else
            {
                Debug.WriteLine("Error: CategoryName isn't listed :: RequirementDialogClass: AddNewRequirement");
            }

            reqModel.Save();
            SelectedRequirementId = reqModel.Id;
        }
Exemple #4
0
 public PlayerCharacterModel()
 {
     PlayerClass   = new ClassModel();
     Archetype     = new ArchetypeModel();
     Background    = new BackgroundModel();
     Race          = new RaceModel();
     Alignment     = new AlignmentModel();
     AbilityScores = new List <PcAbilityScoreModel>();
     SavingThrows  = new List <int>();
     PlayerSkills  = new List <int>();
 }
Exemple #5
0
        static void Main(string[] args)
        {
            string fileName = @"C:/Users/Dominic/Desktop/Studium/MA4/Master-Thesis/Implementierung/blueinfrastructurecenter/testdata/LandXML/Mainbruecke_Klingenberg.xml";

            LandXmlParser         parser = new LandXmlParser(fileName);
            DigitalElevationModel digitalElevationModel = parser.DigitalElevationModel;
            AlignmentModel        alignmentModel        = parser.AlignmentModel;


            int number = alignmentModel.AlignmentsCount;
            Alignment2DBased3D        alignment = alignmentModel.GetAlignmentByIndex(0);
            List <Alignment2DBased3D> all       = alignmentModel.GetAllAlignments();

            foreach (Alignment2DBased3D al in all)
            {
                System.Console.WriteLine(al.ToString());

                for (double lerpParamter = 0; lerpParamter < 1.0f; lerpParamter += 0.02)
                {
                    System.Console.WriteLine(lerpParamter + "; " + "(" + al.GetPosition(lerpParamter).x + "," + al.GetPosition(lerpParamter).y + ")" + " HEIGHT: " + digitalElevationModel.GetHeightAtPosition(al.GetPosition(lerpParamter).x, al.GetPosition(lerpParamter).y));
                    ;
                }
            }

            int     nr = digitalElevationModel.SurfaceCount;
            Surface s  = digitalElevationModel.GetSurface(0);

            nr = s.PointsCount;
            nr = s.FaceCount;

            BlueFramework.BlueCore.Math.vector3d point = s.GetPoint(0);
            BlueFramework.BlueCore.Math.vector3d face  = s.GetFace(0);

            System.Console.WriteLine("Start staion: " + alignment.GetStartStation());
            System.Console.WriteLine("End staion: " + alignment.GetEndStation());


            System.Console.WriteLine("Position: "
                                     + alignment.GetPosition(0.1).x + ","
                                     + alignment.GetPosition(0.1).y + ","
                                     + alignment.GetPosition(0.1).z
                                     );


            HorizontalAlignmentElement2DClothoid c = new HorizontalAlignmentElement2DClothoid();

            for (double lerpParamter = 0; lerpParamter < 1.0f; lerpParamter += 0.02)
            {
                System.Console.WriteLine(lerpParamter + "; " + "(" + c.GetPosition(lerpParamter).x + "," + c.GetPosition(lerpParamter).y + ")");
            }

            System.Console.ReadLine();
        }
        private Guid GetApplyToId()
        {
            Guid   applyToId;
            string tableName;

            applyToId = Guid.Empty;
            tableName = comboCategory.SelectedItem.ToString();

            if (tableName == "Ability")
            {
                applyToId = AbilityModel.GetIdFromName(comboApplyTo.SelectedItem.ToString());
            }
            if (tableName == "Alignments")
            {
                applyToId = AlignmentModel.GetIdFromName(comboApplyTo.SelectedItem.ToString());
            }
            if (tableName == "Attribute")
            {
                applyToId = AttributeModel.GetIdFromName(comboApplyTo.SelectedItem.ToString());
            }
            if (tableName == "Character")
            {
                applyToId = Guid.Empty;
            }
            if (tableName == "Class")
            {
                applyToId = ClassModel.GetIdFromName(comboApplyTo.SelectedItem.ToString());
            }
            if (tableName == "Enhancement")
            {
                applyToId = GetEnhancementId();
            }
            if (tableName == "EnhancementSlot")
            {
                applyToId = GetSlotId();
            }
            if (tableName == "Feat")
            {
                applyToId = FeatModel.GetIdFromName(comboApplyTo.SelectedItem.ToString());
            }
            if (tableName == "Race")
            {
                applyToId = RaceModel.GetIdFromName(comboApplyTo.SelectedItem.ToString());
            }
            if (tableName == "Skill")
            {
                applyToId = SkillModel.GetIdFromName(comboApplyTo.SelectedItem.ToString());
            }

            return(applyToId);
        }
Exemple #7
0
        /// <summary>
        /// Load the data for this class
        /// </summary>
        private void LoadData()
        {
            List <AlignmentModel> Alignments;

            Alignments      = AlignmentModel.GetAll();
            AlignmentNames  = new List <string>();
            Alignment       = new SortedDictionary <Guid, string>();
            AlignmentbyName = new SortedDictionary <string, Guid>();
            foreach (AlignmentModel newModel in Alignments)
            {
                AlignmentNames.Add(newModel.Name);
                Alignment.Add(newModel.Id, newModel.Name);
                AlignmentbyName.Add(newModel.Name, newModel.Id);
            }
        }
Exemple #8
0
 public PlayerCharacterModel()
 {
     AbilityScores = new List <PcAbilityScoreModel>();
     Alignment     = new AlignmentModel();
     Archetype     = new ArchetypeModel();
     Background    = new BackgroundModel();
     PlayerClass   = new ClassModel();
     Equipment     = new List <PcEquipmentModel>();
     Features      = new List <FeatureModel>();
     Player        = new PlayerModel();
     Race          = new RaceModel();
     SavingThrows  = new List <int>();
     PlayerSkills  = new List <int>();
     Spells        = new List <PcSpellModel>();
     SpellLevels   = new List <PcSpellLevelModel>();
     Traits        = new List <TraitModel>();
     Treasure      = new List <PcTreasureModel>();
 }
        private void OnAlignmentEditButtonClick(object sender, EventArgs e)
        {
            List <AlignmentModel> alignments;

            //set up the window
            AlignmentEditWindow = new CheckedListBoxEditWindow();
            AlignmentEditWindow.SetSaveEvent(OnAlignmentEditSaveButtonClick);
            AlignmentEditWindow.SetCancelEvent(OnAlignmentEditCancelButtonClick);

            alignments = AlignmentModel.GetAll();

            foreach (AlignmentModel alignment in alignments)
            {
                AlignmentEditWindow.AddCheckbox(alignment.Name, AlignmentsAllowedListBox.Items.Contains(alignment.Name));
            }

            AlignmentEditWindow.Show(this);
            AlignmentEditWindow.Left = this.Left + ChildWindowLocation.X;
            AlignmentEditWindow.Top  = this.Top + ChildWindowLocation.Y;
        }
        private void OnAlignmentEditSaveButtonClick(object sender, EventArgs e)
        {
            List <AlignmentModel> alignments;

            alignments = AlignmentModel.GetAll();

            Model.AllowedAlignments = new List <AlignmentModel>();
            for (int i = 0; i < alignments.Count; i++)
            {
                if (AlignmentEditWindow.GetCheckboxStatus(i) == true)
                {
                    Model.AllowedAlignments.Add(alignments[i]);
                }
            }
            //update the allowed allignments list box
            AlignmentsAllowedListBox.Items.Clear();
            foreach (AlignmentModel alignment in Model.AllowedAlignments)
            {
                AlignmentsAllowedListBox.Items.Add(alignment.Name);
            }
            DataHasChanged = true;
            AlignmentEditWindow.Close();
        }
        private string GetApplyToName(Guid requirementId)
        {
            string           applyToName;
            string           tableName;
            RequirementModel reqModel;
            EnhancementModel enhancementModel;

            reqModel = GetRequirementModel(requirementId);
            //tableName = "Class";

            tableName = TableNamesModel.GetTableNameFromId(reqModel.TableNamesId);

            if (tableName == "Ability")
            {
                applyToName = AbilityModel.GetNameFromId(reqModel.ApplytoId);
            }
            else if (tableName == "Alignments")
            {
                applyToName = AlignmentModel.GetNameFromID(reqModel.ApplytoId);
            }
            else if (tableName == "Attribute")
            {
                applyToName = AttributeModel.GetNameFromId(reqModel.ApplytoId);
            }
            else if (tableName == "Character")
            {
                applyToName = "Level";
            }
            else if (tableName == "Class")
            {
                applyToName = ClassModel.GetNameFromId(reqModel.ApplytoId);
            }
            else if (tableName == "Enhancement")
            {
                //"Pos " + model.DisplayOrder.ToString() + ":: " + model.Name)
                enhancementModel = new EnhancementModel();
                enhancementModel.Initialize(reqModel.ApplytoId);
                applyToName = "Pos " + enhancementModel.DisplayOrder + ":: " + enhancementModel.Name;
            }
            else if (tableName == "EnhancementSlot")
            {
                applyToName = BuildSlotName(GetSlotModel(requirementId));
            }
            else if (tableName == "Feat")
            {
                applyToName = FeatModel.GetNameFromId(reqModel.ApplytoId);
            }
            else if (tableName == "Race")
            {
                applyToName = RaceModel.GetNameFromId(reqModel.ApplytoId);
            }
            else if (tableName == "Skill")
            {
                applyToName = SkillModel.GetNameFromId(reqModel.ApplytoId);
            }
            else
            {
                applyToName = "";
            }
            Debug.WriteLine("ApplyToName = " + applyToName);
            return(applyToName);
        }
        private void comboCategory_SelectedIndexChanged(object sender, EventArgs e)
        {
            string categoryName;

            categoryName = comboCategory.SelectedItem.ToString();

            ApplyToNames.Clear();
            comboApplyTo.Items.Clear();
            comboTree.Items.Clear();
            //resize our form
            this.Size = new Size(DefaultWidth, DefaultHeight);
            //hide our optional controls
            labelTree.Visible = false;
            comboTree.Visible = false;
            labelSlot.Visible = false;
            comboSlot.Visible = false;

            if (categoryName == "Ability")
            {
                ApplyToNames      = AbilityModel.GetNames();
                labelApplyTo.Text = "Select an Ability";
            }

            else if (categoryName == "Alignments")
            {
                ApplyToNames      = AlignmentModel.GetNames();
                labelApplyTo.Text = "Select an Alignment";
            }
            else if (categoryName == "Attribute")
            {
                ApplyToNames      = AttributeModel.GetNames();
                labelApplyTo.Text = "Select an Attribute";
            }

            else if (categoryName == "Character")
            {
                ApplyToNames.Add("Level");
                labelApplyTo.Text = "Select Character Property";
            }

            else if (categoryName == "Class")
            {
                ApplyToNames      = ClassModel.GetNames();
                labelApplyTo.Text = "Select a Class";
            }

            else if (categoryName == "Enhancement")
            {
                //lets resie our form to make room for other controls
                this.Size         = new Size(DefaultWidth, DefaultHeight + 99);
                labelTree.Visible = true;
                comboTree.Visible = true;
                labelSlot.Visible = true;
                comboSlot.Visible = true;
                TreeNames         = EnhancementTreeModel.GetNames();
                foreach (string name in TreeNames)
                {
                    comboTree.Items.Add(name);
                }
                labelApplyTo.Text = "Select an Enhancement";
                buttonOk.Enabled  = false;
                return;
            }

            else if (categoryName == "EnhancementSlot")
            {
                //lets resize our form to make room for other controls
                this.Size         = new Size(DefaultWidth, DefaultHeight + 47);
                labelTree.Visible = true;
                comboTree.Visible = true;
                TreeNames         = EnhancementTreeModel.GetNames();
                foreach (string name in TreeNames)
                {
                    comboTree.Items.Add(name);
                }
                labelApplyTo.Text = "Select an Enhancement Slot";
                buttonOk.Enabled  = false;
                return;
            }

            else if (categoryName == "Feat")
            {
                ApplyToNames      = FeatModel.GetNames();
                labelApplyTo.Text = "Select a Feat";
            }

            else if (categoryName == "Race")
            {
                ApplyToNames      = RaceModel.GetNames();
                labelApplyTo.Text = "Select a Race";
            }

            else if (categoryName == "Skill")
            {
                ApplyToNames      = SkillModel.GetNames();
                labelApplyTo.Text = "Select a Skill";
            }

            else
            {
                Debug.WriteLine("Error: No category exists for the one selected. RequirementDialogClass : comboCategory_SelectedIndexChanged()");
                return;
            }

            foreach (string name in ApplyToNames)
            {
                comboApplyTo.Items.Add(name);
            }
            buttonOk.Enabled = false;
        }
        public void Initialise()
        {
            model = new AlignmentModel(latitude, longitude, elevation)
            {
                IsAlignmentOn = true
            };
            model.ClearAlignmentPoints();
            utcOffset = new TimeSpan();

            // NW
            DateTime   syncTime = new DateTime(2020, 06, 28, 16, 43, 18);
            TimeRecord time     = new TimeRecord(syncTime, TimeUtils.GetLocalSiderealTime(syncTime, utcOffset, longitude));

            model.AddAlignmentPoint(new double[] { 1.45234227180481, 60.3347473144531 }, new double[] { 144.945062700193, 60.3347473144531 }, new double[] { 149.723756536623, 59.1249432487836 }, time);

            syncTime = new DateTime(2020, 06, 28, 16, 43, 48);
            time     = new TimeRecord(syncTime, TimeUtils.GetLocalSiderealTime(syncTime, utcOffset, longitude));
            model.AddAlignmentPoint(new double[] { 2.86930561065674, 55.9740562438965 }, new double[] { 123.819627432618, 55.9740562438965 }, new double[] { 128.404096999038, 55.283421763509 }, time);

            syncTime = new DateTime(2020, 06, 28, 16, 44, 08);
            time     = new TimeRecord(syncTime, TimeUtils.GetLocalSiderealTime(syncTime, utcOffset, longitude));
            model.AddAlignmentPoint(new double[] { 2.08612251281738, 72.5127334594727 }, new double[] { 135.650906194933, 72.5127334594727 }, new double[] { 143.329091832532, 71.5666812294945 }, time);
            //model.AddAlignmentPoint(new double[]{1.93080902099609, 63.763801574707}, new double[] { 138.060159151908, 63.763801574707 }, new double[] { 143.482011096669, 62.7368181631223 }, new DateTime(2020, 06, 28, 16, 44, 27));
            //// SW

            syncTime = new DateTime(2020, 06, 28, 16, 45, 06);
            time     = new TimeRecord(syncTime, TimeUtils.GetLocalSiderealTime(syncTime, utcOffset, longitude));
            model.AddAlignmentPoint(new double[] { 7.5975866317749, 31.8432216644287 }, new double[] { 53.2216111482121, 31.8432216644287 }, new double[] { 56.0429603483716, 31.4201609110561 }, time);

            syncTime = new DateTime(2020, 06, 28, 16, 45, 43);
            time     = new TimeRecord(syncTime, TimeUtils.GetLocalSiderealTime(syncTime, utcOffset, longitude));
            model.AddAlignmentPoint(new double[] { 5.93735456466675, 7.40935134887695 }, new double[] { 78.2768689906225, 7.40935134887695 }, new double[] { 81.0690819058243, 7.01751946987766 }, time);

            syncTime = new DateTime(2020, 06, 28, 16, 46, 09);
            time     = new TimeRecord(syncTime, TimeUtils.GetLocalSiderealTime(syncTime, utcOffset, longitude));
            model.AddAlignmentPoint(new double[] { 7.67223644256592, 5.17215204238892 }, new double[] { 52.3623042968102, 5.17215204238892 }, new double[] { 54.9750315780859, 4.46534644056118 }, time);
            // model.AddAlignmentPoint(new double[]{7.32045793533325, 16.5029945373535}, new double[] { 57.7312421342358, 16.5029945373535 }, new double[] { 60.4098738774835, 15.9579469987893 }, new DateTime(2020, 06, 28, 16, 46, 31));
            ////SE

            syncTime = new DateTime(2020, 06, 28, 16, 47, 51);
            time     = new TimeRecord(syncTime, TimeUtils.GetLocalSiderealTime(syncTime, utcOffset, longitude));
            model.AddAlignmentPoint(new double[] { 13.0530576705933, 10.8525428771973 }, new double[] { 152.075877884869, 169.147457122803 }, new double[] { 152.72162571714, 171.563163746142 }, time);

            syncTime = new DateTime(2020, 06, 28, 16, 48, 09);
            time     = new TimeRecord(syncTime, TimeUtils.GetLocalSiderealTime(syncTime, utcOffset, longitude));
            model.AddAlignmentPoint(new double[] { 12.3489561080933, -0.778456687927246 }, new double[] { 162.71580699319, 180.778456687927 }, new double[] { 163.926678775838, 183.082432087453 }, time);

            syncTime = new DateTime(2020, 06, 28, 16, 48, 28);
            time     = new TimeRecord(syncTime, TimeUtils.GetLocalSiderealTime(syncTime, utcOffset, longitude));
            model.AddAlignmentPoint(new double[] { 13.5954742431641, -0.697973549365997 }, new double[] { 144.097740196623, 180.697973549366 }, new double[] { 144.925319826158, 183.236913318592 }, time);
            // model.AddAlignmentPoint(new double[]{12.9437046051025, 3.28892135620117}, new double[] { 153.945157337934, 176.711078643799 }, new double[] { 154.854211281482, 179.129744501857 }, new DateTime(2020, 06, 28, 16, 48, 45));
            ////NE

            syncTime = new DateTime(2020, 06, 28, 16, 51, 39);
            time     = new TimeRecord(syncTime, TimeUtils.GetLocalSiderealTime(syncTime, utcOffset, longitude));
            model.AddAlignmentPoint(new double[] { 16.405143737793, 61.4716148376465 }, new double[] { 102.750476080924, 118.528385162354 }, new double[] { 100.26112572701, 120.586627285499 }, time);

            syncTime = new DateTime(2020, 06, 28, 16, 52, 00);
            time     = new TimeRecord(syncTime, TimeUtils.GetLocalSiderealTime(syncTime, utcOffset, longitude));
            model.AddAlignmentPoint(new double[] { 15.4235200881958, 58.8995513916016 }, new double[] { 117.558254360687, 121.100448608398 }, new double[] { 114.734222729235, 122.861582942981 }, time);

            syncTime = new DateTime(2020, 06, 28, 16, 52, 22);
            time     = new TimeRecord(syncTime, TimeUtils.GetLocalSiderealTime(syncTime, utcOffset, longitude));
            model.AddAlignmentPoint(new double[] { 15.9716958999634, 54.6963729858398 }, new double[] { 109.430551501457, 125.30362701416 }, new double[] { 107.541470813369, 127.418045303378 }, time);
            // model.AddAlignmentPoint(new double[]{16.0384006500244, 58.5149154663086}, new double[] { 108.51725186361, 121.485084533691 }, new double[] { 106.174079618103, 123.499884590653 }, new DateTime(2020, 06, 28, 16, 52, 43));
        }
 public void Cleanup()
 {
     model = null;
 }
 public void Initialise()
 {
     model = new AlignmentModel(latitude, longitude, elevation);
     model.ClearAlignmentPoints();
     timeRecord = new TimeRecord(this.utcTime, longitude);
 }